Агрегирование терминов клиента ElasticSearch .NET не возвращает ключ - PullRequest
0 голосов
/ 27 сентября 2019

Мой индекс ES содержит список книг, я хотел бы вернуть список всех авторов этих книг, используя агрегации, поэтому я использовал простое объединение Term с использованием клиента ES .NET.

Вот мой код:

var searchResponse = client.Search<dynamic>(s => {
    s = s
        .Aggregations(agg => agg
            .Terms("author_list", ac => ac
                .Field("author")
                .Missing("n/a")
            )
        )
        .Size(30);
        return s;
    }
);

return Ok(new
{
    Items = searchResponse.Hits.Select(s => s.Source),
    AggregationList = searchResponse.Aggregations
});

Тем не менее, я получаю следующий результат:

"aggregationList": {
    "author_list": {
        "afterKey": null,
        "bgCount": 0,
        "docCount": 0,
        "docCountErrorUpperBound": 0,
        "items": [
            {},
            {},
            {},
            {},
            {},
            {},
            {},
            {},
            {},
            {}
        ],
        "meta": null,
        "sumOtherDocCount": 65,
        "interval": null
    }
}

Как вы можете видеть, агрегационные корзины пусты, хотя я бы хотел, чтобы они содержалиФИО авторов, какая помощь как это сделать?

...