网上试了很多种方案都不灵!
最后准于被我使出来了。记录下来,希望能帮到其他的人!
ik分词器地址:https://github.com/medcl/elasticsearch-analysis-ik
1、下载 elasticsearch-analysis-ik-1.4.1.zip
2、解压,进入目录:命令行执行:mvn compile package (确保机器上安装了maven)
3、进入target\releases将elasticsearch-analysis-ik-1.4.1.zip这个文件拷贝到服务器,elasticsearch1.7.2的安装目录,如果plugins下没有analysis-ik这个文件夹请创建
4、用unzip 解压elasticsearch-analysis-ik-1.4.1.zip这个文件到analysis-ik这个文件夹 (最重要,其他教程上都没有这一步,不然会报找不到类的错误)
5、进入$ES_HOME/config目录下,将本机D:\javastudy\es\elasticsearch-analysis-ik-1.4.1\config\下的 ik这个文件拷贝到该目录(也就是将分词器拷贝到了这个目录)
6、该es的配置文件末尾添加:$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.default.type: ik
7、重启es
关闭命令:curl -XPOST http://localhost:19200/_cluster/nodes/_shutdown
8、进行检测:
curl 'http://localhost:9200/index/_analyze?analyzer=ik_max_word&pretty=true' -d' { "text":"中华人民共和国国歌" } '
{ "tokens" : [ { "token" : "text", "start_offset" : 10, "end_offset" : 14, "type" : "ENGLISH", "position" : 1 }, { "token" : "中华人民共和国", "start_offset" : 17, "end_offset" : 24, "type" : "CN_WORD", "position" : 2 }, { "token" : "国歌", "start_offset" : 24, "end_offset" : 26, "type" : "CN_WORD", "position" : 3 } ] }
ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合;
ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。
返回: