您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

elasticsearch:如何获取3个或更多字段的多个组合的结果

elasticsearch:如何获取3个或更多字段的多个组合的结果

您提到的4种嵌入式terms聚合方式是一个很好的方法

另一种方法是将单个terms聚合与一起使用script,这将创建由您要聚合的四个术语组成的假术语,如下所示:

{
   "size": 0,
   "aggs": {
      "combinations": {
          "terms": {
              "script": "[doc.foo.value, doc.bar.value, doc.baz.value, doc.qux.value].join(',')"
          }
      }
   }
}

注意:请确保启用动态脚本,以使用上述脚本聚合。

为了在搜索时节省一些周期的另一种解决方案是在索引时在另一个字段中创建该聚合项,然后将其用于单个terms聚合中。

编辑:如果结果的顺序很重要,则应基于doc_count进行排序 foo

{
   "size": 0,
   "aggs": {
        "primary": {
            "terms": {
                "field": "foo"
            },
           "aggs": {
               "combinations": {
                   "terms": {
                   "script": "[doc.foo.value, doc.bar.value, doc.baz.value, doc.qux.value].join(',')"
                   }
               }
           }
     }
}
其他 2022/1/1 18:23:36 有474人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶