Lucene - 查询编程

  • 简述

    我们在上一章中已经看到 Lucene - 搜索操作, Lucene 使用 IndexSearcher 进行搜索,它使用 QueryParser 创建的 Query 对象作为输入。在本章中,我们将讨论各种类型的 Query 对象以及以编程方式创建它们的不同方法。创建不同类型的 Query 对象可以控制要进行的搜索类型。
    考虑由许多应用程序提供的高级搜索案例,其中为用户提供了多个选项来限制搜索结果。通过查询编程,我们可以很容易地实现相同的目标。
    以下是我们将在适当时候讨论的查询类型列表。
    序号 类别和描述
    1 TermQuery
    此类充当在索引过程中创建/更新索引的核心组件。
    2 TermRangeQuery
    当要搜索一系列文本术语时使用 TermRangeQuery。
    3 PrefixQuery
    PrefixQuery 用于匹配索引以指定字符串开头的文档。
    4 BooleanQuery
    BooleanQuery 用于搜索多个查询结果的文档,使用 AND, OR 要么 NOT 运营商。
    5 PhraseQuery
    短语查询用于搜索包含特定术语序列的文档。
    6 WildCardQuery
    WildcardQuery 用于使用通配符(如“*”)搜索任何字符序列的文档,?匹配单个字符。
    7 FuzzyQuery
    FuzzyQuery 用于使用模糊实现搜索文档,模糊实现是基于编辑距离算法的近似搜索。
    8 MatchAllDocsQuery
    顾名思义,MatchAllDocsQuery 匹配所有文档。