ES 官方只支持smartcn这个中文分词插件,是按照单个字进行索引。前端产品搜索时,凡是带这个关键字的都会被索引到。打个比方:搜索"苹果"关键词,凡是包含"苹"和"果"的title都会被索引到。所以为了这个需求,找一个第三方的中文分词插件.看了一下,国内有几款中分分词插件:ik、ansj和mmseg。最后我选择使用了ik。
ES1.4 下安装ik,碰到了不少坑。最后终于搞定,所以分享一下ik的安装步骤。
1. 下载es源代码,然后进行编译,将相应jar包复制到$ES_HOME/plugins/目录下。
2. 下载ik配置文件,复制到$ES_HOME/config/目录下。
3.修改elasticsearch.yml配置文件
4.测试ik
1.首先下载es源代码,并进行编译
wget --no-check-certificate unzip master.zip cd elasticsearch-analysis-ik-master mvn clean install -Dmaven.test.skip=true #编译过程,需要下载相应的jar包。所以喝一杯咖啡,慢慢等待... 将编译后的elasticsearch-analysis-ik-1.2.9.zip,解压缩,复制到$ES_HOME/plugins目录
相应jar包:
2. 下载ik配置文件,复制到$ES_HOME/config/目录下
https://github.com/davidbj/elasticsearch-rtf/archive/master.zip unzip master.zip 将解压目录config/ik文件夹复制到$ES_HOME/config目录下
3. 更改$ES_HOME/config/elasticsearch.yml 配置文件
index: analysis: analyzer: ik: alias: [ik_analyzer] type: org.elasticsearch.index.analysis.IkAnalyzerProvider ik_max_word: type: ik use_smart: false ik_smart: type: ik use_smart: true #或 index.analysis.analyzer.ik.type : “ik”
最后重启elaticsearch服务
4.测试:
curl -XPOST " 测试结果如下 { tokens: [ { token: text start_offset: 2 end_offset: 6 type: ENGLISH position: 1 } { token: 我 start_offset: 9 end_offset: 10 type: CN_CHAR position: 2 } { token: 中国人 start_offset: 11 end_offset: 14 type: CN_WORD position: 3 } { token: 中国 start_offset: 11 end_offset: 13 type: CN_WORD position: 4 } { token: 国人 start_offset: 12 end_offset: 14 type: CN_WORD position: 5 } ] }
至此,es 的ik 插件已经安装配置完成~
更多详细信息,请查看官方文档:https://github.com/awnuxkjy/es-ik
时间: 2024-10-05 07:13:22