els 中 IK 分词器使用
文档中以 els5.5.0 版本为例(注意 IK 分词器版本与 els 必须一致)
1. IK 分词器简介
Elascsearch 内置的分词器对中文不友好,会把中文分成单个字来进行全文检索,不能达
到想要的结果,所以我们使用 IK 分词器帮助我们进行搜索查询。
ik 带有两个分词器:
ik_max_word :会将文本做最细粒度的拆分;尽可能多的拆分出词语
ik_smart:会做最粗粒度的拆分;已被分出的词语将不会再次被其它词语占有
例如如果我们要查询:联想是全球最大的笔记本厂商
ik_max_word 会拆分成:联想,全球,最大,笔记本,笔记,笔,记,本厂,厂商
ik_smart 会拆分成:联想,全球,最大,笔记本,厂商
2.IK 分词器安装
只需要把 ik 分词器压缩文件解压,然后拷贝到 ES 安装目录下的 plugins 文件夹内,并把
文件夹名修改为 ik,安装完插件,不需要在配置文件中配置了,需要在新建索引的时候指
定分词器。
3.els 建索引
如上面所说,在新建索引的时候给字段指定分词器。如下:
http://192.168.5.185:9200/580ww(580ww 是索引名 put 请求)
{
"settings":{
"number_of_shards":3,
"number_of_replicas":1
},
"mappings":{
"bwKnowledge":{
"properties":{
"id":{
"type": "text"
},
"question":{
"type": "text",
"analyzer":"ik_smart" //此处使用 ik_smart 分词
},
"answer":{
"type":"text",
"analyzer":"ik_smart" //此处使用 ik_smart 分词
},
"label":{
"type":"text"
},
"isTop":{
"type":"text",
"fielddata":true // 如果要用字段排序则添加此属性
评论0