PrefixQuery是一种前缀搜索,在检索的时候,常常需要进行某种前缀查找,例如到图书馆查找一本书,可能只能记得书名的前面几个字,这种情况就可以用该种搜索模式。
public static void main(String[] args) {
try {
IndexSearcher search = new IndexSearcher("d://demo");
Term term = new Term("bookname","钢");
PrefixQuery query = new PrefixQuery(term);
Hits hits = search.search(query);
for(int i=0;i<hits.length();i++)
{
System.out.println(hits.doc(i));
}
} catch (Exception e) {
e.printStackTrace();
}
}
该类PrefixQuery也是通过传入一个TERM来进行检索,以上面几个例子的索引文件为例子:
结果:
Document<stored/uncompressed,indexed,tokenized<bookname:钢的世界>>
Document<stored/uncompressed,indexed,tokenized<bookname:钢铁战士>>
Document<stored/uncompressed,indexed,tokenized<bookname:钢铁是怎样炼成的>>
Document<stored/uncompressed,indexed,tokenized<bookname:钢和铁是两种金属元素>>
Document<stored/uncompressed,indexed,tokenized<bookname:铁和钢是两种金属元素>>
Document<stored/uncompressed,indexed,tokenized<bookname:钢要比铁有更多的碳元素>>
可以看到,以“钢”开头的文档都检索出来了。这种查询方式可能比较慢
分享到:
相关推荐
在IT领域,搜索引擎技术是不可或缺的一部分,而Apache Lucene是一个高性能、全文本搜索库,它为开发者提供了构建自定义搜索引擎应用程序所需的所有工具。本篇我们将深入探讨如何在Lucene中实现模糊搜索,以及相关的...
在"Lucene全文搜索_LuceneJava全文搜索_"这个主题中,我们将深入探讨Lucene如何在Java环境中实现高效的全文搜索引擎。首先,Lucene的核心概念包括文档(Document)、字段(Field)、索引(Index)和搜索(Search)。...
**全文搜索-Lucene** Lucene 是一个开源的全文搜索引擎库,由 Apache 软件基金会维护。它提供了高效的、可扩展的全文检索功能,被广泛应用于各种 Web 应用、内容管理系统以及数据挖掘项目中。Lucene 实现了索引和...
【Lucene搜索引擎实战详解】 Lucene是一个开源的全文搜索引擎库,它提供了强大的索引和搜索功能,被广泛应用于各类文档的海量搜索系统中。在"Lucene4.X实战类baidu搜索的大型文档海量搜索系统"课程中,涵盖了一系列...
**Lucene搜索引擎培训资料概述** Lucene是一款开源的全文搜索引擎库,由Apache软件基金会开发,广泛应用于各种信息检索系统。它提供了高效的索引和搜索功能,支持文本分析、布尔查询、短语查询等多种搜索模式。这份...
5. **术语(Term)**:经过分词后的单个词或短语称为术语,是Lucene搜索的基本单位。 ### 二、Lucene工作流程 1. **创建索引**:首先,开发者需要创建一个`IndexWriter`实例,然后调用`addDocument()`方法添加文档...
此外,Lucene还支持多种搜索类型,如全文搜索、范围搜索、前缀搜索和模糊搜索。源码可能会演示如何使用这些搜索类型以及如何优化搜索性能,比如使用过滤器(Filter)和缓存(Cache)来减少不必要的计算。 在实际...
- **模糊查询**: 可以进行同义词搜索、前缀搜索或通配符搜索。 - **评分机制**: Lucene使用TF-IDF算法计算相关性,但可以通过自定义评分函数调整。 - **多字段搜索**: 可同时在多个字段上进行搜索,提高召回率。 ...
**Lucene 搜索引擎框架基础实践** Lucene 是一个开源的全文检索库,由 Apache 软件基金会开发,它提供了高性能、可扩展的搜索和分析功能。在深入理解 Lucene 的工作原理和实践之前,我们需要先了解搜索引擎的基本...
`WildcardQuery`和`PrefixQuery`则实现了通配符和前缀搜索。 为了提高搜索性能,Lucene引入了缓存机制。`Filter`类可以对查询结果进行过滤,如按日期范围筛选,而`BitSet`则用于高效地存储过滤后的结果。同时,`...
9. Lucene-5608, Lucene-5565:空间前缀树和单元API进行了重构,不再使用字符串标识,而是按需重新声明单元,增加了灵活性。 10. Lucene-5666:对非倒排访问(如排序、分类、分组)进行了改变,使用API而非`...
《Lucene in Action》第二版是一本专注于Apache Lucene搜索引擎库的专业著作,更新至2010年7月,提供详尽且清晰的Lucene使用指南。这本书是开发者们深入理解并有效应用Lucene进行信息检索和全文搜索的宝贵资源。 ...
本文将深入探讨Lucene 3.6版本中的关键概念、功能以及实现方法。 ### 第一章 Lucene 基础 #### 1.1 索引部分的核心类 - `Directory`: 用于存储索引数据的抽象接口,例如FSDirectory(文件系统目录)和RAMDirectory...
《基于Lucene的Web搜索引擎的研究》是一篇深入探讨如何利用Lucene构建高效、精准的Web搜索引擎的优秀研究生毕业论文。Lucene是Apache软件基金会开发的一个全文检索库,它提供了强大的文本分析和索引功能,是构建搜索...
本教程将深入探讨Lucene的核心概念、架构和使用方法,帮助你构建自己的全文搜索引擎。 ### 一、Lucene基础 1. **核心概念**:Lucene主要涉及的概念有文档(Document)、字段(Field)、索引(Index)、查询(Query...
Lucene.Net是一个基于Apache Lucene的开源全文搜索引擎库,它被移植到.NET Framework平台上,为.NET开发者提供了强大的文本检索和分析能力。Lucene最初由Doug Cutting创建,是Java社区中的一个标志性项目,而Lucene...
此外,构建FST的过程涉及了若干步骤,例如首先计算新输入(NInput)与前一个输出(LInput)之间的公共前缀prefix,然后调用freezeTail方法将LInput的后缀部分转换到FSTbytes数组中。在freezeTail过程中,节点会从后...
除了基本的单词查询,Lucene还支持更复杂的查询类型,如PrefixQuery(前缀查询)、WildcardQuery(通配符查询)、FuzzyQuery(模糊查询)、RegexQuery(正则表达式查询)等。这些查询类型极大地扩展了搜索能力,允许...