`
cesul
  • 浏览: 31700 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Lucene和IKAnalyzer处理中文:索引、搜索实例[续]

阅读更多
版本:lucene3.02, IKAnalyzer3.20
上一篇分享了应用Lucene和IKAnalyzer如何对中文建索引的方法,现在讨论如何在索引基础上进行搜索。
搜索程序(Searcher.java)使用了IKAnalyzer自带的一个查询分析器IKQueryParser,用它来解析keyword经行查询。
根据一般的检索原理,keyword也是作为一个特殊的Document来参与"打分"的。所以keyword解析的好坏直接影响搜索结果的呈现。既然IKAnalyzer的作者“吐血推荐”IKQueryParser来代替lucene原有的解析查询,那我们还是来尝试一下吧。
/** 搜索模块 **/
public class Searcher {
	private File indexDir = new File("F:\\indexDir");;
	
	public void search(String fieldName, String keyword) {
		Directory directory = null;
		IndexSearcher is = null;
		try {
			// 实例化搜索器
			directory = FSDirectory.open(indexDir);
			is = new IndexSearcher(directory, true);
			is.setSimilarity(new IKSimilarity()); // 在索引器中使用IKSimilarity相似度评估器
			
			Query query = IKQueryParser.parse(fieldName, keyword);  // 使用IKQueryParser查询分析器构造Query对象

			TopDocs topDocs = is.search(query, 50);  // 搜索相似度最高的50条记录
			System.out.println("命中:" + topDocs.totalHits);

			// 输出结果
			ScoreDoc[] scoreDocs = topDocs.scoreDocs;
			for (int i = 0; i < topDocs.totalHits; i++) {
				
				Document targetDoc = is.doc(scoreDocs[i].doc);
				System.out.println("相关性评分:" + scoreDocs[i].score + "\t位置:" + targetDoc.toString());
			}

		} catch (CorruptIndexException e) {
			e.printStackTrace();
		} catch (LockObtainFailedException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (is != null) {
				try {is.close();} 
					catch (IOException e) {e.printStackTrace();}
			}
			if (directory != null) {
				try {directory.close();} 
					catch (IOException e) {e.printStackTrace();}
			}
		}
	}

	public static void main(String[] args) {
		Searcher search = new Searcher();
		search.search("text", "lucene");
	}
}
分享到:
评论

相关推荐

    lucene增删改查+IKAnalyzer

    总结,Lucene和IKAnalyzer的组合为我们提供了构建中文全文搜索引擎的强大工具。通过理解它们的工作原理和核心组件,我们可以灵活地应用于各种项目中,提升数据检索的效率和用户体验。在实际开发中,还需要考虑性能...

    Lucene的IK Analyzer 3.0 中文分词器 全解

    - 使用IK Analyzer 需要导入Analyzer类,并实例化IKAnalyzer对象。然后在创建索引和执行查询时使用这个Analyzer,这样可以确保中文文本被正确地分词处理。 总之,IK Analyzer 3.0 是一个强大而灵活的中文分词工具...

    Lucene4.7+IK Analyzer中文分词入门教程

    在Lucene中,你可以通过创建`Analyzer`实例,然后使用`Document`对象来添加字段,如药品名称和功能主治,这些字段会被分词器处理。 在索引建立完成后,可以使用Lucene提供的搜索API来进行查询。这通常涉及到创建`...

    lucene第一步---5.中文分词IKAnalyzer和高亮highlighter的使用

    中文分词IKAnalyzer和高亮highlighter的使用”指出,这个主题将探讨如何在Lucene中应用IKAnalyzer进行中文分词,以及如何使用高亮器(highlighter)来突出搜索结果中的关键词。Lucene是Apache软件基金会的一个开放源...

    中文分词库 IKAnalyzer For Lucene 5.2.1(适用Lucene 5.2.1)

    Lucene 5.2.1是Apache Lucene的一个版本,它提供了高性能、可扩展的全文检索和分析功能,而IKAnalyzer则为这个版本提供了定制化的中文处理能力。 **IKAnalyzer的特点与优势** 1. **灵活的分词策略**:IKAnalyzer...

    IKAnalyzer-5.0

    IKAnalyzer是一款广泛应用于Java环境中的开源中文分词器,尤其在全文检索和自然语言处理领域有着重要的作用。这款工具主要用于解决中文文本的切分问题,为搜索引擎、信息检索系统等提供支持。IKAnalyzer 5.0是其针对...

    IKAnalyzer.rar

    在Lucene这样的全文检索框架中,IKAnalyzer扮演着至关重要的角色,因为它能帮助系统准确地理解并索引中文词汇,从而提高搜索的精度和效率。 Lucene是一个强大的全文检索库,由Apache软件基金会开发,广泛用于构建高...

    使用lucene4.10,IKAnalyzer5.0提取敏感词

    在IT领域,文本处理是至关重要的,特别是在搜索引擎和数据分析中。...同时,`Lucene`和`IKAnalyzer`的这种组合也为我们提供了强大的文本处理能力,可以在大量文本数据中快速、准确地定位和管理信息。

    IKAnalyzer.zip

    IKAnalyzer是一款广泛应用于Java语言的信息检索和自然语言处理领域的开源分词工具,主要设计目标是为中文搜索引擎提供高效、灵活的分词支持。这个压缩包"IKAnalyzer.zip"包含了IKAnalyzer 2012_u6版本,它是针对...

    LuceneJar5.3.1+IKAnalyzer2012_u6

    通过这样的整合,我们可以利用Lucene的强大搜索功能和IKAnalyzer的优秀中文处理能力,构建出一个高效的中文搜索引擎。这种一站式解决方案不仅节省了开发者寻找和整合组件的时间,还确保了系统的稳定性和兼容性,对于...

    IKAnalyzer分词工具

    在IKAnalyzer的场景中,NLP主要用于处理输入的中文文本,将连续的汉字序列分解为有意义的词语,这一过程就是分词。分词是NLP的基础任务,对于后续的文本分析、情感分析、问答系统等应用至关重要。 在实际应用中,IK...

    IKAnalyzer修复源码,Lucene3.6 Jar及使用示例

    IKAnalyzer是一款广受欢迎的开源中文分词器,主要用于提高中文信息检索、文本分析等领域...通过学习和使用这些资料,不仅可以了解IKAnalyzer和Lucene的基础知识,还能掌握如何处理中文文本信息,以及如何优化搜索性能。

    IKAnalyzer.rar中文分析器

    IKAnalyzer是一款专为中文分词设计的开源分析器,它在Java环境下运行,广泛应用于搜索引擎、信息检索系统、文本挖掘等领域。这个压缩包文件“IKAnalyzer.rar”包含了IKAnalyzer的相关资源和配置,使得用户能够方便地...

    IKAnalyzer中文分词器V3.2使用

    在Lucene索引构建过程中,你可以将IKAnalyzer作为Analyzer,这样分词器会自动处理文本的分词工作,提升搜索精度。 总之,IKAnalyzer中文分词器以其高效、易用和可扩展性在Java领域的中文处理中占有一席之地。通过...

    IKAnalyzer

    这对于后续的文本分析和处理至关重要,比如情感分析、关键词提取、搜索引擎索引等。 **IKAnalyzer的介绍** IKAnalyzer,全称为“Intelligent Chinese Analyzer”,是由刘海洋发起的开源项目,最初设计目标是为了...

    solr+IK Analyzer

    1. **索引和查询优化**:Solr 4.10.3在处理大规模数据时表现出了优秀的性能,通过优化索引结构和查询算法,提高了搜索速度和响应时间。 2. **多核心支持**:允许多个独立的搜索应用在同一Solr实例上运行,便于管理和...

    IKAnalyzer3.2(稳定版)分词

    IKAnalyzer3.2是中文分词工具的一个稳定版本,它主要设计用于提高中文文本处理的效率和准确性。分词在信息检索、自然语言处理、文本挖掘等领域扮演着至关重要的角色,因为它是理解中文文本基础的第一步。IKAnalyzer...

    IKAnalyzer2012.jar.zip

    IKAnalyzer是一款开源的、基于Java实现的中文分词器,主要应用于搜索引擎和其他需要对中文文本进行处理的系统中。这个“IKAnalyzer2012.jar.zip”压缩包包含了IKAnalyzer的两个不同版本的jar包,分别是IKAnalyzer...

    IKAnalyzer中文分词器

    ### IKAnalyzer中文分词器V3.1.6:深入解析与使用...IKAnalyzer作为一个成熟的中文分词解决方案,不仅适用于Lucene,也广泛应用于Solr等搜索引擎中,通过其强大的分词能力和灵活的配置选项,为开发者提供了有力的支持。

    IKAnalyzer中文分词器 jar包 + 使用文档 + 配置文件 + doc

    IKAnalyzer是一款针对中文处理的开源分词工具,广泛应用于搜索引擎、信息检索系统、文本挖掘等领域。它是基于Java语言开发的,能够很好地与Lucene、Solr等全文检索框架集成,提供高效的中文分词能力。 首先,我们要...

Global site tag (gtag.js) - Google Analytics