ElasticSearch根据存储桶长度(存储桶中唯一键的数量)过滤结果

ElasticSearch根据存储桶长度(存储桶中唯一键的数量)过滤结果,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我想写下一个弹性聚合,它只在其内部bucket的长度大于1时返回一个键 "aggs": { "product_definitions": { "terms": { "field": "definition_name", "size": 200, "exclude": "NO_MATCH", "min_doc_count": 5 }, "aggs"

我想写下一个弹性聚合,它只在其内部bucket的长度大于1时返回一个键

"aggs": {
    "product_definitions": {
        "terms": {
            "field": "definition_name",
            "size": 200,
            "exclude": "NO_MATCH",
            "min_doc_count": 5
        },
        "aggs": {
            "product_instances": {
                "terms": {
                    "field": "data_source_name",
                    "size": 100
                }
            }
        }
    }
}
这是我的聚合,它返回:

"aggregations": {
    "product_definitions": {
        "doc_count_error_upper_bound": 10,
        "sum_other_doc_count": 29281,
        "buckets": [
            {
                "key": "DANA ANTRİKOT KG",
                "doc_count": 13,
                "product_instances": {
                    "doc_count_error_upper_bound": 0,
                    "sum_other_doc_count": 0,
                    "buckets": [
                        {
                            "key": "SariyerMarketCom",
                            "doc_count": 13
                        }
                    ]
                }
            },
            {
                "key": "Keskinoğlu Piliç Salam 700G",
                "doc_count": 10,
                "product_instances": {
                    "doc_count_error_upper_bound": 0,
                    "sum_other_doc_count": 0,
                    "buckets": [
                        {
                            "key": "HappyCenterComTr",
                            "doc_count": 9
                        },
                        {
                            "key": "SanalMarketComTr",
                            "doc_count": 1
                        }
                    ]
                }
            },
            {
                "key": "Doğuş Filiz Çayı 1000 G",
                "doc_count": 9,
                "product_instances": {
                    "doc_count_error_upper_bound": 0,
                    "sum_other_doc_count": 0,
                    "buckets": [
                        {
                            "key": "HappyCenterComTr",
                            "doc_count": 7
                        },
                        {
                            "key": "SanalMarketComTr",
                            "doc_count": 2
                        }
                    ]
                }
            }
       ]
    }
 }
仅当产品实例的bucket有两个以上的键时,我才需要产品定义中的键。在本例中,它应该只返回2。三,。钥匙,而不是1。因为一桶水。密钥仅包含一个

"buckets": [
              {
                  "key": "SariyerMarketCom",
                   "doc_count": 13
              }
            ]
您可以利用来实现这一点,如下所示:

"aggs": {
    "product_definitions": {
        "terms": {
            "field": "definition_name",
            "size": 200,
            "exclude": "NO_MATCH",
            "min_doc_count": 5
        },
        "aggs": {
            "product_instances": {
                "terms": {
                    "field": "data_source_name",
                    "size": 100
                }
            },
            "minimum_2": {
                "bucket_selector": {
                    "buckets_path": {
                        "count": "product_instances._bucket_count" 
                    },
                    "script": "params.count >= 2"
                }
            }
        }
    }
}

我试过了,但它给出了错误“type”:“非法参数\u异常”,“原因”:“[script]未知字段[source],未找到解析器”,就像我使用5.55.5的弹性搜索版本一样。好啊我已确定答案,请再试一次