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);
最新文章
- HTML标签的嵌套
- IIS发布WCF遇到的问题总结
- CodeForces 299A	 Ksusha and Array
- maven + selenium + jenkins 教程收集
- mabatis mapper开发规范
- qsort函数辅助函数compare函数的编写
- python内建函数isinstance基础用法
- 十大经典排序算法的 JavaScript 实现
- 共识算法之POW
- 关于python中的module
- 让ubuntu下的eclipse支持GBK编码
- 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V4 -- 粘包拆包
- linux中安装oracle数据库
- enlarge your dataset
- 数据库实例: STOREBOOK >; 用户 >; 编辑 用户: SYSMAN
- sql 数据库显示 正在恢复
- OKHttp概览
- Linux高级权限管理
- linux memory dump--http://www.forensicswiki.org/wiki/Tools:Memory_Imaging
- sqlite性能优化
热门文章
- 蓝桥杯-有理数类-java
- webUI自动化测试框架---”pyswat“介绍
- python中从文件中读取数据2
- Jedis连接池使用
- 欲练JS,必先攻CSS——前端修行之路(码易直播)
- 使用MyEclipse生成实体类和Hibernate映射文件
- 转:Maven项目编译后classes文件中没有dao的xml文件以及没有resources中的配置文件的问题解决
- 如何使用.bas文件
- 关于ie的h5 刷新和ctrl+5刷新 以及图标刷新的问题
- 2.从AbstractQueuedSynchronizer(AQS)说起(1)——独占模式的锁获取与释放