我安装了ElasticSearch(6.5.0),并且在我的项目中使用了nest(7.0),我想要一个软件的每个名称,获取该软件的所有子版本。
所以我创建了这个查询:
var res = client
.Search<Software>(s => s
.Size(0)
.Query(q => q
.Match(m => m
.Field(f => f.Name)
)
)
.Aggregations(a => a
.Terms("SubVersion", t => t
.Field(ag => ag.SubVersion))
)
);
var termsAggregation = searchResponse4.Aggregations.Terms("SubVersion");
但是此查询的结果只给我索引中的不同子版本。
我实际上是ElasticSearch的初学者,我已经尝试过查找有关我的问题的文档,但是我并没有真正找到可以帮助我的东西。
编辑: 为了更好地解释,我想让查询查询给我这样的树
Software1
Subversion1
Subversion2
Software2
Subversion1
SubVersion2
答案 0 :(得分:0)
我不确定,但是在termsAggregation
上您拥有.Bucket
属性,该属性为您提供KeyedBucket列表<>
并且.Size(0)应该大于0。
foreach(KeyBucket<> bucket in termsAggregation.Bucket)
{
var key = bucket.Key;
var values = bucket.Values;
}
有帮助吗?