elasticsearch自定义企业词典
Posted 我要用代码向我喜欢的女孩表白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch自定义企业词典相关的知识,希望对你有一定的参考价值。
我们中文分词用的是ik,但是ik只是对基本的中文词进行了分词,而对于企业或者人名没有进行分词。
比如,我搜索中国平安,那么ik只能分成中国、平安
如果这样,这肯定是不行滴!
接下来,俺就教你,如何创建词典。
首先写一个词典company.dic,然后写上你要识别的词。
文件的格式别忘记改成utf-8编码以及unix(因为我的es装的是linux里)
打开Es的插件目录添加dict,并且重启
进入ik的配置目录,并且修改
/ES安装好的目录/plugins/ik/config/IKAnalyzer.cfg.xml
<entry key="ext_dict">company.dic</entry>
将company.dic上传到 /ES安装好的目录/plugins/ik/config/目录下
重启es
测试
bug:如果发现_search时候搜索不到相对应的分词,就是你索引没有建立好,建立索引时候就要采用ik分词。
请删除索引,然后在建立
删除curl -XDELETE -u elastic:elasticpasswd http://192.168.9.102:9200/index_name
建立
"settings":
"number_of_shards": 5,
"number_of_replicas": 1,
"index":
"analysis.analyzer.default.type" : "ik_max_word"
最后一定要记住这张图
数据是在插入后就被分词,(所以后期无论你怎么改搜索,他也是搜不到),索引要刚开始就建立好,否则是会以默认分词把数据分词(而不是ik等中文词库)
参考:https://www.cnblogs.com/dmzna/p/14913813.html
https://www.cnblogs.com/xinwei0909/p/9453323.html
以上是关于elasticsearch自定义企业词典的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch:自定义应用程序的日志记录 - Elastic Common Schema
Docker 部署 分布式搜索引擎 Elastic Search