Гигантское упругое гнездо 7.1 Агрегация полей Общее сокращенное выражение поля - PullRequest
0 голосов
/ 18 сентября 2019

так что читайте это:

https://www.elastic.co/guide/en/elasticsearch/client/net-api/7.x/field-inference.html

, учитывая класс

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);

1 Ответ

2 голосов
/ 19 сентября 2019

Как указано в документации, вам нужно добавить статический импорт , чтобы иметь возможность писать код, используя тот же стиль

using static Nest.Infer;

В противном случае вам нужно использовать простой new Field(..)экземпляр

...