Lucene的搜索结果默认按相关度排序,这个相关度排序是基于内部的Score和DocID,Score又基于 关键词的内部评分和做索引时的boost。默认Score高的排前面,如果Score一样,再按索引顺序,先索引的排前面。那么如果我要先索引 的排后面怎么办呢?
只要构造一个SortField[]就可以实现我们要的功能
// 评分降序,评分一样时后索引的排前面 new SortField[] { SortField.FIELD_SCORE, new SortField(null, SortField.DOC, true) } // 评分升序,评分一样时后索引的排前面,呵呵,此为最不相关的排前面 new SortField[] { new SortField(null, SortField.SCORE, true), new SortField(null, SortField.DOC, true) }
只要构造一个SortField[]就可以实现我们要的功能
// 评分降序,评分一样时后索引的排前面 new SortField[] { SortField.FIELD_SCORE, new SortField(null, SortField.DOC, true) } // 评分升序,评分一样时后索引的排前面,呵呵,此为最不相关的排前面 new SortField[] { new SortField(null, SortField.SCORE, true), new SortField(null, SortField.DOC, true) }