Мой индекс 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
}
}
Как вы можете видеть, агрегационные корзины пусты, хотя я бы хотел, чтобы они содержалиФИО авторов, какая помощь как это сделать?