【问题标题】:Elasticsearch: unknown field [min_doc_count]Elasticsearch:未知字段 [min_doc_count]
【发布时间】:2021-07-22 06:42:41
【问题描述】:

我在 elasticsearch 中使用名为“复合聚合”的新(测试版)功能。对我来说,主要目的是增加这个聚合的滚动功能。我实际上只在一个来源上使用它。

现在我发现在术语聚合上使用“min_doc_count”参数会产生错误:

无法解析字段 [来源] ... 未知字段 [min_doc_count]

当我从聚合中删除复合特征时,一切正常。 (包括最小文档计数的术语聚合)。只有在复合聚合中声明为源时才会失败。

这是一个错误吗?或者我没有完全理解复合聚合?

感谢您的任何反馈!

编辑:

{
"aggs" : {
    "my_buckets": {
        "composite" : {
            "sources" : [
                { "product": { "terms" : { "field": "product", "min_doc_count": 2 } } }
            ]
        }
    }
 }

}

【问题讨论】:

  • 你能显示你的查询吗?
  • 我编辑了问题:-)

标签: elasticsearch elasticsearch-aggregation


【解决方案1】:

复合聚合不支持选项 min_doc_count。 See here.

【讨论】:

    【解决方案2】:

    我有同样的问题,我发现,要通过“min_doc_count”实现过滤器,您必须在当前搜索下使用子聚合。而在这个子聚合中,使用“bucket_selector”和“doc_count”过滤的“script”,以下面的sn-p为例(和我用来实现目标的类似):

    GET store_dept_*/_search?
    {
      "aggs": {
        "table": {
          "composite": {
            "size": 20000,
            "sources": [
              {
            "stk1": {
              "terms": {
                "field": "store"
              }
            }
          },
          {
            "stk2": {
              "terms": {
                "field": "item",
                "order": "asc"
              }
            }
          }
        ]
      },
      "aggs": {
          "filter": {
            "bucket_selector": {
              "buckets_path": {
                "doc_count": "_count"
              },
              "script": "params.doc_count >= 10 && params.doc_count <= 100"
            }
         }
      }
    }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 2020-02-18
      • 1970-01-01
      • 2022-07-01
      • 2018-06-01
      • 1970-01-01
      相关资源
      最近更新 更多