我的用例是根据2个字段对ES响应进行排序,第一个字段后跟另一个字段(如果第一个值相同)。
这与脚本排序不同,在脚本排序中,我使用查询中两个字段的值。
想在这里向ES专家询问ES查询的性能影响如何? PS,我已经在进行双重排序了,我希望转换为三重字段排序。
双重排序
{
"sort" : [
{ "post_date" : {"order" : "asc"}},
"user",
{ "name" : "desc" }
],
"query" : {
"term" : { "user" : "kimchy" }
}
}
VS
三重排序
{
"sort" : [
{ "post_date" : {"order" : "asc"}},
"user",
{ "name" : "desc" },
{ "age" : "desc" }
],
"query" : {
"term" : { "user" : "kimchy" }
}
}
答案 0 :(得分:1)
我正在对应用程序中的多个字段进行排序,但没有发现任何负面影响。我也没有在文档中找到任何建议,建议不要按超过N个字段进行排序。
我发现的一件事是Elasticsearch 6.0中引入的Index Sorting功能,但以防万一。您现在可能无需此即可处理。