Lucene全文搜索之分词器:使用IK Analyzer中文分词器(修改IK Analyzer源码使其支持lucene5.5.x)
2021/4/19 22:55:08
本文主要是介绍Lucene全文搜索之分词器:使用IK Analyzer中文分词器(修改IK Analyzer源码使其支持lucene5.5.x),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
注意:基于lucene5.5.x版本
一、简单介绍下IK Analyzer
IK Analyzer是linliangyi2007的作品,再此表示感谢,他的博客地址:http://linliangyi2007.iteye.com/
IK Analyzer支持两种分词,一种是最细粒度分词(推荐使用,Ik默认采用最细粒度),还有一种的智能分词(测试了一下智能分词还没有lucene自带的分词准确,呵呵了)。
二、IK Analyzer兼容性问题解决办法
IKanalyzer目前最新版本只支持到lucene4.x、solr4.x,所以我们需要修改一下IKanalyzer的源码,让它支持lucene5.5版本。
这里提供由本人修改的兼容lucene5.x的IK Analyzer版本,下载地址:http://download.csdn.net/detail/eguid_1/9576005
注意:基于lucene5.5.2版本,采用jdk1.7环境,lucene6.x请使用jdk1.8,lucene5.5.x的API与之前的版本有些微的改变。
三、为什么要使用中文分析器
那么回归标题,为什么要使用中文分词器,原因就是lucene自带的分析器StandardAnalyzer虽然支持中文,但是分词分的不够细,对于某些明显的中文词语没有进行分词。
四、如何使用中文分析器
我将Analyzer分析器单独拿了出来进行独立处理(这么做有很多好处,就是我可以很轻松的扩展使用新的分词器)
其他源码完全不变,只需要改变AnalyzerServ的代码即可。
IK分词器默认有三个相关配置文件:
ext.dic(扩展词库);
IKAnalyzer.cfg.xml(扩展词库及停词库配置);
stopword.dic(停词)
(1)建立索引时使用:
//false-最细粒度分词;true - 智能分词
Analyzer analyzer=new IKAnalyzer(false);
indexWriterConfig = new IndexWriterConfig(analyzer);
(2)搜索时使用:
//false-最细粒度分词;true - 智能分词
Analyzer analyzer=new IKAnalyzer(false);
QueryBuilder parser = new QueryBuilder(analyzer);
这篇关于Lucene全文搜索之分词器:使用IK Analyzer中文分词器(修改IK Analyzer源码使其支持lucene5.5.x)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-29Elasticsearch慢查询日志配置
- 2024-05-29揭秘华为如此多成功项目的产品关键——Charter模板
- 2024-05-29海外IDC业务拓展的7大挑战
- 2024-05-29InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!
- 2024-05-29CodeGeeX 智能编程助手 6 项功能升级,在Visual Studio插件市场霸榜2周!
- 2024-05-29AutoMQ 生态集成 Apache Doris
- 2024-05-292024年IDC行业的深度挖掘:机遇、挑战与未来展望
- 2024-05-29五款扩展组件齐发 —— Volcano、Keda、Crane-scheduler 等,邀你体验
- 2024-05-29AutoMQ 对象存储数据高效组织的秘密: Compaction
- 2024-05-29活动预告|来 GIAC 大会听大数据降本利器:AutoMQ 基于云原生重新设计的 Kafka