ElasticSearch中的聚合(Nest)

Sum*_* NL 6 c# aggregation elasticsearch nest

我对弹性搜索很新,我还没有找到具体的问题.如果已经回答,我会提前道歉,我希望你能指出我正确的方向.

我一直在寻找在NEST中实现以下内容的方法:

"aggs" : {
    "fieldA" : {
        "terms" : {
            "field" : "fieldA"

        }
    },

    "fieldB" : {
        "terms" : {
            "field" : "fieldB"

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过这个:

.Aggregations(q => q.Terms("fieldA", r => r.Field(s => s.fieldA)) && q.Terms("fieldB", r => r.Field(s => s.fieldB)))
Run Code Online (Sandbox Code Playgroud)

还有这个:

.Aggregations(q => q.Terms("fieldA", r => r.Field(s => s.fieldA)))
.Aggregations(q => q.Terms("fieldB", r => r.Field(s => s.fieldB)))
Run Code Online (Sandbox Code Playgroud)

哪两个都失败了.我错过了别的什么吗?

Gre*_*uka 17

您可以指定多个聚合,如下所示:

.Aggregations(a => a
    .Terms("fieldA", t => t.Field(s => s.FieldA))
    .Terms("fieldB", t => t.Field(s => s.FieldB))
)
Run Code Online (Sandbox Code Playgroud)

内部的每个聚合描述符都将自身添加到字典中(使用agg名称作为键),然后返回自身,以便您可以不断添加更多内容.

对在NEST中缺乏关于aggs的文档表示抱歉.我们正在修改文档,我们将确保包含上述用例的示例.