首先,为什么要手动创建索引配置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.进行搜索分词测试
四、参考资料
http://blog.163.com/zhu329599788@126/blog/static/66693350201722102138891/
本人初学者,如有错误请大家指正!