2011-10-26 94 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()); 

這將確保沒有結果從搜索中省略。