查询Lucene IndexSearcher中的所有结果

Dan*_*n Q 5 java lucene

我正在使用Lucene的contrib/demo目录中的SearchFiles类.我想要检索与查询匹配的所有文档,而不是以分页形式搜索结果.有没有办法用现有的API(3.4)做到这一点?似乎所有搜索功能都需要一个整数来指示返回的命中数.

演示代码看起来像

TopDocs results = searcher.search(query, 5 * hitsPerPage);
ScoreDoc[] its = results.scoreDocs;
Run Code Online (Sandbox Code Playgroud)

这只会返回固定数量的结果

AGu*_*ald 6

如果使用Lucene Reader,即IndexReader,您可以通过编写来帮助自己

TopDocs results = searcher.search(query, reader.numDocs());
Run Code Online (Sandbox Code Playgroud)

这将确保搜索中不会遗漏任何结果.


L.B*_*L.B 3

编写您自己的Collector并将其用作searcher.Search(query, new MyCollector());

http://lucene.apache.org/java/3_4_0/api/core/org/apache/lucene/search/Collector.html

  • 上面的链接已死,这就是为什么*链接仅回答很糟糕!* (2认同)