gpt4 book ai didi

c# - 将Elasticsearch JSON查询转换为C#NEST

转载 作者:行者123 更新时间:2023-12-03 01:44:56 24 4
gpt4 key购买 nike

我有一个Elasticsearch数据库,我有一个索引test
这里的架构:

PUT test
{
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"channel" : {
"properties" : {
"id" : { "type" : "integer" },
"name" : { "type" : "string" }
}
},
"segment" : {
"properties" : {
"groupid" : { "type" : "text", "fielddata": true },
"instrName" : { "type" : "text", "fielddata": true },
"channelList" : { "type" : "object" }
}
}
}
}

我想将此查询转换为C#NEST代码:
 GET /test/segment/_search
{
"aggs": {
"agg": {
"terms": {
"field": "instrName"
},
"aggs": {
"agg2": {
"terms": {
"field": "groupid"
}
}
}
}
}
}

我知道如何转换单个聚合查询,但不转换嵌套聚合

编辑

这是当前代码,但是我从ES中得到500错误
    var res = elastic.Search<SegmentRecord>(
s => s.Index(esIndex).Aggregations(a => a.Terms("instrName", x => x.Aggregations(w => w.Terms("groupid", sel => sel)))));

最佳答案

您尚未指定每个 terms aggregation应该在其上运行的字段。具有terms子聚合的terms聚合看起来像

var res = elastic.Search<SegmentRecord>(s => s
.Index(esIndex)
.Aggregations(a => a
.Terms("agg", t => t
.Field("instrName")
.Aggregations(sa => sa
.Terms("agg2", tt => tt
.Field("groupid")
)
)
)
)
);

关于c# - 将Elasticsearch JSON查询转换为C#NEST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44827357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com