Elastic NEST 不允许我创建多个聚合

Elastic NEST won't allow me to create multiple aggregations

通过使用 Kibana,我能够制作一些漂亮的图表,我正在尝试将其转换为 NEST。来自 Kibana 的 JSON 请求如下所示:

{
    "aggs": {
        "2": {
            "date_histogram": {
                "field": "@timestamp",
                "fixed_interval": "30m",
                "min_doc_count": 1
            },
            "aggs": {
                "1": {
                    "cardinality": {
                        "field": "clientip"
                    }
                }
            }
        }
    }

这就是我的 NEST 的样子:

query.Aggregations(aggs => aggs
    .DateHistogram("total_count", d => d
        .Field(f => f.Timestamp)
        .FixedInterval("30m")
        .MinimumDocumentCount(1)
    )
    .Cardinality("unique_count", c => c
        .Field(f => f.ClientIp)
    )
)

然而,生成的 JSON 看起来像这样:

{
    "aggs": {
        "total_count": {
            "date_histogram": {
                "field": "@timestamp",
                "fixed_interval": "30m",
                "min_doc_count": 1
            }
        },
        "unique_count": {
            "cardinality": {
                "field": "clientip"
            }
        }
    }

这很有道理,因为那是我在代码中写的。但是,我需要将 cardinality 添加到 date_histogram,但我无法弄清楚。我无法向 .DateHistogram() 添加额外的 .Aggregations(),因为它不存在。

我做错了什么?

这应该有效:

query.Aggregations(aggs => aggs
    .DateHistogram("total_count", d => d
        .Field(f => f.Timestamp)
        .FixedInterval("30m")
        .MinimumDocumentCount(1)
        .Aggregations(childAggs => childAggs
           .Cardinality("unique_count", c => c
             .Field(f => f.ClientIp)
           )
        )
    )
)