常见的搜索联想有通过数据库来实现,比如mysql、oracle,通过sql语句的LIKE 查询,可以实现前缀匹配。
我们在文本检索过程中,主要使用倒排索引进行,但Elasticsearch默认的分词器将汉语文本直接分成了单个的汉字,正如第五小节代码清单显示的那样,这就会对检索结果产生影响,那么如何在Elasticsearch中引入汉语分词器,使得检索结果更加准确呢?
Ik 分词器的使用
IK分析插件集成了Lucene IK analyzer,IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。
从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。
从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。
IK Analyzer 2012特性:
1.采用了特有的“正向迭代最细粒度切分算法“,支持细粒度和智能分词两种切分模式;
3.2012版