Упругий поиск сортировать по полю, определенному в другом поле - PullRequest
0 голосов
/ 15 января 2019

У меня есть два поля: count (объект) и countyby (текст). Объект count имеет несколько вложенных свойств типа number:

"count" : {
    "properties" : 
     "value1" : {
         "type" : "long"
     },
     "value2" : {
         "type" : "long"
     },
     "value3" : {
         "type" : "long"
     },
     "value4" : {
         "type" : "long"
     },
     "value5" : {
         "type" : "long"
     }
 },
 "countBy": {
     type: "keyword"
 }

Мне нужно выполнить поиск, который отсортирует документы по значению вложенного свойства count, указанного в свойстве countBy

1 Ответ

0 голосов
/ 15 января 2019

Этого можно добиться с помощью сортировки на основе сценариев :

"sort" : {
    "_script" : {
        "type" : "number",
        "script" : {
            "lang": "painless",
            "source": "doc['countBy'].value != null ? doc['count.'+doc['countBy'].value].value : 0"
        },
        "order" : "desc"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...