.Nest Fluent Dsl Aggregations

时间:2018-04-12 09:34:39

标签: c# .net elasticsearch fluent

我正在使用Elasticsearch .Nest。 我需要创建一个搜索查询,它将返回fileProperties对象,但只返回每个fileProperties的最新版本。 每个FileId都有许多版本。所以我需要的是做一个groupBy FileId并获得每个FileId的Max版本的整个文档对象。 这是我的班级:

public class FileProperties
{

    public string FileName { get; set; }       
    public string FileId { get; set; }       
    public long? Version { get; set; }
    public string FileType { get; set; }
    public Dictionary<string,string> DynamicProperties { get; set; }       
}

和我的代码:

 var searchResponse = client.Search<FileProperties>(s => s.AllIndices().Size(100)
        .Query(q =>
        q.Match(m => m
       .Field(f => f.FileName)
       .Query(fileId))
        && q.Match(m => m
       .Field(f => f.Version)
       .Query(version))).Aggregations(fstAgg => fstAgg
.Terms("file", f => f
  .Field(z => z.FileId.Suffix("keyword"))
   .ExecutionHint(TermsAggregationExecutionHint.GlobalOrdinals)
    .Aggregations(sums => sums
      .Max("version", son => son
      .Field(f4 => f4.Version )
    )
  )
) ) );     

但结果只显示该键的键和最大值。 我想要的是完整的文档对象,如果可能的话......

有什么想法吗?

0 个答案:

没有答案