我正在使用以下代码进行汇总。它只返回ID,我也想返回Name。几年前,我们做了一个项目,我们索引了一个名为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)
)
)
)
)
我阅读了另外两个选项。一种是进行子聚合,但是以下方法似乎无效:
.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)
)
)
)
)
)
)
我还读到我可以使用脚本,但是我也没有使用它。
答案 0 :(得分:0)
通过将category.name映射为“关键字”而不是“文本”,我能够使子聚合起作用