Увеличение документов в результатах поиска, которые сопоставляются с массивом - PullRequest
0 голосов
/ 02 июля 2019

У меня есть этот относительно сложный поисковый запрос, который уже создается и работает с идеальной сортировкой.

Но я думаю, что поиск здесь медленный только из-за сценария, поэтому все, что я хочу, чтобы удалить сценарий и написать запрос соответственно.

текущий код: -

"sort": [
{
  "_script": {
    "type": "number",
    "script": {
      "lang": "painless",
      "source": "double pscore = 0;for(id in params.boost_ids){if(params._source.midoffice_master_id == id){pscore = -999999999;}}return pscore;",
      "params": {
        "boost_ids": [
         3,
         4,
         5
        ]
      }
    }
  }
},
{
  "_geo_distance": {
    "location": {
      "lat": -8.435345,
      "lon": 103.184316
    },
    "order": "asc"
  }
}

]}

Выше приведено объяснение кода: -

ДляНапример, если запрос соответствия emtpy даст результат, подобный следующему:

[{id: 1}, {id: 2}, {id: 3}, {id: 4}, {id: 5}, ...]

Итак, здесь я реализовал сортировку, в которой есть скрипт, который принимает массив, а затем из массива, если любой элемент, соответствующий идентификатору искомого результата, получит повышение иотображаются сверху с минимальным расстоянием (которое рассчитывается с помощью запроса geo_distance)

Как и в случае массива обеспечения [3, 4, 5], который затем преобразовал бы результат в:

[{id: 3}, {id: 4}, {id: 5}, {id: 1}, {id: 2}, ...]

Пожалуйста, помогите мнес этой ситуацией.

Заранее спасибо.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...