如何在NEST弹性搜索中根据命中率对结果进行排序
本文关键字:命中率 结果 排序 NEST 搜索 | 更新日期: 2023-09-27 17:57:43
我正在使用NEST(c#)与Elasticsearch进行通信。然而,结果并不是基于命中率,我如何根据命中率对结果进行排序,而且我只得到了10条记录。下面是我的代码示例
var result = client.Search(q => q
.Index(IndexName)
.From(0)
.Type("post")
.Fields("title","message")
.Size(10)
.Query(fq1 => fq1
.QueryString(fqqs1 => fqqs1
.OnFieldsWithBoost(d => d
.Add("title", 7.0)
.Add("message", 5.0))
.Query(SearchQuery))));
我的message
字段将包含大文本,是否可以像谷歌搜索结果一样,在消息中只获得搜索关键字周围的几行?
你好,按命中率排序,只需使用
var result = client.Search(q => q
.Index(IndexName)
.From(0)
.Type("post")
.Fields("title","message")
.TrackScores(true)
.Size(10)
.Query(fq1 => fq1
.QueryString(fqqs1 => fqqs1
.OnFieldsWithBoost(d => d
.Add("title", 7.0)
.Add("message", 5.0)
)
.Query(SearchQuery)
)
.Sort(sort => sort.OnField("_score").Descending())
);
要获得更多记录,只需增加Size()中的数量