Lucene 的查询操作最终需要调用 IndexSearcher 类中的 search 方法,同时传入 Query 实例作为参数。Query 的子类可以直接实例化,也可以通过使用 QueryParser 类实例化。
说明 | 类和描述 |
---|---|
通过项进行查询 | TermQuery 对索引项中特定项进行搜索是最基本的搜索方式。Term 是最小的索引片段,每个 Term 包含了一个域名和一个文本值。 |
在指定的项范围内查询 |
TermRangeQuery |
在指定的数字范围内查询 | NumbericRangeQuery 使用 NumbericField 对象来索引域,使用 NumbericRangeQuery 类在某个特定范围内搜索该域。 版本 6.0 之后废弃该类。 |
前缀匹配查询 | PrefixQuery PrefixQuery 用于匹配其索引开头以指定的字符串的文档。 |
组合查询 | BooleanQuery BooleanQuery 本身是一个 Boolean 子句(clauses)的容器。这个子句可以是表示逻辑“与”、逻辑“或”或者逻辑“非”的一个子查询。这些属性允许逻辑 AND、OR 和 NOT 组合。 |
通过短语查询 | PhraseQuery PhraseQuery 类会根据词的位置信息定位某个距离范围内的项所对应的文档。 |
通配符查询 | WildCardQuery WildcardQuery 用于搜索不完整的、缺少某些字母的项。Lucene 使用两个标准的通配符:*代表0个或者多个字母,?代表0个或者1个字母。 |
模糊查询 | FuzzyQuery FuzzyQuery 用于搜索使用模糊实现,它是一种基于编辑距离算法的近似搜索文件。 |
匹配所有文档查询 | MatchAllDocsQuery MatchAllDocsQuery 顾名思义,匹配索引中的所有文件。 |
万能查询 | QueryParser 万能查询(上面的都可以用这个来查询到)。 |
示例
a=1