Elasticsearch:未知字段[min_doc_count]

时间:2018-07-27 12:07:34

标签: elasticsearch elasticsearch-aggregation

我在Elasticsearch中使用了称为“复合凝集”的新beta功能。对我而言,主要目的是此聚合的附加滚动功能。我实际上只在一种来源上使用它。

现在,我发现在条件聚合中使用“ min_doc_count”参数会产生错误:

  

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

当我从聚合中删除复合功能时,一切正常。 (包括最小文档数的字词汇总)。仅当在复合聚合中将其声明为源时,它才会失败。

这是一个错误吗?还是我不完全了解复合聚合?

感谢您的任何反馈!

编辑:

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

}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我遇到了与您相同的问题,我发现要通过“min_doc_count”实现过滤器,您必须在当前搜索下使用子聚合。在这个子聚合中,使用“bucket_selector”和“doc_count”过滤的“脚本”,以下面的片段为例(类似于我用来实现我的目标):

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"
        }
     }
  }
}
  }
}