lucene初探(一):IKAnalyzer2012中文分词扩展初探
?1、到google下载IKAnalyzer2012
http://code.google.com/p/ik-analyzer/downloads/list
?
?
2、如果有maven本地服务仓库,直接把IKAnalyzer2012上传到本地maven仓库,无的话直接拷贝到项目lib目录

?
3、测试还需要使用到lucene的几个包,这边使用3.6.0版本
maven配置
<dependencies><dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-core</artifactId><version>3.6.0</version></dependency><dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-highlighter</artifactId><version>3.6.0</version></dependency><dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-memory</artifactId><version>3.6.0</version></dependency><dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-analyzers</artifactId><version>3.6.0</version></dependency><dependency><groupId>IKAnalyzer</groupId><artifactId>IKAnalyzer</artifactId><version>IKAnalyzer2012</version><type>jar</type></dependency></dependencies>
?
4、好了,直接上测试例子,
4.1、建立一个java测试项目scmsplitkw?
4.2、拷贝下载包里面的stopword.dic、IKAnalyzer.cfg.xml到项目源码根目录
4.3、因为要测试自定义中文分词,在源码根目录创建文件ext.dic
4.4、配置IKAnalyzer.cfg.xml,在properties内添加
?
4.6、既然是测试自定义关键词拆分,?就必须添加一些自定义关键词到ext.dic文件中,注意添加的文字必须是全部小写
yag晶体集成化文件管理体系量子点太阳电池游客满意度指数血清药理学硅热法建筑幕墙共振腔蛋白质粒子行星逃逸层可靠性建模空隙模型基因挖掘细粒赤铁矿磁性液晶wnt分泌游离甲醛河毒素自由表面磷酸银多元标记aire基因群速度带3蛋白可信度推力轴承超光谱荧光锚定性能嗜铬粒蛋白a衍生多肽ip电路雌雄异体生殖旋翼转速珍稀物种元过程
?
4.7、代码测试
package com.iris.scm.lucene.test;import java.io.StringReader;import org.apache.lucene.analysis.TokenStream;import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;import org.wltea.analyzer.lucene.IKAnalyzer;public class IKAnalyzerTest {public static void main(String[] args) throws Exception {String keyWord = "YAG晶体采用过滤阴极真空电弧技术制备非晶金刚石薄膜,细粒赤铁矿.IKAnalyzer analyzer = new IKAnalyzer();// 使用智能分词analyzer.setUseSmart(true);System.out.println("当前使用的分词器:" + analyzer.getClass().getSimpleName());TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(keyWord));tokenStream.addAttribute(CharTermAttribute.class);while (tokenStream.incrementToken()) {CharTermAttribute charTermAttribute = tokenStream.getAttribute(CharTermAttribute.class);System.out.println(new String(charTermAttribute.buffer()));}}}?
4.8、结果

??