我正在使用以下代码来获取基于给定查询的结果列表。我想要做的是,如果文档分数彼此相等,则按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())
);
感谢您的帮助。
答案 0 :(得分:2)
好的,然后按分数订购后按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())
);