查看分析器(Analyzer)的分词效果
1 测试代码
package com.test.lucene.helloworld; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.apache.lucene.analysis.tokenattributes.OffsetAttribute; import org.junit.Test; import org.wltea.analyzer.lucene.IKAnalyzer; public class JudgeAnalyzer { @Test public void testTokenStream() throws Exception {// 创建一个分析器对象 //Analyzer analyzer = new StandardAnalyzer(); //Analyzer analyzer = new CJKAnalyzer(); //Analyzer analyzer = new SmartChineseAnalyzer(); Analyzer analyzer = new IKAnalyzer(); // 获得tokenStream对象 // 第一个参数:域名,可以随便给一个 // 第二个参数:要分析的文本内容 String content ="我是一个中国人,我学习了数据结构,它是一个高富帅,你是白富美"; TokenStream tokenStream = analyzer.tokenStream("test",content); // 添加一个引用,可以获得每个关键词 CharTermAttribute charTermAttribute = tokenStream.addAttribute(CharTermAttribute.class); // 添加一个偏移量的引用,记录了关键词的开始位置以及结束位置 OffsetAttribute offsetAttribute = tokenStream.addAttribute(OffsetAttribute.class); // 将指针调整到列表的头部 tokenStream.reset(); // 遍历关键词列表,通过incrementToken方法判断列表是否结束 while (tokenStream.incrementToken()) { // 关键词的起始位置 System.out.println("start->" + offsetAttribute.startOffset()); // 取关键词 System.out.println(charTermAttribute); // 结束位置 System.out.println("end->" + offsetAttribute.endOffset()); } tokenStream.close(); } }
IKAnalyzer中文分析器使用方法
第一步:将jar包导入项目中
第二步:把配置文件和扩展词典和停用词词典添加到classpath下