![](/img/trans.png)
[英]How to give higher score to exact searches than phonetic ones in Elasticsearch?
[英]Elasticsearch: Give higher score to long title
我有一個 Elasticsearch 數據庫,其中所有文檔都有一個標題字段並由該字段查詢。
默認情況下,Elasticsearch 搜索給帶有短標題的文檔更高的分數。 但是,在我的用例中,短標題是無關緊要的。
例如,當我搜索“深度學習”時,第一個結果是
我希望標題為“帶記憶的半監督深度學習”的文檔出現在標題為“深度學習”的文檔之前。
是否有任何解決方案可以在不更改映射的情況下實現這一目標?
謝謝
最好的方法是計算內容長度 ant 攝取時間,將其保存在一個字段中並將其與 function 分數查詢一起使用。
{
"query": {
"function_score": {
"query": {
"match": { "title": "elasticsearch" }
},
"script_score": {
"script": {
"source": "doc['title_length'].value * _score"
}
}
}
}
}
或者,如果您在此字段上有關鍵字映射,則可以使用使用字段大小的腳本分數查詢。 如果沒有,您將必須啟用其上的字段數據。 但它非常昂貴,不推薦。
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-script-score-query.html
GET /_search
{
"query": {
"script_score": {
"query": {
"match": { "title": "elasticsearch" }
},
"script": {
"source": "doc['title'].value.length() * _score"
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.