elasticsearch nest 7.1聚合字段泛型shorthand字段表达式
elasticsearch nest 7.1 aggregation Fields generic shorthand field expression
所以读这个:
https://www.elastic.co/guide/en/elasticsearch/client/net-api/7.x/field-inference.html
给出 class 的
public class MyData {
public Guid UserId { get; set; }
public decimal Value { get; set; }
}
我希望能够做类似的事情:
var fieldExpression = Field<MyData >(p => p.Value);
但我收到错误 The non-generic type Field cannot be used with type arguments
。
我正在使用 Nest 7.1.0。
我的目标是能够创建一个方法,该方法可以传入聚合和查询,然后在嵌套实例 ElasticClient
.
上组合成 运行
有点像(我认为)
var sr = new SearchRequest<MyData>
{
Aggregations = new ChildrenAggregation("name_of_child_agg", typeof(decimal?))
{
Aggregations =
new AverageAggregation("average_per_child", Field<MyData>(p => p.value))
&& new MaxAggregation("max_per_child", Field<MyData>(p => p.value))
&& new MinAggregation("min_per_child", Field<MyData>(p => p.value))
}
};
_client.Search<MyData>(sr);
如文档中所述,您需要添加 static import 才能使用相同的样式编写代码
using static Nest.Infer;
否则你需要使用简单的new Field(..)
实例化
所以读这个:
https://www.elastic.co/guide/en/elasticsearch/client/net-api/7.x/field-inference.html
给出 class 的
public class MyData {
public Guid UserId { get; set; }
public decimal Value { get; set; }
}
我希望能够做类似的事情:
var fieldExpression = Field<MyData >(p => p.Value);
但我收到错误 The non-generic type Field cannot be used with type arguments
。
我正在使用 Nest 7.1.0。
我的目标是能够创建一个方法,该方法可以传入聚合和查询,然后在嵌套实例 ElasticClient
.
有点像(我认为)
var sr = new SearchRequest<MyData>
{
Aggregations = new ChildrenAggregation("name_of_child_agg", typeof(decimal?))
{
Aggregations =
new AverageAggregation("average_per_child", Field<MyData>(p => p.value))
&& new MaxAggregation("max_per_child", Field<MyData>(p => p.value))
&& new MinAggregation("min_per_child", Field<MyData>(p => p.value))
}
};
_client.Search<MyData>(sr);
如文档中所述,您需要添加 static import 才能使用相同的样式编写代码
using static Nest.Infer;
否则你需要使用简单的new Field(..)
实例化