繁体   English   中英

弹性搜索结合聚合

[英]Elastic search combine aggregations

目前,下面的查询会删除单个字段“名称”上的重复项,但是我们需要所有字段的top_hits结果:“名称”,“ venueName”,“ venueTown”。 在不发送3个请求并将“字段”设置为“ venueName”和“ venueTown”的情况下,是否可以在一个查询中实现?

{
  "aggs": {
    "query": {
      "terms": {
        "field": "name"
      }
     ,
      "aggs": {
        "top": {
          "top_hits": {
            "size": 1
          }
        }
      }
    }
  },
    "size": 0,
  "query": {

          "multi_match": {
            "query": "LAURA",
            "operator": "OR",
            "fields": [
              "name",
              "venueName",
              "venueTown"
            ]
          }
  }
}

如果我理解正确,则可以编写热门排名的多个汇总。

{
  "query": {
    "multi_match": {
      "query": "LAURA",
      "fields": [
        "name",
        "venueName",
        "venueTown",
      ]
    }
  },
  "aggs": {
    "name": {
      "terms": {
        "field": "name"
      },
      "aggs": {
        "top": {
          "top_hits": {
            "size": 1
          }
        }
      }
    },
    "venue_name": {
      "terms": {
        "field": "venueName"
      },
      "aggs": {
        "top": {
          "top_hits": {
            "size": 1
          }
        }
      }
    },
    "venue_town": {
      "terms": {
        "field": "venueTown"
      },
      "aggs": {
        "top": {
          "top_hits": {
            "size": 1
          }
        }
      }
    }
  }
}

暂无
暂无

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

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