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

首先,为什么要手动创建索引配置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分词器的插件

elasticsearch5.5.2手动创建索引并配置ik中文分词器_第1张图片

2.安装ik分词器插件

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

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

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

elasticsearch5.5.2手动创建索引并配置ik中文分词器_第2张图片

二、手动创建索

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

elasticsearch5.5.2手动创建索引并配置ik中文分词器_第3张图片

{
	"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插件)如下:

elasticsearch5.5.2手动创建索引并配置ik中文分词器_第4张图片

2.进行搜索分词测试

elasticsearch5.5.2手动创建索引并配置ik中文分词器_第5张图片

elasticsearch5.5.2手动创建索引并配置ik中文分词器_第6张图片

四、参考资料

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

本人初学者,如有错误请大家指正!

你可能感兴趣的:(elasticsearch)