IK分词器下载地址:
https://github.com/medcl/elasticsearch-analysis-ik/releases
下载ES版本对应的分词器即可
安装ik分词器
-
将下载好的zip包解压,生成一个ik文件夹
-
将ik文件夹移动到ES安装目录下的
plugins
文件夹下(每台ES节点都要执行相同的操作) -
重启ES集群
自定义分词库
- 用
vim
在ik中的config目录中新建词库文件my_word.dic
输入你定义的词保存。 - 修改ik中的config目录下面的
IKAnalyzer.cfg.xml
文件。 - 添加自定义分词需要重启ES。
ik分词热更新部署
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">words_location</entry>
words_location
修改为http://xxx/myword
远程文件地址,elasticsearch 大概 1min 后,会自动拉取文件,最长时间是 1min,不需要重启 ES 实例。
- 请求需要返回两个头部(header),一个是
Last-Modified
,一个是ETag
,这两者都是字符串类型,只要有一个发生变化,该插件就会去抓取新的分词进而更新词库。 - 请求返回的内容格式是一行一个分词,换行符用
\n
即可。
IK分词器测试
ik_smart
最粗粒度拆分
GET /_analyze
{
"analyzer": "ik_smart",
"text":"这个美女很好看"
}
ik_max_word
最细粒度拆分
GET /_analyze
{
"analyzer": "ik_max_word",
"text":"这个美女很好看"
}
IK分词器使用
创建索引,字段title
的类型为text
。所以在数据写入时会进行分词存储。
通过analyzer
属性指定写入分词器采用细粒度模式ik_max_word
;通过search_analyzer
属性指定查询时采用智能模式ik_smart
。文章来源:https://www.toymoban.com/news/detail-409162.html
PUT new_index
{
"mappings": {
"properties": {
"id": {
"type": "long"
},
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
}
}
}
}
在索引时,只会去看字段有没有定义analyzer
,有定义的话就用定义的,没定义就用ES预设的。
在查询时,会先去看字段有没有定义search_analyzer
,如果没有定义,就去看有没有analyzer
,再没有定义,才会去使用ES预设的。文章来源地址https://www.toymoban.com/news/detail-409162.html
- 📢博客主页:https://blog.csdn.net/qq233325332
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由 陌北V1 原创,首发于 CSDN博客🙉
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
到了这里,关于es安装ik分词器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!