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(..)实例化