У меня есть этот относительно сложный поисковый запрос, который уже создается и работает с идеальной сортировкой.
Но я думаю, что поиск здесь медленный только из-за сценария, поэтому все, что я хочу, чтобы удалить сценарий и написать запрос соответственно.
текущий код: -
"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
]
}
}
}
}]
Объяснение кода выше: -
Например, если запрос на совпадение даст результат, подобный:
[{m_id: 1, name: A}, {m_id: 2, name: B}, {m_id: 3, name: C}, {m_id: 4, name: D}, ...]
Итак, я хочу увеличить документ с помощью массива m_id [3, 4, 5], который затем преобразует результат в:
[{m_id: 3, name: C}, {m_id: 4, name: D}, {m_id: 1, name: A}, {m_id: 2, name: B}, ...]