Jos*_*a I 3 .net c# lucene.net elasticsearch nest
我正在尝试使用 Nest Elastic Search 按 CarsSold 降序获取前 10 辆不同的汽车订单。
我的弹性课程看起来像:
public class Make
{
public string MakeId {get;set;}
public string MakeName {get;set;}
public string Address { get;set;}
public List<Cars> Models {get;set;}
}
public class Cars
{
public int Id{get;set;}
public string CarsName {get;set;}
public int CarsSold {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下代码,但该值未按 CarsSold Descending 排序:
var cars = Client.Search<Make>(s => s
.Size(0)
.Aggregations(a => a
.Terms("unique", t => t
.Field(f => f.Models.FirstOrDefault().CarsName)
.Size(10)
.Aggregations(a2 => a2
.Max("authStats", s1 => s1.Field(f => f.Models.FirstOrDefault().CarsSold))
)
)
)
);
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。好吧,我尝试使用聚合来使用 Max 和 Stats。
无论如何找到了方法。它可能会帮助像我一样挣扎的其他人:使用以下代码完成:
var result = Client.Search<Make>(s => s
.Aggregations(a => a
.Terms("unique", te => te
.Field("cars.carsName")
.Size(10)
.OrderDescending("totalCount")
.Aggregations(aa => aa
.Max("totalCount", ma => ma
.Field("cars.carsSold")
)
)
)
)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1759 次 |
| 最近记录: |