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

猜你喜欢

转载自blog.csdn.net/qq_38403590/article/details/129407834