在从索引搜索时,我在排序lucene文档时遇到问题。我需要以最后一个快速输出的顺序获取文档,从最后一个索引到第一个索引文档。我可以看到订单一直保持到九个提交到索引。但是该命令从病房的第10次提交改变了。注意到所有文档ID号都被更改并且未保留插入顺序,旧文档编号全部重新编号为不同的编号。
即使在多次提交索引之后仍保持插入顺序的任何解决方案。
直到九次提交文件结构看起来 - 没有找到订单问题:
在第十次提交之后,结构发生变化,文档的顺序也发生了变化
答案 0 :(得分:0)
永远不要使用docId作为订购参考。这是一个lucene内部id,可能会根据lucene的索引操作而改变。
作为示例:如果使用docId 1更新文档,则lucene会执行删除并在内部插入。这可能导致另一个docId。
要通过查询输入实现排序/排序,您应该为索引添加专用字段。见Field Javadoc。为此目的有几个领域:
重要提示:此字段仅用于评分/排序/分面。如果您还想在查询结果中使用此值,则必须为此值添加其他StoredField。