WildcardQuery即通配符查询,即使用通配符来模糊查询,常见的通配符有?,*,-等等,通配符不知道怎么使用的自己Google学习下吧。照例还是先阅读官方的API文档:
特别要注意的Note后面的话,提醒我们注意,WildcardQuery查询是很慢的,因为它需要遍历很多的Term,为了避免极慢的查询速度,请不要使用以星号开头的通配符进行查询。
除了官方给的那点提醒以外,我也要提醒大家一点,WildcardQuery对于用户输入的查询关键字是大小写敏感的,请不要使用大写形式,因为索引中的Term都是小写形式的,这个大家都知道的,特此提醒。
WildcardQuery构造函数除了需要一个Term对象以外,还有一个参数需要设置maxDeterminizedStates,源码注释里是这样解释的:
/** * Constructs a query for terms matching <code>term</code>. * @param maxDeterminizedStates maximum number of states in the resulting * automata. If the automata would need more than this many states * TooComplextToDeterminizeException is thrown. Higher number require more * space but can process more complex automata. */ public WildcardQuery(Term term, int maxDeterminizedStates) { super(term, toAutomaton(term), maxDeterminizedStates); }
其实就是设置根据通配符支持最大能支持有多少Term情况,Term越多占的硬盘空间越大,但查询也更精确。这个值默认源码里给定的是10000,默认即可。
其他也没什么好说的,WildcardQuery使用难度也不大,照样贴一个使用示例吧:
String directoryPath = "D:/lucenedir"; String fieldName = "contents"; String queryString = "*recursive*"; Query query = new WildcardQuery(new Term(fieldName,queryString));
示例代码的意图就是查询索引文档中包含recursive这个单词的,OK,打完收工了,此时此刻2015-03-24 22:26,该睡觉了。预计接下来要说说的就是SpanQuery了。
如果你还有什么问题请加我Q-Q:7-3-6-0-3-1-3-0-5,
或者加裙
一起交流学习!
相关推荐
**标题解析:** "Lucene5学习之FunctionQuery功能查询" Lucene5是Apache Lucene的一个版本,这是一个高性能、全文本搜索库,广泛应用于搜索引擎和其他需要高效文本检索的系统。FunctionQuery是Lucene中的一种查询...
【Lucene 3.6 学习笔记】 Lucene 是一个高性能、全文本搜索库,广泛应用于各种搜索引擎的开发。本文将深入探讨Lucene 3.6版本中的关键概念、功能以及实现方法。 ### 第一章 Lucene 基础 #### 1.1 索引部分的核心...
本篇文章将详细阐述如何使用Lucene来创建和查询索引,帮助你深入理解其核心概念和操作流程。 ### 1. Lucene基本概念 - **文档(Document)**:在Lucene中,一个文档代表你要索引的信息单元,它可以包含多个字段...
`IndexWriter` 是 Lucene 中的核心类之一,用于创建或更新索引。它提供了添加文档、删除文档、优化索引等操作的功能。 **1.1.2 Directory** `Directory` 在 Lucene 中代表了存储索引的地方,可以是硬盘上的文件...
Lucene学习笔记(二)可能涉及索引构建过程,讲解了如何使用Document对象存储文档内容,Field对象定义字段属性,以及如何使用IndexWriter进行索引更新和优化。 笔记(三)和(四)可能深入到查询解析和执行。查询解析器...
在IT行业中,全文搜索引擎的使用越来越广泛,而Apache Lucene作为一款强大的开源全文检索库,深受开发者们的喜爱。它提供了高效的索引和查询功能,使得在海量数据中进行精准、快速的文本搜索成为可能。本文将围绕...
通过学习和实践这个项目,搜索初学者可以深入理解Lucene的工作原理,掌握在实际项目中如何集成和使用Lucene。 总之,Lucene是一个强大的搜索引擎工具,能够有效地帮助Java Web开发者实现复杂的信息检索功能。通过...
通过 `API_lucene3.0.0.chm` 文件,开发者可以找到完整的 Lucene 3.0 API 文档,包括类、方法、接口的详细说明,以及示例代码,这对于理解和使用新版本的 Lucene 非常有帮助。 同样,`lucene-2.0.CHM` 文件则提供了...
5. **查询构造**:学习使用QueryParser创建标准查询,以及如何使用TermQuery、BooleanQuery、WildcardQuery、PhraseQuery等不同类型的查询来满足复杂搜索需求。 6. **搜索执行**:通过Searcher对象执行查询,获取...
为了更好地使用Lucene,需要了解其核心API和常用代码。本文将对Lucene部分常用代码进行详细解释,包括多字段搜索、多条件搜索、过滤等。 多字段搜索 在Lucene中,我们可以使用MultifieldQueryParser来指定多个搜索...
标题:Lucene学习笔记 描述:Lucene学习笔记,Lucene入门必备材料 知识点: 一、Lucene概述与文档管理策略 Lucene是一款高性能、全功能的文本搜索引擎库,广泛应用于文档检索、全文搜索等场景。为了提升搜索效率...
然而,值得注意的是,这个压缩包不包含示例代码(demo),如果你需要学习如何使用Lucene,建议下载`Lucene-Demo.rar`来获取实践教程和示例。 使用Lucene进行分词时,你需要选择合适的分析器,如对于中文,可以使用`...
通过查看这些代码,你可以学习如何使用`TokenStream`进行自定义的文本分析,以及如何利用`TermQuery`、`BooleanQuery`和`WildcardQuery`等进行复杂查询。 在学习这些示例时,重点要理解以下几个关键概念: - **...
随着深入学习,你会发现Lucene的强大之处在于其高度定制化的能力,可以满足各种复杂的搜索需求。在实际项目中,结合Solr或Elasticsearch这样的分布式搜索平台,Lucene可以为企业级应用提供高效、可扩展的搜索解决...
3. **查询构造**:Lucene.NET 提供了丰富的查询构造器,如 `TermQuery`、`BooleanQuery` 和 `WildcardQuery` 等。你可以根据需求构建复杂的查询表达式,并使用 `QueryParser` 或 `MultiFieldQueryParser` 来解析用户...
Lucene提供了多种查询类型,如TermQuery、PhraseQuery、WildcardQuery等,可以根据需求选择合适的查询方式。接着,使用`IndexSearcher`执行查询,并通过`TopDocs`获取排名最高的搜索结果。 **4. 高级搜索特性** ...
Lucene 3.6.1是其历史版本之一,虽然现在有更新的版本,但3.6.1仍具有重要的学习价值,尤其对于那些需要维护旧系统的开发者来说。本文将围绕Lucene 3.6.1的API进行详细解析,帮助读者深入理解其核心概念和功能。 ...
这个文档集成了Lucene的核心概念、API使用、最佳实践以及常见问题解答,对于开发者来说是理解和掌握Lucene不可或缺的学习材料。 1. **Lucene基础** Lucene的核心功能包括文本分析、索引构建、搜索和结果排序。文本...
5. **Searcher**:执行搜索操作的类,如 IndexSearcher,它使用查询解析器(QueryParser)将用户输入的查询转化为 Lucene 可理解的 Query 对象,然后在索引中执行搜索。 6. **Query**:Lucene 提供了多种查询类型,...
5. **Lucene-Store**: 包含用于存储和读取索引的不同策略,如RAMDirectory、FSDirectory等。 6. **Lucene-Util**: 提供了一系列实用工具类,如BitSet、FieldInfos、IndexInput和IndexOutput等。 7. **Lucene-Codec...