gpt4 book ai didi

elasticsearch - ElasticSearch-使用msearch将一个响应的结果链接或关联到另一个

转载 作者:行者123 更新时间:2023-12-03 02:27:29 24 4
gpt4 key购买 nike

随着大流行的COVID19潜伏,希望大家都还好

一个简单的问题,在过去的一年中,我受命处理某些需要Elasticsearch查询的端点。我现在处于优化部分,就在这种情况下,我偶然发现了多重搜索 API或俗称 msearch

现在有了 msearch 的想法,我认为我可以减少对ES服务器的搜索次数。之前,我要进行2个搜索查询,现在我的目标是使用1个msearch查询来减轻端点的加载时间。

有没有办法让 msearch 的第一个aggs响应与下一个聚合相关?我的意思是,我有没有办法链接或获取msearch中第一个aggs的响应,然后在运行时将其传递给下一个聚合?

示例场景:

FIRST AGGS

我正在获取某个字段的MAX VALUE

"aggs" => [
'MAX_SVALUE' => [
'max' => [
'field' => 'latest.soc_mm_score'
]
],
]

SEAGD AGGS

使用上面的最大值

Please note, the $mxs here, is a PHP based array, it contains the max values form the 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
]
]
]

预先感谢您的帮助!

最佳答案

_msearch的想法是拆分大量搜索或一次查询各种索引组合

{ "index": "INDEX_NAME_1", "type": "TYPE_NAME_1" }
{ "query": { "match_all": {}}}
{ "index": "INDEX_NAME_2", "type": "TYPE_NAME_2" }
{ "query": { "match_all": {}}}

现在,这些搜索具有不同的上下文,直白地说,“彼此不认识”。所以不,您不能在运行时使用下一个结果的内部。

您必须执行第一个请求,获取最大请求数,然后运行其他聚合。

关于elasticsearch - ElasticSearch-使用msearch将一个响应的结果链接或关联到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60772452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com