当字段中有多个值时,如何更改术语聚合的默认值大小参数?

How to change default value size parameter of the terms aggregation when multiple values in field?

根据 Elasticsearch documentation,“术语”聚合 returns 文档最多的前十个术语。在我的特定情况下,我发送了 14 个必需的值以供参考。

{
  "size": 0,
  "aggs": {
    "counts": {
      "filters": {
        "filters": {
          "respondents": {
            "bool": {
              "should": [
                {
                  "terms": {
                    "my_field": [
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      "11",
                      "12",
                      "13",
                      "14"
                    ],
                    "size": 20 // this is not working
                  }
                }
              ]
            }
          }
        }
      }
    }
  }
}

但是后来有4个没有返回。 如果我将“大小”属性 与“my_field”属性 并排添加,则会返回错误:

{
  "error": {
    "root_cause": [
      {
        "type": "parsing_exception",
        "reason": "[terms] query does not support [size]",
        "line": 40,
        "col": 49
      }
    ],
    "type": "parsing_exception",
    "reason": "[terms] query does not support [size]",
    "line": 40,
    "col": 49
  },
  "status": 400
}

我应该怎么做才能获得全部 14 个必需值?

您缺少 term 聚合,并且 filter 聚合不支持 size 参数,因为它将对聚合查询应用过滤器。

{
  "size": 0,
  "aggs": {
    "counts": {
      "filters": {
        "filters": {
          "respondents": {
            "bool": {
              "should": [
                {
                  "terms": {
                    "my_field": [
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      "11",
                      "12",
                      "13",
                      "14"
                    ]
                  }
                }
              ]
            }
          }
        }
      },
      "aggs": {
        "count": {
          "terms": {
            "field": "my_field",
            "size": 20
          }
        }
      }
    }
  }
}