2012-05-04 68 views
1

我想id DESClucene只能排序和搜索沒有?

Sort sort = new Sort(new SortField[]{new SortField("id",SortField.INT,true)}); 
TopDocs topDocs=indexSearch.search(null,null,10,sort);//no need Query,only sort 
... 

我得到了500異常,因爲查詢參數爲空

我怎樣才能實現它的最好的方式列出最新的10行的次序?

BTW:id字段是NumericField,編寫使用:

new NumericField("id",Integer.MAX_VALUE,Field.Store.YES,true) 

回答

3

您應該使用MatchAllDocsQuery了點。

Lucene的查詢是一種特殊的對象,不僅是查詢語義的說明書中,也最高效的執行策略爲每個特定的查詢類型的實施。這就是爲什麼必須有一個特殊的查詢,即使這個「沒有操作」

+0

+ 1,冷靜,我從來不知道它 – Koerr

+0

之前,你可以看看我的另一個Lucene的問題嗎?感謝http://stackoverflow.com/questions/10464377/in-this-lucene-case-using-booleanquery-or-write-more-indexes – Koerr

0

順便說一句:如果你想搜索最新的X行,最好添加一個新的日期字段與此文件添加到存儲庫的時間依靠櫃檯(您的案件身份證)。 儘量想怎樣就怎樣,如果你更新已有的文檔或到達Integer.MAX_VALUE的