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包:

ES1.4 中文分词插件ik_第1张图片

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