elasticsearch 在DSL语法中嵌套多个术语
我正在尝试将以下查询转换为嵌套DSL语法:elasticsearch 在DSL语法中嵌套多个术语,elasticsearch,nest,dsl,elasticsearch,Nest,Dsl,我正在尝试将以下查询转换为嵌套DSL语法: { "aggs": { "color": { "terms": { "field": "Color" } }, "weight": { "terms": { "field": "Weight
{
"aggs": {
"color": {
"terms": {
"field": "Color"
}
},
"weight": {
"terms": {
"field": "Weight"
}
}
}
}
每个术语都来自包含名称和字段ID的列表。到目前为止,我已经做到了:
var request2 = _client.Search<T>(s => s
.Aggregations(aggs =>
aggs.Terms("Weight", x => x.Field("Weight")).Terms("Color", x => x.Field("Weight"))));
我想使用对象初始值设定项语法会更好,但是我更愿意在dsl中使用它。类似于以下内容的东西会起作用
var client = new ElasticClient();
var fields = new List<string>
{
"color",
"weight",
"foo",
"bar"
};
var response = client.Search<object>(s => s
.Aggregations(aggs =>
{
foreach (var field in fields)
{
aggs.Terms(field, t => t.Field(field));
}
return aggs;
})
);
这看起来正是我要找的,明天将进行测试并报告。非常感谢。
var client = new ElasticClient();
var fields = new List<string>
{
"color",
"weight",
"foo",
"bar"
};
var response = client.Search<object>(s => s
.Aggregations(aggs =>
{
foreach (var field in fields)
{
aggs.Terms(field, t => t.Field(field));
}
return aggs;
})
);