TermAggregation以及在AggregationDictionary中不起作用的其他TermAggregation

问题描述 投票:0回答:1

使用NEST,我的请求看起来像这样

var searchRequest = new SearchRequest<T>()
{
...
    Aggregations = new TermsAggregation("field1")
    {
        Field = "field1",
        Aggregations = new TermsAggregation("field2")
        {
            Field = "field2",
        }
    },
...
}

await _elasticClient.SearchAsync<T>(searchRequest)

并且我得到了我期望的结果,对于“ field1”的每个替代项,聚合都在“ field2”上]

我想要其他聚合,因此我将术语聚合放在AggregationDictionary中。

var aggs = new AggregationDictionary();
aggs.Add("field1", new TermsAggregation("field1")
    {
        Field = "field1",
        Aggregations = new TermsAggregation("field2")
        {
            Field = "field2",
        }
    })
...
var searchRequest = new SearchRequest<T>()
{
...
    Aggregations = aggs,
...
}
...
await _elasticClient.SearchAsync<T>(searchRequest)

现在我在“ field1”上获得聚合,但在“ field2”上没有子聚合。

我是否缺少某些东西或应该以这种方式工作?

编辑1:为AggregationDictionary添加了密钥。添加以便我的示例代码(希望)能够编译并包含我的SearchAsync调用

使用NEST,我收到的请求看起来像这样var searchRequest = new SearchRequest (({... Aggregations = new TermsAggregation(“ field1”){Field =“ field1”,...

c# elasticsearch nest
1个回答
0
投票
aggs.Add( new TermsAggregation("field1") { Field = "field1", Aggregations = new TermsAggregation("field2") { Field = "field2", } })
此代码将不会编译为AggregationDictionary.Add() method signature,因此>

AggregationDictionary.Add()

© www.soinside.com 2019 - 2024. All rights reserved.