java环境是elasticsearch安装必须的
其实es的安装非常简单了
head插件让我们能更简单管理elasticsearch
去rtf项目中获取对应插件,建议别去自己找plugin下,medcl大已经为我们准备好了一切
近义词组件已经是elasticsearch自带的了,所以不需要额外安装插件,但是想要让近义词和IK一起使用,就需要配置自己的分析器了。
首先创建近义词文档
在config目录下
这里可以看到近义词的写法有两种:
第一种在分词的时候,a,b都会解析成为c,然后把c存入索引中
第二种在分词的时候,有a的地方,都会解析成a,b,c,把a,b,c存入索引中
第一种方法相比之下有个主词,比较省索引。
配置elasticsearch.yml中的自定义索引,和前面的ik结合,可以这么设置:
上面的配置文件创建了一个filter: my_synonym_filter, 然后创建了两个自定义analyzer: ik_syno和ik_syno_smart
按照上面的配置,我们使用一个具体的句子进行测试:
120.55.72.158:9700/elasticsearchtest2
{
"index" : {
"analysis" : {
"analyzer" : {
"ik_syno" : {
"tokenizer" : "ik",
"filter" : ["my_synonym_filter"]
}
返回json结构:
这里就可以看到我们之前配置的东西都成功了:
are字被过滤,是由于are字是stop_words
i pad这个词语被转化为了ipod是由于近义词字典中我们设置了 i pad=>ipod
“文字”两个中文字是被分成一个中文词切割,是因为ik的默认main.dic里面有文字两个字
“中文”“汉字”“汉语”三个词出现是由于近义词字典中我们设置了这三个为同等级的近义词
本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/4789239.html,如需转载请自行联系原作者