您的位置:首页 > Web前端 > HTML5

elasticsearch5.5.2手动创建索引并配置ik中文分词器

2017-10-10 17:32 435 查看
首先,为什么要手动创建索引配置mapping?

虽然es可以自己创建索引(直接在对应的索引index和Type中插入数据,es会根据插入的数据自己匹配类型),但是es自己创建的索引,对于text的类型的都是进行standard分词的,这个分词器对于英文来说是很好的,但是对于中文来说就有点不实用了,大多数情况下他会把每一个中文汉字进行分词。对于中文有很好分词效果的可以选用ik分词器,但是这个分词器,默认的elasticsearch中是没有的,需要自己安装,在安装完成以后,我们可以通过手动创建索引来配置这个ik分词器(目前我能想到的就是这个方法,本人初学者),我们可以通过Google浏览器的postman插件或者kibanna来手动创建index配置mapping,因为这两个工具对我们写json还是很容易的,废话不多说,开整!

一、在elasticsearch安装

ik中文分词器插件,ik中文分词器的版本需要和你的elasticsearch的版本一致

1.下载ik分词器插件

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

在这个我们可以选择对应es版本的ik分词器,这里我们下载的是ik分词器的插件



2.安装ik分词器插件

2.1将我们下载好的ik分词器的zip进行解压,

2.2在elasticsearch的plugins目录下创建analysis-ik文件夹

2.3将解压后的文件放到elasticsearch的铺放到analysis中



二、手动创建索

1.进行创建(我这里借助的是Google的浏览器的插件postman)



{
"settings":{
"analysis" : {
"analyzer" : {
"ik" : {
"tokenizer" : "ik_max_word"
}
}
}
},
"mappings":{
"content":{
"_all": {
"enabled": false
},
"properties":{
"id":{
"type":"keyword"
},
"catid":{
"type":"keyword"
},
"classify":{
"type":"integer"
},
"title":{
"type":"text",
"analyzer": "ik_max_word"
},
"author":{
"type":"text",
"analyzer": "ik_max_word"
},
"published":{
"type":"date"
},
"article":{
"type":"text",
"analyzer": "ik_max_word"
}
}
}
}
}


2.注意事项:我们目前是对5.0以上版本进行创建索引,一定要注意和elasticsearch2.X版本区分,不要混用

三、验证我们配置的分词器是否有效果

1.查看我们创建的这个索引的索引信息(可以借助elasticsearch-head-master插件)如下:



2.进行搜索分词测试



ac59



四、参考资料

http://blog.163.com/zhu329599788@126/blog/static/66693350201722102138891/


本人初学者,如有错误请大家指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: