我正在使用Lucene的contrib / demo目录中的SearchFiles类。我想要检索与查询匹配的所有文档,而不是以分页形式搜索结果。有没有办法用现有的API(3.4)做到这一点?似乎所有搜索函数都需要一个整数来指示返回的命中数。
演示代码看起来像
TopDocs results = searcher.search(query, 5 * hitsPerPage);
ScoreDoc[] its = results.scoreDocs;
只返回固定数量的结果
答案 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