2012-05-04 33 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的