2011-10-26 58 views
5

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

演示代码看起来像

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

这只会返回结果

回答

3

固定数量的写自己Collector并用它作为searcher.Search(query, new MyCollector());

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

+2

上面的链接是DEAD这就是为什么*链接只回答吸!* –

+0

@JarrodRoberson像这样http://stackoverflow.com/a/1919289/932418 :)移动github后它消失了。 –

+1

链接到一个项目,它已被固定btw,不同于链接到信息/文档,可以在这里完整张贴。 –

6

如果使用Lucene Reader,即IndexReader,你可以通过书写帮助自己

TopDocs results = searcher.search(query, reader.numDocs()); 

这将确保没有结果从搜索中省略。