整理一个之前工作中遇到的问题。
在查询lucene索引时,需要按记录的时间倒序排序。于是加了以下代码:
Sort sort = new Sort(new SortField("mtime", SortField.LONG, true));
TopDocs topDocs=indexSearcher.search(query, null, 100,sort);
测试时发现排序没起作用。搞了半天也没找到原因。后将mtime换成了id,发现可以了。
感觉可能是没有对mtime进行索引的原因。再修改索引程序,将mtime索引,如下:
new Field("mtime", String.valueOf(rs.getDate("MTIME").getTime()), Store.YES, Index.NOT_ANALYZED)
新的索引可以按mtime排序了。