嵌套对象基于最大值的弹性搜索

问题描述 投票:0回答:1

我有一个简单的课程

public class Foo 
{
   public List<Bar> Bars {get;set;}
}

public class Bar
{
   public DateTime Timestamp {get;set;}
}

这保存在Elastic中。我正在使用Nest客户端搜索Foo。我需要做的是返回Foos,但只返回基于Bar的最新Timestamp

我正在使用Aggregations,但这只是给了我最大时间戳,我需要但是然后我需要另外调用Elastic来获取它?这似乎是不对的。有没有办法我可以搜索Foo文件,但嵌套对象Bar,我只想返回一个具有最大时间戳的那个,即List应该只有一个Bar

c# elasticsearch nest
1个回答
0
投票

您可以尝试使用DisMax功能

var res = await _client.SearchAsync<Foo>(s => s
                                    .Query(q => q
                                        .Bool(b => b
                                            .Must(
                                                mu => mu.DisMax(d => d.Name("Bars"))))));
© www.soinside.com 2019 - 2024. All rights reserved.