lucene3.5 中文分解IKAnalyzer 和 元分解 StandardAnalyzer
[size=large][/size][align=center][/align]
package com.txt.test2;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.analysis.tokenattributes.TermAttribute;
import org.apache.lucene.util.Version;
import org.wltea.analyzer.lucene.IKAnalyzer;
public class AnalyzerTest02 {
private static String text = "中国,古时通常泛指中原地区,与中华中夏 中土中州含义相同。"
+ "古代华夏族、汉族建国于黄河流域一带,以为居天下之中,故称中国";
public static void main(String[] args) throws Exception{
//添加不同的分词器
Analyzer analyzer = new IKAnalyzer();
System.out.println("======中文=======IKAnalyzer======分词=======");
AnalyzerTest02.showToken(analyzer, text);
System.out.println("=====一元========StandardAnalyzer=====分词========");
Analyzer analyzer2 = new StandardAnalyzer(Version.LUCENE_30);
AnalyzerTest02.showToken(analyzer2, text);
}
/**
* 分词及打印分词结果的方法
*
* @param analyzer
* 分词器名称
* @param text
* 要分词的字符串
* @throws IOException
* 抛出的异常
*/
public static void showToken(Analyzer analyzer, String text) throws Exception {
Reader reader = new StringReader(text);
TokenStream stream = analyzer.tokenStream("", reader);
// 添加工具类 注意:以下这些与之前lucene2.x版本不同的地方
TermAttribute term = stream.addAttribute(TermAttribute.class);
OffsetAttribute offser = stream.addAttribute(OffsetAttribute.class);
// 循环打印出分词的结果,及分词出现的位置
while (stream.incrementToken()) {
System.out.print(term.term() + "|(" + offser.startOffset() + " "
+ offser.endOffset() + ")");
}
System.out.println();
}
}
运行结果:
- 大小: 24.3 KB
分享到:
相关推荐
* Apache Lucene全文检索和IKAnalyzer分词工具类 * <p>Company: 91注册码 * time:2014-04-22 * @author www.91zcm.com * @date * @version 1.1 */ public class LuceneUtil { /**索引创建的路径**/ ...
Java整合IKAnalyzer中文分词器的关键在于理解和应用其在处理中文文本时的特性和优势。IKAnalyzer是一款开源的、基于Java实现的中文分词工具,它最初是为Lucene搜索引擎设计的,但随着时间的发展,已经逐渐成为一个...
例如,对于中文,可以使用IKAnalyzer、SmartChineseAnalyzer等专门为中文设计的Analyzer,它们能够识别中文的词语边界,而不是简单地按字符分割。 3. **去除停用词**:在创建索引的过程中,往往需要去除停用词,...
使用IKAnalyzer可以更好地处理中文文本的索引和搜索,提高对中文语境的理解和检索效率。 四、查询解析器:lucene-queryparser-4.7.0.jar 查询解析器是用户输入的查询字符串转化为Lucene可执行查询对象的关键。在...
然而,对于中文分词,我们需要使用专门针对中文的 Analyzer,如 IKAnalyzer、SmartChineseAnalyzer 或 HanLP 分词库。这些分析器内置了中文分词规则和词典,能够更准确地将中文文本切分成有意义的词语。例如,IK...
IKAnalyzer(包括MIK_CAnalyzer的改进版)以词典为基础,具有较好的分词效果和可扩展性,支持动态词典更新,适用于各种复杂场景。然而,需要注意的是,该分词器与最新的Lucene版本可能存在兼容性问题,需要根据实际...
在本案例中,我们使用的是 IKAnalyzer,这是一个针对中文的开源分词器,能较好地处理中文分词问题。 4. **索引writer(IndexWriter)**:负责创建或更新索引。我们可以向 IndexWriter 添加文档,然后调用 commit() ...
分词器的配置是灵活的,可以根据需求选择不同的分词策略,比如标准分词器(StandardAnalyzer)适用于大多数英文文本,而中文分词可能需要使用IKAnalyzer或SmartChineseAnalyzer等针对中文特性的分词器。 在运行这个...
例如,在中文环境下,可以使用IK Analyzer或者jieba分词库来增强对中文的支持。 总结,Lucene作为Java平台上的搜索引擎库,为我们提供了强大的文本检索能力。通过对源码的深入学习,不仅可以理解其工作原理,还能...
Lucene提供了丰富的Analyzer供选择,如StandardAnalyzer用于英文,而对于中文,可以使用SmartChineseAnalyzer或IKAnalyzer。 在查询处理阶段,用户输入的问题经过同样的Analyzer处理后,形成Query对象,再通过...
在2.9.2版本中,Lucene.Net.dll提供了多种分词器供开发者选择,如标准分词器(StandardAnalyzer)适合处理英文文本,而IK分词器(IKAnalyzer)则针对中文文本进行了优化。此外,用户还可以自定义分词规则,以满足...
开发者可以根据需求选择不同的分析器,例如标准分析器(StandardAnalyzer)用于处理英文文本,而中文则需要使用如 IK 分析器(IKAnalyzer)。 2. **Document**: 文档对象代表要索引的信息,可以包含多个字段(Field...
然后,根据项目需求选择合适的Analyzer,例如标准Analyzer用于处理英文文本,中文则通常使用IKAnalyzer或SmartChineseAnalyzer。 三、创建索引 1. 创建索引目录:使用Directory类(如FSDirectory)创建一个文件...
2. 创建Analyzer,如使用StandardAnalyzer处理文本。 3. 创建IndexWriter实例并设置相关参数。 4. 创建Document对象,添加Field,然后通过IndexWriter将文档添加到索引。 5. 关闭IndexWriter。 6. 创建IndexReader或...
而对于中文,Lucene则需要配合特定的分词器,如IK Analyzer、HanLP或SmartChineseAnalyzer等,这些分词器针对中文的特性进行了优化,能够将中文文本拆分成有意义的词语。 **Java集成与应用** Lucene是用Java编写的...
为了实现对中文的支持,你需要引入能处理中文分词的Analyzer,如IKAnalyzer或SmartChineseAnalyzer,并确保所有文件读取和内容处理代码都兼容中文编码(通常是UTF-8)。此外,对于非文本格式的文件,如PDF和DOC,...
“IKAnalyzer2012FF_u1.jar”是IK Analyzer的一个版本,这是一款广泛应用于Java项目的中文分词器。IK Analyzer旨在提高中文处理的效率和准确性,它支持自定义词典、动态加载和多种分词模式,如全模式、精确模式、...
Lucene提供多种分词器,如StandardAnalyzer用于英文,IKAnalyzer适用于中文。 4. **倒排索引**:Lucene的核心是倒排索引(Inverted Index),它存储了每个词及其出现的文档位置信息。这样,当查询某个词时,Lucene...
此外,还可以结合IKAnalyzer、HanLP等第三方分词库增强中文处理能力。 ### 5. 扩展与优化 - **Memory Management**: 使用Lucene的段合并策略控制内存使用,避免一次性加载大量索引数据。 - **多线程索引和搜索**:...