网上试了很多种方案都不灵!
最后准于被我使出来了。记录下来,希望能帮到其他的人!
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
关闭命令: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: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。