有没有办法让弹性搜索在聚合期间返回每个生成的桶的命中?

 往事如烟zhang_214 发布于 2023-01-18 13:23

现在我有这样的查询:

{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "uuid": "xxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxxx"
                    }
                },
                {
                    "range": {
                        "date": {
                            "from": "now-12h",
                            "to": "now"
                        }
                    }
                }
            ]
        }
    },
    "aggs": {
        "query": {
            "terms": [
                {
                    "field": "query",
                    "size": 3
                }
            ]
        }
    }
}

聚合效果非常好,但我似乎无法找到一种方法来控制返回的命中数据,我可以使用dsl顶部的size参数,但返回的命中不会返回以桶为单位,因此桶结果不符合命中结果.有没有办法纠正这个问题,还是我必须发出2个单独的查询?

1 个回答
  • 为了扩展Filipe的答案,看起来top_hits聚合就像你要找的那样,例如

    {
      "query": {
        ... snip ...
      },
      "aggs": {
        "query": {
          "terms": {
            "field": "query",
            "size": 3
          },
          "aggs": {
            "top": {
              "top_hits": {
                "size": 42
              }
            }
          }
        }
      }
    }
    

    2023-01-18 13:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有