建站服务论坛,wordpress免费中文完整版主题下载,巴州网站建设库尔勒网站建设钟爱网络,电脑版和手机版网站怎么做的说明#xff1a;es默认的分词器对中文的识别不是特别好#xff0c;一段话的分词是一个一个汉字#xff0c;这显然没有达到想要的结果。 可以安装IK分词器#xff0c;兼容中文的分词#xff1b;
IK分词器
安装
安装IK分词器#xff0c;例如elasticsearch的容器名为eses默认的分词器对中文的识别不是特别好一段话的分词是一个一个汉字这显然没有达到想要的结果。 可以安装IK分词器兼容中文的分词
IK分词器
安装
安装IK分词器例如elasticsearch的容器名为es
命令方式安装速度慢网络状况不好非常容易失败而且会丢失文件不推荐使用
# 进入容器内部
docker exec -it es /bin/bash# 在线下载并安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip#退出
exit#重启容器
docker restart es手动拖入
可以选择在对应网站下载注意ik版本需要和es版本一致然后将文件拖入到es容器挂载的数据卷目录下
# 查看es容器挂载的数据卷路径
docker volume inspect es-plugins将下载下来的IK分词器文件解压复制到此目录下 使用
IK分词器有以下两种模式 ik_smart最少切分最少分词数量 ik_max_word最细切分最多可分词数
使用“ik_smart”模式可以看右侧分词是符合中文语境的 “ik_max_word”模式 扩展词汇敏感词汇排除
有一些人名、名牌、热词等词汇在分词时可能会被拆分开如“王麻子菜刀”可能被拆分成了“王麻子”、“菜刀”拆分之后就没有意义了。这些词汇可以添加到IK分词器的扩展字典文件中使分词时这些词汇被作为一个完整的词划分。 另外也有一些词汇是敏感词汇政治、宗教、辱骂等等我们希望在搜索时这些分词不参与分词和搜索。同样这类词汇也可以添加到IK分词器的停用词典中使这类敏感词汇不参与分词和搜索。
第一步修改配置文件
在IK分词器目录下切换到config目录打开文件IKAnalyzer.cfg.xml设置扩展词汇和排除词汇文件名 IKAnalyzer.cfg.xml文件内容 第二步添加词汇
分别在扩展词汇词典、停用词典添加对应的词汇
扩展词汇文件ext.dic该文件不存在需手动创建 停用词典文件stopword.dic新增一个词汇月亮 第三步重启es
重启es测试可以看到分词把“毛源昌眼镜”当做一个词来划分了达到了想要的结果 同样月亮被作停用词典中的词汇未参与分词 注意
需要注意的是如果一个词汇是一个较为特别的词汇如“独钓寒江雪” 在分词排除时不会排除掉因为在分词时这句词汇不太可能被分为一个完整的词汇而在停用词典中是根据完整的词汇来排除的
所以做到万无一失应该把需要排除分词的词汇先在扩展词典里添加然后再在停用词典里添加这样就绝对会被排除掉了 重启es测试“独钓寒江雪”被完全排除 总结
es分词对中文兼容不太好可以选择IK分词器来使用IK分词器有两种模式分别是“ik_smart”、“ik_max_word”。
另外IK分词器支持对词汇进行扩展可以把一些需要绑定在一起的词汇不希望被分开的词汇写入到扩展词典中这些词汇会被当做一个整体参与分词同样如果需要排除一些词汇不希望这些词汇参与分词也可以将这些词汇写入到停用词典中。