簡體   English   中英

如何在NEST彈性搜索中基於命中分數對結果進行排序

[英]How to sort result based on hit score in NEST elastic search

我正在使用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字段將包含大文本,是否有可能像Google搜索結果一樣在消息中的搜索關鍵字周圍僅顯示幾行

您好,按點擊量排序

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()中的數字即可

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM