【问题标题】:nested in nested aggregation in elasticsearch嵌套在elasticsearch中的嵌套聚合中
【发布时间】: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


    【解决方案1】:

    Elasticsearch 允许嵌套多个级别。假设您的映射定义了正确的嵌套,只需将路径更改为 cat_a.entry 并将字段更改为 cat_a.entry.rx_a.keyword。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-14
      • 2015-11-18
      • 1970-01-01
      • 2021-04-25
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多