查询Lucene IndexSearcher中的所有结果

时间:2011-10-26 08:48:13

标签: java lucene

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

演示代码看起来像

TopDocs results = searcher.search(query, 5 * hitsPerPage);
ScoreDoc[] its = results.scoreDocs;

只返回固定数量的结果

2 个答案:

答案 0 :(得分:6)

如果使用Lucene Reader,即 IndexReader ,您可以通过编写

来帮助自己
TopDocs results = searcher.search(query, reader.numDocs());

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

答案 1 :(得分:3)

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

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