NEST弹性搜索:如何返回某些字段以及聚合结果

本文关键字:字段 结果 返回 搜索 何返回 NEST | 更新日期: 2023-09-27 18:26:36

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

文件结构为:

{
  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)))));

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

谢谢。

NEST弹性搜索:如何返回某些字段以及聚合结果

从您的评论中,您似乎希望根据每个哈希值按类型聚合文档。为此,您需要的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))))));