对于下面索引中的示例文档,我希望找到索引中所有文档中基于组件名称的最大操作计数。你能帮我想个办法吗。
假设索引中只存在一个文档,则得到预期结果:
comp1 -> action1 -> max 2 times
comp1 -> action2 -> max 1 time
comp2 -> action2 -> max 1 time
comp2 -> action3 -> max 1 time
示例文档:
{
"id": "AC103902:A13A_AC140008:01BB_5FA2E8FA_1C08:0007",
"tokens": [
{
"name": "comp1",
"items": [
{
"action": "action1",
"attr": "value"
},
{
"action": "action1",
"attr": "value"
},
{
"action": "action2",
"attr": "value"
}
]
},
{
"name": "comp2",
"items": [
{
"action": "action2",
"attr": "value"
},
{
"action": "action3",
"attr": "value"
}
]
}
]
}
elasticsearch版本:7.9我可以循环浏览每个文档并在客户端进行计算,但我很好奇是否已经有一个es查询可以帮助从索引中的文档中获取这个摘要。
1条答案
按热度按时间jdgnovmf1#
您需要定义
tokens
数组和tokens.items
阵列组件nested
为了得到正确的数据。然后,假设您的Map看起来与
可以执行以下查询:
生产这些桶:
可以很容易地在客户端进行后期处理。