我想按id
DESC
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异常,因为Query参数为null
如何以最佳方式实施?
btw:id
字段是一个NumericField,使用:
new NumericField("id",Integer.MAX_VALUE,Field.Store.YES,true)
答案 0 :(得分:3)
您应该使用MatchAllDocsQuery
。
Lucene Query是一个特殊的对象,它不仅是查询语义的规范,而且是每种特定查询类型的最有效执行策略的实现。这就是为什么即使对于这个“无操作”
也必须有一个特殊的查询答案 1 :(得分:0)
顺便说一句:如果你想搜索最新的X行,你最好添加一个新的日期字段,将该文档添加到存储库的时间,而不是依赖于计数器(你的情况下为id)。 尝试思考如果更新现有文档或达到Integer.MAX_VALUE
会发生什么