NEST弹性搜索:如何返回某些字段以及汇总结果?

时间:2015-12-14 06:53:21

标签: c# elasticsearch nest elasticsearch-net

我需要在聚合后查询某些字段。

文档结构是:



{
  id: 1,
  type: AA,
  hashValue: "qweqeqwdwwew"
    ...and many more fields
}




我想通过' hashValue'进行聚合,这样我只得到唯一的hashValues,返回结果也应该有类型。我需要NEST查询的帮助。

要聚合的当前查询是:



var result = esClient.Search < EType > (q => q
.Index(esClient.Index)
.Routing(id.ToString(CultureInfo.InvariantCulture))
.Aggregations(ag => ag
  .Terms("Hash", ee => ee
    .Field(f => f.hashValue)))));
&#13;
&#13;
&#13;

如何将其返回类型字段与hashValue一起扩展?

感谢。

1 个答案:

答案 0 :(得分:1)

从您的评论中,您似乎希望按每个哈希值的每种类型汇总文档。为此,您需要的Nest查询如下:

var result = esClient.Search<EType>(q => q
    .Index(esClient.Index)
    .Routing(id.ToString(CultureInfo.InvariantCulture)
    .Aggregations(agHash => agHash
        .Terms("Hash", eeHash => eeHash
            .Field(fHash => fHash.hashValue)
        .Aggregations(agType => agType
            .Terms("Types", eeType => eeType
                .Field(fType => fType.typeValue))))));