繁体   English   中英

Elasticsearch中的多个聚合

[英]Multiple aggregations in Elasticsearch

我想在两个字段上进行术语汇总。 我不希望有子聚合,但我希望得到两个不同存储桶组中的结果,例如是否对两个字段分别进行了两个查询。 是否可以将这两个查询合并为一个?

第一个查询:

{
    "size" : 0,
    "aggs" : {
        "brands" : {
            "terms" : {
                "field" : "my_field1",
                "size" : 15
            },
            "aggs" : {
                "my_field_top_hits1" : {
                    "top_hits" : {
                        "size" : 1
                    }
                }
            }
        }
    }
}

第二个查询:

{
    "size" : 0,
    "aggs" : {
        "brands" : {
            "terms" : {
                "field" : "my_field2",
                "size" : 15
            },
            "aggs" : {
                "my_field_top_hits2" : {
                    "top_hits" : {
                        "size" : 1
                    }
                }
            }
        }
    }
}

除非我缺少明显的东西,否则您只需要执行以下操作:

{
  "size": 0,
  "aggs": {
    "brands_field1": {
      "terms": {
        "field": "my_field1",
        "size": 15
      },
      "aggs": {
        "my_field_top_hits1": {
          "top_hits": {
            "size": 1
          }
        }
      }
    },
    "brands_field2": {
      "terms": {
        "field": "my_field2",
        "size": 15
      },
      "aggs": {
        "my_field_top_hits1": {
          "top_hits": {
            "size": 1
          }
        }
      }
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM