Я использую следующий код для агрегации. Он только возвращает идентификатор, и я также хотел бы вернуть имя. Мы сделали проект несколько лет назад, и мы проиндексировали поле с именем idName (разделенное |), но это было очень грязное решение. Мне интересно, есть ли лучшие способы сделать это с последней версией Elastic?
.Aggregations(aggs => aggs
.Nested("nested_cat", nested => nested
.Path(p => p.Categories)
.Aggregations(a1 => a1
.Terms("terms_cat_id", terms1 => terms1
.Field(f1 => f1.Categories.First().Id)
)
)
)
)
Я читал, что есть еще 2 варианта. Один из них - выполнить субагрегацию, однако следующее не работает:
.Aggregations(aggs => aggs
.Nested("nested_cat", nested => nested
.Path(p => p.Categories)
.Aggregations(a1 => a1
.Terms("terms_cat_id", terms1 => terms1
.Field(f1 => f1.Categories.First().Id)
.Aggregations(a2 => a2
.Terms("terms_cat_name", terms2 => terms2
.Field(f2 => f2.Categories.First().Name)
)
)
)
)
)
)
Я также читал, что я могу использовать Скрипты, но я тоже не получил это работать.