如果输出文档分数按id排序相同,则使用c#弹性搜索巢
本文关键字:搜索 文档 输出 排序 id 如果 | 更新日期: 2023-09-27 18:12:40
我使用下面的代码来获取基于给定查询的结果列表。我想做的是,如果文档分数彼此相等,然后按id排序结果,最低的数字首先出现。
注意,这应该只影响那些彼此得分相等的文档,而不是所有给定的结果,我将限制结果为最好的10。
var searchResults = client.Search<Place>(s => s
.From(0)
.Size(10)
.TrackScores(true)
.Query(q => q
.QueryString(fqqs1 => fqqs1
.OnFieldsWithBoost(d => d
.Add("name", 5.0)
)
.Query("birmingham, south east hospital")
)
)
.Sort(sort => sort.OnField("_score").Descending())
);
谢谢你的帮助。
好的,那么先按分数排序,再按id排序。这样的:
var searchResults = client.Search<Place>(s => s
.From(0)
.Size(10)
.TrackScores(true)
.Query(q => q
.QueryString(fqqs1 => fqqs1
.OnFieldsWithBoost(d => d
.Add("name", 5.0)
)
.Query("birmingham, south east hospital")
)
)
.Sort(sort => sort.OnField("_score").Descending())
.Sort(sort => sort.OnField(f=>f.Id).Ascending())
);