public static void main(String args[]) throws CorruptIndexException,IOException, ParseException {
// IndexSearcher是实现搜索的关键
IndexSearcher searcher = new IndexSearcher(FSDirectory.open(new File("X:/jspublisher/doc/entryindex")), true);
/*
//多条件
BooleanQuery bQuery = new BooleanQuery();
Query query1 = null;
BooleanClause.Occur[] flags = new BooleanClause.Occur[] {BooleanClause.Occur.SHOULD,BooleanClause.Occur.SHOULD};
query1 = MultiFieldQueryParser.parse(Version.LUCENE_29,"如何",
new String[] {"ENTRY_NAME","DESC1"}, flags, new IKAnalyzer());
bQuery.add(query1, Occur.MUST);
*/
//模糊查询
Term term1 = new Term("ENTRY_NAME","数"+"~");
// Term term1 = new Term("DESC0","goog");
FuzzyQuery query = new FuzzyQuery(term1,0.1f,1);
//精确匹配
/* // query代表查询对象
Query query = null;
// 查询解析器, 将查询content字段
QueryParser parser = new QueryParser(Version.LUCENE_29,"DESC", new IKAnalyzer());
query = parser.parse(queryStr);
// 搜索结果保存在TopScoreDocCollector.
*/ TopScoreDocCollector c = TopScoreDocCollector.create(100, true);
// 搜索
searcher.search(query, c);
// 得到满足条件的文档总数
System.out.println("总共搜索到 " + c.getTotalHits() + " 个资源。");
// 得到文档集合
ScoreDoc[] docs = c.topDocs(0, c.getTotalHits()).scoreDocs;
//存储符合条件的记录
int startIndex = 0,endIndex = 10; //startIndex、endIndex做为分页用
ArrayList<String> list=new ArrayList<String>();
for (int i = startIndex;i < endIndex && i < docs.length; i++) {
Document documents = searcher.doc(i);
int sum = Integer.parseInt(documents.get("DESC_COUNT"));
//注解
for(int a = 0 ;a < sum ;a++ ){
//Document documentss = searcher.doc(a);
System.out.println("count_desc--"+documents.get("DESC"+a));
}
Document document=searcher.doc(docs[i].doc);
int did = docs[i].doc;
String d = String.valueOf(did);
list.add(d);
System.out.println("文档id: " + docs[i].doc+" 评分: "+docs[i].score+" 内容: "+document.get("ENTRY_NAME"));
}
System.out.println(list);
}
分享到:
相关推荐
一步一步跟我学习lucene是对近期做lucene索引的总结,大家有问题的话联系本人的Q-Q: 891922381,同时本人新建Q-Q群:106570134(lucene,solr,netty,hadoop),如蒙加入,不胜感激,大家共同探讨,本人争取每日一博,...
在“BM25_Calculator”这个示例中,开发者会展示如何在Lucene中实现BM25相似度计算,并对比其与默认TF-IDF的查询结果。这将帮助新手直观地理解两种方法在实际应用中的差异,并为优化搜索结果提供指导。 总之,...
### Lucene.Net 实现全文搜索 #### 一、Lucene.Net 概述 **Lucene.Net** 是一个基于 .NET 的高性能全文检索引擎库。它最初由 Java 版本的 Lucene 发展而来,旨在为 .NET 开发者提供一个强大而灵活的搜索解决方案。...
### 利用Lucene实现高级搜索的关键知识点 #### Lucene简介 Lucene是Apache软件基金会下的一个开源全文检索库,提供了高性能的文本搜索能力。它不仅适用于网站的搜索功能,还可以用于任何需要文本搜索的应用场景,如...
本篇我们将深入探讨如何在Lucene中实现模糊搜索,以及相关的源码解析。 模糊搜索允许用户输入不完全准确的关键字,系统仍能返回相关的结果。在Lucene中,我们可以通过`FuzzyQuery`类来实现这种功能。`FuzzyQuery`...
**Lucene实现企业搜索实例** 在企业环境中,高效、精准的搜索能力是至关重要的,它可以帮助员工快速定位信息,提高工作效率。Apache Lucene是一个开源的全文检索库,它提供了强大的文本搜索功能,能够帮助企业构建...
1. **多字段搜索**:Lucene支持对多个字段进行同时搜索,通过BooleanQuery或者DisjunctionMaxQuery实现。 2. **模糊搜索**:通过使用PrefixQuery、WildcardQuery或FuzzyQuery,可以实现模糊匹配和通配符查询。 3. ...
在Lucene中,实现全文搜索涉及到以下几个关键概念: 1. **Document**:是Lucene中表示索引目标的基本单元,可以代表一个文件、一条记录或任何可被索引的数据。开发者可以通过`Document`对象来组织要索引的信息。 2...
Lucene,作为Apache软件基金会的一个开源项目,是Java平台上的全文检索库,它提供了文本检索的核心工具,使得开发者能够快速地在应用程序中实现高级的搜索功能。本篇文章将详细阐述如何使用Lucene来创建和查询索引,...
本篇将深入探讨如何利用Java和Lucene来实现一个搜索引擎。 首先,我们要理解Lucene的基本概念。Lucene是一个纯Java库,其核心功能包括文本分析、索引和搜索。文本分析是将原始文本转化为可搜索的表示形式,通常涉及...
在本文中,我们将深入探讨如何使用Lucene来实现一个类似当当网的企业产品检索系统,特别关注如何结合庖丁解牛分词器提升搜索体验。 首先,我们需要理解Lucene的基本工作原理。Lucene的核心是建立索引,将原始文本...
**Lucene 搜索引擎实现详解** Lucene 是一个开源全文搜索引擎库,由 Apache 软件基金会维护。它提供了一套强大的数据结构和算法,用于高效地存储和检索大量文本数据。通过 Lucene,开发者可以轻松地在自己的应用...
总之,利用Lucene的`IndexSearcher`和适当的分页策略,我们可以高效地处理大量数据的搜索请求。这个过程不仅提高了用户体验,也优化了服务器性能。记得在实践中不断调整和优化查询参数,以适应具体的应用场景。
总之,Lucene在C#中的时间区间搜索是通过构建和执行RangeQuery来实现的,这涉及到索引构建、查询解析、时间值的转换和比较等多个环节。合理地利用这些技术,可以有效地提升数据检索的效率和准确性。在实际应用中,还...
本篇文章将详细探讨如何在C#环境下利用Lucene实现快速搜索。 首先,让我们了解Lucene的基本概念。Lucene是一个开源的Java库,提供了索引和搜索文本的高级工具。它能够对文本进行分词,建立倒排索引,并支持布尔查询...
总之,Lucene站内搜索提供了一套强大且灵活的搜索框架,通过合理的配置和优化,可以实现高效、准确的站内信息检索。在实际项目中,开发者需要根据具体需求调整Analyzer、索引策略以及查询处理方式,以实现最佳的搜索...
Lucene.Net 是一个基于 Apache Lucene 的开源全文搜索引擎库,专为 .NET Framework 平台设计。它提供了一套高级文本搜索程序库,让开发者能够在 .NET 应用程序中轻松实现全文检索功能。在本案例中,我们将在 .Net ...
在Java的网络搜索实现中,Lucene扮演着至关重要的角色,它能够帮助开发者快速构建自己的搜索引擎。 在"lucene包"中,我们可以找到Lucene的核心组件和类,这些类负责索引和搜索文档。以下是Lucene实现的核心知识点:...
《基于LUCENE的搜索引擎设计与实现》 搜索引擎是互联网信息时代的重要工具,它使得海量数据的检索变得高效便捷。本项目聚焦于基于Apache LUCENE的搜索引擎设计与实现,LUCENE是一款强大的全文检索库,由Java编写,...
然后,你可以使用`IndexSearcher`的`searchAfter()`方法或`TopFieldCollector`来实现排序。注意,FieldCache可能会消耗大量内存,因此需要谨慎使用。 2. **CustomScoreQuery排序**:如果你的排序逻辑与查询评分相关...