standard与IK
一、标准分析器standard与IK分析器的区别
1、standard分析器
elasticsearch自带的分析器是standard,这个分析器会将字拆成一个一个的,效果如下
2、IK分析器
如果想智能些,拆成词语的、多个字的,可以在elasticsearch中装上IK分析器,设置mapping的analyzer时候设置为“ik_smart”就可以了,效果如下:
二、在elasticsearch中安装插件IK分析器
1、上传IK分析器的包elasticsearch-analysis-ik-6.2.4.zip到elasticsearch安装目录的plugins下
下载地址:https://download.youkuaiyun.com/download/cxh6863/12518117
2、解压
unzip elasticsearch-analysis-ik-6.2.4.zip
3、删除压缩包
rm -rf elasticsearch-analysis-ik-6.2.4.zip
4、重命名
mv elasticsearch/ ik-analyzer
5、重启elasticsearch就可以了
至此已安装好了
6、问题解决
我在安装的时候出了这个问题:
Plugin [analysis-ik] was built for Elasticsearch version 6.2.4 but version 6.3.0 is running
这是因为elasticsearch版本和IK分析器版本不一致导致的
切换到/usr/local/elk/elasticsearch-6.3.0/plugins/ik-analyzer/这个目录下,修改plugin-descriptor.properties这个文件中的elasticsearch.version与所安装的elasticsearch版本一致就可以了
vim plugin-descriptor.properties
三、IK分析器详说
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出 了3个大版本。最初,它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。
IK分词器3.0的特性如下:
1、采用了特有的“正向迭代最细粒度切分算法“,具有60万字/秒的高速处理能力。
2、采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。
3、对中英联合支持不是很好,在这方面的处理比较麻烦.需再做一次查询,同时是支持个人词条的优化的词典存储,更小的内存占用。
4、支持用户词典扩展定义。
5、针对Lucene全文检索优化的查询分析器IKQueryParser;采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高Lucene检索的命中率。