【发布时间】:2018-05-01 10:22:07
【问题描述】:
如何在 elasticsearch 的嵌套位置聚合一个值? 我对一个嵌套对象没有任何问题,但在嵌套对象内的嵌套中我很困惑......
样本数据:
"cat_a": [
{
"position": "base",
"tools": [
"inside",
"out"
],
"entry": [
{
"tx_a": "inside",
"rx_a": [
"soft_1",
"soft_2",
"soft_3",
"soft_4"
],
"number": 0.018
},
{
"tx_a": "out",
"rx_a": [
"soft_1",
"soft_3",
"soft_5",
"soft_7"
],
"number": 0.0001
}
],
"basic": true
}
]
想要的结果:
{
"aggregations": {
"sample_agg": {
"count": {
"buckets": [
{
"key": "soft_1",
"doc_count": 2
},
{
"key": "soft_3",
"doc_count": 2
},
{
"key": "soft_2",
"doc_count": 1
}
]
}
}
}
}
我的弹性搜索版本是 6.2.3。 在索引映射中,我将“cat_a”和“entry”字段的类型设置为“nested”,当我从“tools”字段查询聚合时,“cat_a”的根(级别 1)没有问题并且它正在工作,但是在 rx_a 的聚合中(在级别 2 中)我无法检索结果,它是空的或显示错误,因为我的查询错误。
查询level1 agg:
{
"aggs" : {
"sample_agg" : {
"nested" : {
"path" : "cat_a"
},
"aggs" : {
"count" : { "terms" : { "field" : "cat_a.rx_a.keyword" ,"size":10} }
}
}
}
}
嵌套在嵌套中怎么办?
【问题讨论】:
标签: elasticsearch