我添加了两个相同的文档,唯一不同的是文档的_id(我重新启动每个文件的场景,我不按顺序添加它们。确保我的测试是正确的)
其中一个更改了此查询的结果顺序,其中一个不会:
GET index_for_test/business/_search
{
"query": {
"multi_match": {
"query": "italian",
"type": "most_fields",
"fields": [ "name^2", "categories" ]
}
}
}
我最初的问题是:
答案 0 :(得分:0)
如上所述:https://groups.google.com/forum/?fromgroups=&hl=en-GB#!topic/elasticsearch/VWqA_P4zzH8 我的答案在本文档中: https://www.elastic.co/blog/understanding-query-then-fetch-vs-dfs-query-then-fetch 默认情况下,文档分为5个分片,查询运行的算法会对每个分片中的文档进行分数然后获取它们,在小数据中这会导致结果不准确,因此如果数据库很小,最好使用search_type = dfs_query_then_fetch运行查询但它有可伸缩性问题,应该在它增长时进行更改