我正在尝试在elasticsearch中运行此查询。我试图在我的桶上运行自定义scripted_metric聚合。在度量标准脚本中,我希望能够访问聚合在其上的存储桶密钥。
ES中的文档看起来像这样。
{
user_id: 5,
data: {
5: 200,
8: 300
}
},
{
user_id: 8,
data: {
5: 889,
8: 22
}
}
我的聚合查询如下所示:
aggs = {
approvers: {
terms: {
field: 'user_id'
},
aggs: {
new_metric: {
scripted_metric: {
map_script: `
// IS IT POSSIBLE TO GET THE BUCKET KEY HERE?
// The bucket key here would be the user_id
// so i can do stuff like
doc['data'][**_term**]....
`
}
}
}
}
答案 0 :(得分:0)
我不得不进行一些挖掘,并且可能遇到与查找如何检索父值的解决方案相同的难度......我唯一能找到的就是关于特殊的“_count”值子聚合,但与其父桶名称/密钥无关。
如果使用带有scripted_metric的子聚合并不是一个严格的要求,我能够找到一种方法,允许您至少访问父母中的桶密钥。也许这可以帮助您开始解决方案:
aggs = {
approvers: {
terms: {
field: 'user_id',
script: '"There seems to be a magic value here: " + _value'
}
}
样本改编自this