我想知道如果查询没有排序,我是否可以指望Solr查询的结果顺序
例如:
让我们假设有100个文档,我想通过运行10个10个文档的查询来提供分页,每次我都会增加起始位置。
如果我将运行*:* 10次,同时将起始位置增加10次,我可以假设我将获得所有100个文档,或者因为每次我得到不同的随机10个文档时没有排序。
我知道在SQL数据库中它已经无法工作,我想知道Solr是否不同。
答案 0 :(得分:0)
Solr与众不同。如果您未指定排序顺序,它将按分数排序。如果得分相等,它将按文档索引的时刻排序。
如果您查询*:*
(MatchAllDocsQuery),则所有文档都具有相同的分数,并将按照索引的顺序返回,如SO问题How are results ordered in solr in a "match all docs" query
订单什么时候会改变?如果其中一个文件得到更新。然后它将落后于它的'兄弟。
但Solr对此事有一个RandomSortField:
实用程序字段用于随机排序。它不应该传递一个值。
此随机排序实现使用动态字段名称来设置随机“种子”。要获得随机排序顺序,您需要使用随机动态字段名称。