Lucene 基础教程

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/lucene-indexsearcher.html

Lucene IndexSearcher类


此类充当读取/在搜索过程中搜索索引的一个核心组成部分。

Class 声明

以下是org.apache.lucene.search.IndexSearcher类的声明:


public class IndexSearcher
   extends Searcher

字段

以下是org.apache.lucene.index.IndexWriter类的字段:

  • protected int[] docStarts

  • protected IndexReader[] subReaders

  • protected IndexSearcher[] subSearchers

类的构造函数

S.N. 构造函数和说明
1 IndexSearcher(Directory path)
不推荐使用。使用IndexSearcher(IndexReader) 代替
2 IndexSearcher(Directory path, boolean readOnly)
不推荐使用。使用IndexSearcher(IndexReader) 代替
3 IndexSearcher(IndexReader r)
创建一个搜索searching提供索引
4 IndexSearcher(IndexReader r, ExecutorService executor)
运行搜索单独各段,使用提供的ExecutorService
5 IndexSearcher(IndexReader reader, IndexReader[] subReaders, int[] docStarts)
直接指定读取器,subReaders 和 docID 启动
6 IndexSearcher(IndexReader reader, IndexReader[] subReaders, int[] docStarts, ExecutorService executor)
直接指定读取器,subReaders和 docID 开始,和一个ExecutorService

类方法

S.N. 方法及说明
1 void close()
需要注意的是底层IndexReader没有关闭,如果是IndexSearcher用IndexSearcher(IndexReader r)构造
2 Weight createNormalizedWeight(Query query)
创建了一个规范化的重量为顶层查询
3 Document doc(int docID)
返回文档存储 i 字段
4 Document doc(int docID, FieldSelector fieldSelector)
获取文档在第n个位置
5 int docFreq(Term term)
返回这两个字 docFreq 的总数
6 Explanation explain(Query query, int doc)
返回描述如何打进DOC对查询的说明
7 Explanation explain(Weight weight, int doc)
低层次的实现方法返回描述如何打进DOC对重量的解释
8 protected void gatherSubReaders(List allSubReaders, IndexReader r) 
9 IndexReader getIndexReader()
返回搜索IndexReader
10 Similarity getSimilarity()
返回使用该搜索器的相似执行
11 IndexReader[] getSubReaders()
返回此搜索原子subReaders
12 int maxDoc()
返回比最大可能的文档数目多一个
13 Query rewrite(Query original)
所谓的重新编写查询到原始查询
14 void search(Query query, Collector results)
低级别的搜索API
15 void search(Query query, Filter filter, Collector results)
低级别的搜索API
16 TopDocs search(Query query, Filter filter, int n)
找到前n点击查询,应用过滤器,如果非空(no null)
17 TopFieldDocs search(Query query, Filter filter, int n, Sort sort)
搜索执行任意排序
18 TopDocs search(Query query, int n)
找到前n点击查询
19 TopFieldDocs search(Query query, int n, Sort sort)
搜索执行任意排序并且不用过滤
20 void search(Weight weight, Filter filter, Collector collector)
低级别的搜索API
21 TopDocs search(Weight weight, Filter filter, int nDocs)
低层次的搜索实现
22 TopFieldDocs search(Weight weight, Filter filter, int nDocs, Sort sort)
低层次的搜索实现任意排序
23 protected TopFieldDocs search(Weight weight, Filter filter, int nDocs, Sort sort, boolean fillFields)
就像search(Weight, Filter, int, Sort),选择是否在返回 FieldDoc 实例字段应该通过指定fillFields进行设置
24 protected TopDocs search(Weight weight, Filter filter, ScoreDoc after, int nDocs)
低层次的搜索实现
25 TopDocs searchAfter(ScoreDoc after, Query query, Filter filter, int n)
找到前n点击查询,应用过滤器,如果非空,所有的结果都是一个结果(后)。
26 TopDocs searchAfter(ScoreDoc after, Query query, int n)
找到前n点击查询,所有结果都是一个结果(后)
27 void setDefaultFieldSortScoring(boolean doTrackScores, boolean doMaxScore)
缺省情况下,分数是由字段(using search(Query,Filter,int,Sort)) 排序计算
28 void setSimilarity(Similarity similarity)
设置使用搜索器的相似执行。
29 String toString() 

继承的方法

这个类继承了以下类方法:

  • org.apache.lucene.search.Searcher

  • java.lang.Object