С пандемией c COVID19, скрывающейся вокруг, надеюсь, что все вы, ребята, в порядке
Просто быстрый вопрос, в прошлом году мне были поставлены определенные конечные точки, которые требуют запросов Elasticsearch. Сейчас я нахожусь в части оптимизации, и именно так я наткнулся на Multi Search API или широко известный как msearch .
Теперь с идеей msearch , я думал, что смогу уменьшить количество запросов, которые я выполняю на наших серверах ES. Раньше я делал 2 поисковых запроса, и теперь моя цель - сделать 1 запрос msearch, чтобы облегчить время загрузки конечных точек.
Есть ли способ для первого ответа aggs: msearch иметь отношение к следующим скоплениям? Я имею в виду, есть ли у меня способ связать или получить ответ первых агг в msearch, а затем передать его следующим агрегациям во время выполнения?
Пример сценария:
ПЕРВЫЕ AGGS
Я получаю МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ определенного поля
"aggs" => [
'MAX_SVALUE' => [
'max' => [
'field' => 'latest.soc_mm_score'
]
],
]
ВТОРОЕ AGGS
Использование max значение выше
Обратите внимание, что $ mxs здесь, это массив на основе PHP, он содержит максимальные значения из FIRST AGGS
"aggs" => [
"SVALUE" => [
"terms" => [
"script" => [
"source"=>"
double temp = Double.parseDouble((((doc['latest.soc_mm_score'].value * 10) / ".$mxs[$platforms[$p]].").toString()));
return temp;
",
"lang"=>"painless"
],
"size"=> 10000
]
]
]
Заранее благодарю за помощь!