整理一个之前工作中遇到的问题。
在查询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排序了。
本文介绍了一个在使用Lucene进行搜索时按mtime字段倒序排序的问题排查过程。起初排序未能生效,通过逐步排查,最终发现是因为mtime字段未被正确索引。通过调整索引设置解决了这一问题。
2140

被折叠的 条评论
为什么被折叠?



