У меня есть несколько полей, которые я хочу отсортировать вместе, чтобы они получили одинаковый приоритет.Elasticsearch сортировать по нескольким названиям полей
В настоящее время мой сортировки выглядит следующим образом:
"sort": [
{
"stats.favoriteCount": {
"order": "desc",
"missing": 0
},
"stats.likeCount": {
"order": "desc",
"missing": 0
}
}
]
Моя проблема с этим состоит в том, что favoriteCount
всегда будет рассматриваться первым, даже если likeCount
имеет более высокие значения.
Так для 2 документов, которые имеют:
1: {"stats.favoriteCount": 50, "likeCount": 0}
2: {"stats.favoriteCount": 0, "likeCount": 70}
Первый документ будет более высоким рейтинг, так как Elasticsearch транслирует сортировку: [50,0] и [0,70].
Можно ли каким-либо образом обрабатывать эти 2 поля как равные в сортировке?
Спасибо! это переместилось много в правильном направлении, я закончил использование 'max (val1, val2)' – AlexD
Да, подход 'max' намного чище и компактнее :-). –