`
lxwt909
  • 浏览: 572801 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lucene5学习之WildcardQuery使用

 
阅读更多

     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,

或者加裙
一起交流学习!

  • 大小: 156.7 KB
分享到:
评论

相关推荐

    Lucene5学习之FunctionQuery功能查询

    **标题解析:** "Lucene5学习之FunctionQuery功能查询" Lucene5是Apache Lucene的一个版本,这是一个高性能、全文本搜索库,广泛应用于搜索引擎和其他需要高效文本检索的系统。FunctionQuery是Lucene中的一种查询...

    Lucene 3.6 学习笔记

    【Lucene 3.6 学习笔记】 Lucene 是一个高性能、全文本搜索库,广泛应用于各种搜索引擎的开发。本文将深入探讨Lucene 3.6版本中的关键概念、功能以及实现方法。 ### 第一章 Lucene 基础 #### 1.1 索引部分的核心...

    Lucene 索引的简单使用

    本篇文章将详细阐述如何使用Lucene来创建和查询索引,帮助你深入理解其核心概念和操作流程。 ### 1. Lucene基本概念 - **文档(Document)**:在Lucene中,一个文档代表你要索引的信息单元,它可以包含多个字段...

    lucene3.5学习笔记

    `IndexWriter` 是 Lucene 中的核心类之一,用于创建或更新索引。它提供了添加文档、删除文档、优化索引等操作的功能。 **1.1.2 Directory** `Directory` 在 Lucene 中代表了存储索引的地方,可以是硬盘上的文件...

    Lucene开发指南

    Lucene学习笔记(二)可能涉及索引构建过程,讲解了如何使用Document对象存储文档内容,Field对象定义字段属性,以及如何使用IndexWriter进行索引更新和优化。 笔记(三)和(四)可能深入到查询解析和执行。查询解析器...

    Lucene全文搜索 分组,精确查找,模糊查找

    在IT行业中,全文搜索引擎的使用越来越广泛,而Apache Lucene作为一款强大的开源全文检索库,深受开发者们的喜爱。它提供了高效的索引和查询功能,使得在海量数据中进行精准、快速的文本搜索成为可能。本文将围绕...

    Lucene在web项目中的应用

    通过学习和实践这个项目,搜索初学者可以深入理解Lucene的工作原理,掌握在实际项目中如何集成和使用Lucene。 总之,Lucene是一个强大的搜索引擎工具,能够有效地帮助Java Web开发者实现复杂的信息检索功能。通过...

    lucene 2.0 api以及lucene 3.0 api

    通过 `API_lucene3.0.0.chm` 文件,开发者可以找到完整的 Lucene 3.0 API 文档,包括类、方法、接口的详细说明,以及示例代码,这对于理解和使用新版本的 Lucene 非常有帮助。 同样,`lucene-2.0.CHM` 文件则提供了...

    lucene_demo例子

    5. **查询构造**:学习使用QueryParser创建标准查询,以及如何使用TermQuery、BooleanQuery、WildcardQuery、PhraseQuery等不同类型的查询来满足复杂搜索需求。 6. **搜索执行**:通过Searcher对象执行查询,获取...

    lucene部分常用代码

    为了更好地使用Lucene,需要了解其核心API和常用代码。本文将对Lucene部分常用代码进行详细解释,包括多字段搜索、多条件搜索、过滤等。 多字段搜索 在Lucene中,我们可以使用MultifieldQueryParser来指定多个搜索...

    lucene学习笔记

    标题:Lucene学习笔记 描述:Lucene学习笔记,Lucene入门必备材料 知识点: 一、Lucene概述与文档管理策略 Lucene是一款高性能、全功能的文本搜索引擎库,广泛应用于文档检索、全文搜索等场景。为了提升搜索效率...

    Lucene分词器资源包

    然而,值得注意的是,这个压缩包不包含示例代码(demo),如果你需要学习如何使用Lucene,建议下载`Lucene-Demo.rar`来获取实践教程和示例。 使用Lucene进行分词时,你需要选择合适的分析器,如对于中文,可以使用`...

    Lucene常用的Demo

    通过查看这些代码,你可以学习如何使用`TokenStream`进行自定义的文本分析,以及如何利用`TermQuery`、`BooleanQuery`和`WildcardQuery`等进行复杂查询。 在学习这些示例时,重点要理解以下几个关键概念: - **...

    Lucene初探,一个初级的LuceneDemo

    随着深入学习,你会发现Lucene的强大之处在于其高度定制化的能力,可以满足各种复杂的搜索需求。在实际项目中,结合Solr或Elasticsearch这样的分布式搜索平台,Lucene可以为企业级应用提供高效、可扩展的搜索解决...

    Lucene.NET 实例

    3. **查询构造**:Lucene.NET 提供了丰富的查询构造器,如 `TermQuery`、`BooleanQuery` 和 `WildcardQuery` 等。你可以根据需求构建复杂的查询表达式,并使用 `QueryParser` 或 `MultiFieldQueryParser` 来解析用户...

    lucene实现企业产品检索

    Lucene提供了多种查询类型,如TermQuery、PhraseQuery、WildcardQuery等,可以根据需求选择合适的查询方式。接着,使用`IndexSearcher`执行查询,并通过`TopDocs`获取排名最高的搜索结果。 **4. 高级搜索特性** ...

    lucene_3.6.1_API

    Lucene 3.6.1是其历史版本之一,虽然现在有更新的版本,但3.6.1仍具有重要的学习价值,尤其对于那些需要维护旧系统的开发者来说。本文将围绕Lucene 3.6.1的API进行详细解析,帮助读者深入理解其核心概念和功能。 ...

    lucene-4.6.0官方文档

    这个文档集成了Lucene的核心概念、API使用、最佳实践以及常见问题解答,对于开发者来说是理解和掌握Lucene不可或缺的学习材料。 1. **Lucene基础** Lucene的核心功能包括文本分析、索引构建、搜索和结果排序。文本...

    lucene 3.6

    5. **Searcher**:执行搜索操作的类,如 IndexSearcher,它使用查询解析器(QueryParser)将用户输入的查询转化为 Lucene 可理解的 Query 对象,然后在索引中执行搜索。 6. **Query**:Lucene 提供了多种查询类型,...

    lucene 最新版本所有jar包

    5. **Lucene-Store**: 包含用于存储和读取索引的不同策略,如RAMDirectory、FSDirectory等。 6. **Lucene-Util**: 提供了一系列实用工具类,如BitSet、FieldInfos、IndexInput和IndexOutput等。 7. **Lucene-Codec...

Global site tag (gtag.js) - Google Analytics