我正在使用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 )
)
)
) ) );
但结果只显示该键的键和最大值。 我想要的是完整的文档对象,如果可能的话......
有什么想法吗?