国产欧美日韩三区_偷窥自拍亚洲色图精选_久久大片网站_成人在线黄色_成人亚洲免费视频_99久久久精品_国产美女自拍_韩国19禁主播vip福利视频_色综合视频一区二区三区日韩_日本在线观看一区二区

當前位置:首頁 > 科技  > 軟件

深度探索 Elasticsearch 8.X:function_score 參數解讀與實戰案例分析

來源: 責編: 時間:2023-08-05 11:45:48 5111觀看
導讀在 Elasticsearch 中,function_score 可以讓我們在查詢的同時對搜索結果進行自定義評分。function_score 提供了一系列的參數和函數讓我們可以根據需求靈活地進行設置。近期有同學反饋,function_score 的相關參數不好理

在 Elasticsearch 中,function_score 可以讓我們在查詢的同時對搜索結果進行自定義評分。OSl28資訊網——每日最新資訊28at.com

function_score 提供了一系列的參數和函數讓我們可以根據需求靈活地進行設置。OSl28資訊網——每日最新資訊28at.com

近期有同學反饋,function_score 的相關參數不好理解,本文將深入探討 function_score 的核心參數和函數。OSl28資訊網——每日最新資訊28at.com

圖片圖片OSl28資訊網——每日最新資訊28at.com

1、function_score 函數的用途及適用場景

Elasticsearch 的 function_score 查詢是一種強大的工具,它可以允許我們修改文檔的基本的相關評分,讓我們在特定的應用場景下獲得更好的搜索結果。OSl28資訊網——每日最新資訊28at.com

這個功能通過提供了一組內置函數(如 script_score, weight, random_score, field_value_factor, decay functions等),以及一系列參數(如boost_mode和score_mode等)來實現。OSl28資訊網——每日最新資訊28at.com

以下是一些 function_score 可以應用的場景:OSl28資訊網——每日最新資訊28at.com

1.1 用戶偏好場景

如果需要了解用戶的興趣或者行為,我們可以使用 function_score 來提升用戶可能感興趣的結果。OSl28資訊網——每日最新資訊28at.com

比如在推薦系統中,如果我們已知道用戶喜歡某個作者的文章,可以提升這個作者的文章的得分。OSl28資訊網——每日最新資訊28at.com

比如最近火熱的“羅剎海市”就被網易云音樂推薦到最前面。OSl28資訊網——每日最新資訊28at.com

圖片圖片OSl28資訊網——每日最新資訊28at.com

1.2 隨機抽樣場景

如果我們需要從一個大的數據集中隨機抽樣,可以使用 random_score 函數。OSl28資訊網——每日最新資訊28at.com

這個函數會給每個文檔生成一個隨機得分,從而讓我們能夠得到隨機的搜索結果。OSl28資訊網——每日最新資訊28at.com

1.3 時間敏感的查詢場景

對于一些時間敏感的數據,比如新聞、博客文章或者論壇帖子,新的文檔通常比舊的文檔更相關。OSl28資訊網——每日最新資訊28at.com

在這種情況下,我們可以使用 decay functions(衰減函數) 來降低舊的文檔的得分。OSl28資訊網——每日最新資訊28at.com

1.4 地理位置敏感的查詢場景

如果我們的應用關心地理位置,比如房地產或者旅游相關的應用。OSl28資訊網——每日最新資訊28at.com

可以使用 decay functions (衰減函數)來提升接近某個地理位置的文檔的得分。OSl28資訊網——每日最新資訊28at.com

1.5 特定字段影響場景

如果我們的文檔有一些字段值可以影響相關度評分,可以使用 field_value_factor (字段值因子)函數。OSl28資訊網——每日最新資訊28at.com

比如在電商場景,一個商品的銷量、評分或者評論數量可能會影響搜索結果的排序。OSl28資訊網——每日最新資訊28at.com

總的來說,function_score 提供了一種靈活的方式來滿足各種復雜的相關度評分需求。OSl28資訊網——每日最新資訊28at.com

2、function_score 參數介紹

2.1 boost_mode 參數

boost_mode 決定了如何將查詢得分和函數得分進行組合。OSl28資訊網——每日最新資訊28at.com

可接受的參數有:OSl28資訊網——每日最新資訊28at.com

boost_modeOSl28資訊網——每日最新資訊28at.com

描述OSl28資訊網——每日最新資訊28at.com

multiplyOSl28資訊網——每日最新資訊28at.com

查詢得分和函數得分相乘(默認值)OSl28資訊網——每日最新資訊28at.com

sumOSl28資訊網——每日最新資訊28at.com

查詢得分和函數得分相加OSl28資訊網——每日最新資訊28at.com

avgOSl28資訊網——每日最新資訊28at.com

查詢得分和函數得分的平均值OSl28資訊網——每日最新資訊28at.com

firstOSl28資訊網——每日最新資訊28at.com

僅僅使用函數得分OSl28資訊網——每日最新資訊28at.com

maxOSl28資訊網——每日最新資訊28at.com

查詢得分和函數得分中的最大值OSl28資訊網——每日最新資訊28at.com

minOSl28資訊網——每日最新資訊28at.com

查詢得分和函數得分中的最小值OSl28資訊網——每日最新資訊28at.com

replaceOSl28資訊網——每日最新資訊28at.com

完全替換查詢得分,只使用函數得分OSl28資訊網——每日最新資訊28at.com

2.2 score_mode

score_mode 決定了如何處理多個函數的分數。OSl28資訊網——每日最新資訊28at.com

可接受的參數有:OSl28資訊網——每日最新資訊28at.com

score_modeOSl28資訊網——每日最新資訊28at.com

描述OSl28資訊網——每日最新資訊28at.com

multiplyOSl28資訊網——每日最新資訊28at.com

各個函數得分相乘OSl28資訊網——每日最新資訊28at.com

sumOSl28資訊網——每日最新資訊28at.com

各個函數得分相加(默認值)OSl28資訊網——每日最新資訊28at.com

avgOSl28資訊網——每日最新資訊28at.com

各個函數得分的平均值OSl28資訊網——每日最新資訊28at.com

firstOSl28資訊網——每日最新資訊28at.com

僅僅使用第一個函數的得分OSl28資訊網——每日最新資訊28at.com

maxOSl28資訊網——每日最新資訊28at.com

各個函數得分中的最大值OSl28資訊網——每日最新資訊28at.com

minOSl28資訊網——每日最新資訊28at.com

各個函數得分中的最小值OSl28資訊網——每日最新資訊28at.com

2.3 提供的函數

function_score 提供了多種函數類型來進行自定義評分:OSl28資訊網——每日最新資訊28at.com

Score FunctionOSl28資訊網——每日最新資訊28at.com

描述OSl28資訊網——每日最新資訊28at.com

script_scoreOSl28資訊網——每日最新資訊28at.com

用腳本計算得分OSl28資訊網——每日最新資訊28at.com

weightOSl28資訊網——每日最新資訊28at.com

簡單地修改查詢得分,不考慮字段值OSl28資訊網——每日最新資訊28at.com

random_scoreOSl28資訊網——每日最新資訊28at.com

生成隨機得分OSl28資訊網——每日最新資訊28at.com

field_value_factorOSl28資訊網——每日最新資訊28at.com

使用字段值進行計算得分OSl28資訊網——每日最新資訊28at.com

decay functionsOSl28資訊網——每日最新資訊28at.com

衰減函數,根據字段值的距離計算得分,越近得分越高OSl28資訊網——每日最新資訊28at.com

3、function_score 使用實戰解讀

3.1 構造數據

為了幫助大家更好地理解,我們將創建一個簡單的索引,插入一些文檔,并對它們執行 function_score 查詢。OSl28資訊網——每日最新資訊28at.com

假設我們有一個名為 articles 的索引,里面存儲了一些博客文章的數據,包括作者(author),標題(title),內容(content),以及這篇文章的喜歡數量(likes)。OSl28資訊網——每日最新資訊28at.com

首先,創建索引并添加一些文檔:OSl28資訊網——每日最新資訊28at.com

PUT /articles{  "mappings": {    "properties": {      "title": { "type": "text" },      "author": { "type": "text" },      "content": { "type": "text" },      "likes": { "type": "integer" }    }  }}POST /_bulk{ "index" : { "_index" : "articles", "_id" : "1" } }{ "title": "Elasticsearch Basics", "author": "John Doe", "content": "This article introduces the basics of Elasticsearch.", "likes": 100 }{ "index" : { "_index" : "articles", "_id" : "2" } }{ "title": "Advanced Elasticsearch", "author": "Jane Doe", "content": "This article covers advanced topics in Elasticsearch.", "likes": 500 }{ "index" : { "_index" : "articles", "_id" : "3" } }{ "title": "Elasticsearch Function Score Query", "author": "John Doe", "content": "This article discusses the function_score query in Elasticsearch.", "likes": 250 }

現在我們有了一些文檔,讓我們對它們執行 function_score 查詢。OSl28資訊網——每日最新資訊28at.com

3.2 使用 script_score 函數實現基于 'likes' 字段的對數加權排序

GET /articles/_search{  "query": {    "function_score": {      "query": {        "match_all": {}      },      "boost": "5",      "functions": [        {          "script_score": {            "script": {              "source": "Math.log(1 + doc['likes'].value)"            }          }        }      ],      "boost_mode": "multiply"    }  }}

上述查詢使用了 Elasticsearch 的 function_score 查詢。OSl28資訊網——每日最新資訊28at.com

它首先對 "articles" 索引中的所有文檔進行匹配(使用 match_all 查詢),然后使用一個腳本函數(script_score),該腳本會計算每個文檔的 "likes" 字段的自然對數值加一(Math.log(1 + doc['likes'].value)),然后把這個得分與原始查詢得分相乘(由于 boost_mode 被設為了 "multiply"),最終的得分再乘以5(由于 boost 被設為了 "5")。這種查詢用于根據 "likes" 字段對結果進行加權排序。OSl28資訊網——每日最新資訊28at.com

執行結果如下:OSl28資訊網——每日最新資訊28at.com

圖片圖片OSl28資訊網——每日最新資訊28at.com

3.3 使用 random_score 生成基于 'likes' 字段的全隨機結果查詢

GET /articles/_search{  "query": {    "function_score": {      "query": {         "match_all": {}       },      "functions": [        {          "random_score": {            "field": "likes"          }        }      ],      "boost_mode": "replace"    }  }}

上述查詢使用 Elasticsearch 的 function_score 查詢,并配合使用 random_score 函數。random_score 函數根據 "likes" 字段的值生成一個隨機分數。OSl28資訊網——每日最新資訊28at.com

重要的是,由于沒有提供一個固定的種子(seed),所以每次執行這個查詢都會返回一個全新的隨機排序結果。OSl28資訊網——每日最新資訊28at.com

match_all 是基礎查詢,用來匹配所有文檔。然后 random_score 函數基于 "likes" 字段值生成隨機分數。OSl28資訊網——每日最新資訊28at.com

boost_mode 設為 "replace" 表示忽略基礎查詢的分數,完全使用 random_score 函數的分數作為最終結果。所以,這個查詢會在每次執行時都返回全新的隨機排序結果。OSl28資訊網——每日最新資訊28at.com

執行結果如下圖所示:OSl28資訊網——每日最新資訊28at.com

圖片圖片OSl28資訊網——每日最新資訊28at.com

3.4 field_value_factor 函數根據某個字段的值來修改_score

這對于一些字段很有用,比如"likes":一篇有很多"likes"的文章可能比"likes"少的文章更相關。OSl28資訊網——每日最新資訊28at.com

示例如下:OSl28資訊網——每日最新資訊28at.com

GET /articles/_search{  "query": {    "function_score": {      "query": {        "match": {          "content": "Elasticsearch"        }      },      "functions": [        {          "field_value_factor": {            "field": "likes",            "factor": 1.2,            "modifier": "sqrt",            "missing": 1          }        }      ],      "boost_mode": "multiply"    }  }}

在這個查詢中:OSl28資訊網——每日最新資訊28at.com

  • "match": { "content": "Elasticsearch" }

表示基礎查詢是在 "content" 字段中匹配包含 "Elasticsearch" 的文章。OSl28資訊網——每日最新資訊28at.com

  • field_value_factor

函數用來基于 "likes" 字段的值調整查詢得分。它首先取 "likes" 字段的值,如果文檔沒有 "likes" 字段或者該字段的值為空,那么將使用 "missing" 參數指定的默認值1。然后,它將取得的值乘以 "factor" 參數指定的因子1.2。最后,它將結果進行 "modifier" 參數指定的平方根運算("sqrt")。OSl28資訊網——每日最新資訊28at.com

  • boost_mode

參數設置為 "multiply",這表示將基礎查詢的得分和 field_value_factor 函數計算得出的得分相乘,以得到最終的文檔得分。OSl28資訊網——每日最新資訊28at.com

所以,這個查詢會返回包含 "Elasticsearch" 的文章,并且文章的得分會根據 "likes" 字段的值進行調整,"likes" 值越高的文章,得分也會越高。OSl28資訊網——每日最新資訊28at.com

執行結果如下:OSl28資訊網——每日最新資訊28at.com

圖片圖片OSl28資訊網——每日最新資訊28at.com

3.5 decay functions 根據某個字段的值的距離來調整_score。

如果值接近某個中心點,得分就會更高。這對于日期或地理位置字段特別有用。OSl28資訊網——每日最新資訊28at.com

Elasticsearch 提供了三種衰減函數:線性(linear)、指數(exp)、和高斯(gauss)。OSl28資訊網——每日最新資訊28at.com

以下是使用 gauss 函數的一個示例:OSl28資訊網——每日最新資訊28at.com

GET /articles/_search{  "query": {    "function_score": {      "query": {        "match": {          "content": "Elasticsearch"        }      },      "functions": [        {          "gauss": {            "likes": {              "origin": "100",              "scale": "20",              "offset": "0",              "decay": 0.5            }          }        }      ],      "boost_mode": "multiply"    }  }}

上述執行可概括為:使用 function_score 和 gauss 函數對含有 'Elasticsearch' 的文章進行基于 'likes' 字段的高斯衰減得分調整"。OSl28資訊網——每日最新資訊28at.com

在這個查詢中:OSl28資訊網——每日最新資訊28at.com

  • "match": { "content": "Elasticsearch" }

表示基礎查詢是在 "content" 字段中匹配包含 "Elasticsearch" 的文章。OSl28資訊網——每日最新資訊28at.com

  • gauss

函數則是用來對 "likes" 字段的值進行高斯衰減處理。OSl28資訊網——每日最新資訊28at.com

其中,OSl28資訊網——每日最新資訊28at.com

參數OSl28資訊網——每日最新資訊28at.com

OSl28資訊網——每日最新資訊28at.com

描述OSl28資訊網——每日最新資訊28at.com

originOSl28資訊網——每日最新資訊28at.com

100OSl28資訊網——每日最新資訊28at.com

期望的中心點,即 "likes" 字段的最理想值OSl28資訊網——每日最新資訊28at.com

scaleOSl28資訊網——每日最新資訊28at.com

20OSl28資訊網——每日最新資訊28at.com

表示衰減的速度,也就是距離 "origin" 值多遠時,得分會衰減到原始得分的一半OSl28資訊網——每日最新資訊28at.com

offsetOSl28資訊網——每日最新資訊28at.com

0OSl28資訊網——每日最新資訊28at.com

表示在距離 "origin" 多少的范圍內不進行衰減OSl28資訊網——每日最新資訊28at.com

decayOSl28資訊網——每日最新資訊28at.com

0.5OSl28資訊網——每日最新資訊28at.com

表示當距離超過了 "scale" 之后,得分會以多快的速度衰減,例如 0.5 表示超過 "scale" 距離后,得分會衰減到原始得分的一半OSl28資訊網——每日最新資訊28at.com

  • boost_mode

參數設置為 "multiply",這表示將基礎查詢的得分和 gauss 函數計算得出的得分相乘,以得到最終的文檔得分。OSl28資訊網——每日最新資訊28at.com

所以,這個查詢會返回包含 "Elasticsearch" 的文章,并且文章的得分會根據 "likes" 字段的值進行高斯衰減處理,"likes" 值越接近100的文章,得分也會越高。OSl28資訊網——每日最新資訊28at.com

圖片圖片OSl28資訊網——每日最新資訊28at.com

4、小結

在深入了解 Elasticsearch 的 function_score 后,我們可以明顯感受到其在搜索應用中的強大作用。無論是基于特定字段值的排序,還是利用自定義腳本微調搜索結果,function_score 都能發揮其出色的性能。OSl28資訊網——每日最新資訊28at.com

盡管 function_score 的參數和選項多樣,初看可能會覺得復雜,但只需理解各參數的含義和作用,我們就能根據需求靈活運用。實際案例中,我們使用了 script_score、field_value_factor、random_score 和 decay functions 等函數,演示了如何通過 function_score 滿足復雜的搜索需求。OSl28資訊網——每日最新資訊28at.com

但是,我們也必須注意,在使用 function_score 時,要慎重考慮性能問題,因為復雜的函數和腳本可能占用大量計算資源。在實際應用中,我們應始終關注這一點,以維護良好的系統性能。OSl28資訊網——每日最新資訊28at.com

此外,隨著數據和用戶行為的不斷變化,我們需要持續觀察、學習和調整搜索策略,以不斷提升用戶體驗。在這個過程中,function_score 將是我們強有力的工具。OSl28資訊網——每日最新資訊28at.com

總的來說,Elasticsearch 的 function_score 是一個強大而靈活的工具,只要我們深入了解并恰當使用,就能夠挖掘其巨大的潛力,提升我們的搜索應用性能和用戶體驗。OSl28資訊網——每日最新資訊28at.com

本文鏈接:http://m.yifxia.cn/showinfo-26-132-0.html深度探索 Elasticsearch 8.X:function_score 參數解讀與實戰案例分析

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 在線圖片編輯器,支持PSD解析、AI摳圖等

下一篇: 三萬字盤點 Spring 九大核心基礎功能

標簽:
  • 熱門焦點
Top 天天做日日爱| 毛片高清| 亚洲天堂一区二区三区四区| 日韩专区一区| 亚洲精品影院| 亚洲女人国产香蕉久久精品| 台湾毛片| 精品国产亚一区二区三区| 亚洲天堂免费| 青青久久精品| 91麻豆精品国产自产在线观看一区| 欧美激情伊人| 国产a网| 一级毛片看真人在线视频| 欧美激情一区二区三区视频高清| 日韩在线观看免费| 欧美另类videosbestsex| 久草免费资源| 亚洲天堂免费观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久99这里只有精品国产| 欧美a免费| 99久久精品国产国产毛片| 日韩av东京社区男人的天堂| 精品毛片视频| 成人免费一级纶理片| 日本免费乱理伦片在线观看2018| 久久精品人人做人人爽97| 国产网站免费| 91麻豆精品国产片在线观看| 九九精品在线播放| 成人av在线播放| 欧美大片毛片aaa免费看| 麻豆网站在线看| 久久久久久久免费视频| 日韩在线观看视频免费| 精品国产亚一区二区三区| 国产视频一区二区在线观看| 色综合久久天天综合观看| 黄色免费网站在线| 国产a网| 国产伦久视频免费观看 视频| 一级女性全黄久久生活片| 日韩在线观看免费| 日本在线www| 国产不卡在线播放| 国产成人精品影视| 成人免费观看视频| 四虎影视久久| 日本特黄特黄aaaaa大片| 久久国产一久久高清| 久久国产精品永久免费网站| 精品视频免费看| 日本免费区| 国产一区免费观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久久福利影视| 二级片在线观看| 久久精品店| 亚欧视频在线| 99色精品| 超级乱淫黄漫画免费| 成人免费网站久久久| 欧美另类videosbestsex视频| 四虎影视精品永久免费网站| 国产一区二区精品尤物| 国产伦理精品| 99色视频在线| 欧美大片一区| 国产91精品一区| 国产伦精品一区三区视频| 青青久久精品| 91麻豆精品国产高清在线| 精品视频在线观看免费| 久久99欧美| 精品国产亚一区二区三区| 天天做日日爱| 国产精品自拍在线观看| 成人高清免费| 欧美国产日韩在线| 日本在线www| 精品国产一区二区三区久| 91麻豆tv| 黄色福利片| 日韩免费片| 国产一区二区精品久久91| 欧美a级成人淫片免费看| 韩国毛片 免费| 欧美激情影院| 久久久久久久网| 国产综合91天堂亚洲国产| 麻豆午夜视频| 天天色色色| 国产精品免费久久| 精品美女| 亚洲 激情| 一级毛片视频免费| 亚飞与亚基在线观看| 国产成人啪精品视频免费软件| 国产一区二区福利久久| 黄色免费网站在线| 精品国产亚洲人成在线| 麻豆系列国产剧在线观看| 日日夜人人澡人人澡人人看免| 日本免费区| 国产高清视频免费| 色综合久久天天综线观看| 欧美日本二区| 欧美国产日韩一区二区三区| 欧美爱爱动态| 免费一级片在线观看| 欧美日本韩国| 欧美a级大片| 青青久在线视频| 欧美激情一区二区三区视频高清| 国产麻豆精品hdvideoss| 在线观看成人网 | 韩国妈妈的朋友在线播放| 成人免费网站久久久| 精品国产亚洲一区二区三区| 四虎论坛| 高清一级毛片一本到免费观看| 超级乱淫黄漫画免费| 亚洲第一色在线| 四虎影视久久| 成人高清免费| 九九精品久久| 精品视频在线观看免费| 99久久精品国产国产毛片| 中文字幕一区二区三区 精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日本乱中文字幕系列| 欧美国产日韩在线| 日韩一级黄色| 日韩中文字幕一区二区不卡| 欧美1卡一卡二卡三新区| 成人免费网站久久久| 高清一级片| 欧美电影免费看大全| 欧美电影免费看大全| 国产网站免费| 国产一区国产二区国产三区| 可以免费看污视频的网站| 国产视频在线免费观看| 韩国毛片 免费| 国产麻豆精品高清在线播放| 欧美一级视频免费| 青青久久精品| 免费毛片基地| 韩国妈妈的朋友在线播放| 精品视频一区二区三区免费| 日韩专区一区| 一级毛片视频在线观看| 欧美a级大片| 久久成人亚洲| 国产网站免费视频| 欧美a级大片| 久草免费资源| 成人免费观看视频| 亚洲 激情| 欧美激情在线精品video| 麻豆网站在线免费观看| 精品久久久久久中文字幕一区 | 四虎影视久久久| 美女被草网站| 超级乱淫黄漫画免费| a级黄色毛片免费播放视频| 日本伦理片网站| 免费一级片网站| 黄色短视频网站| 夜夜操天天爽| 日韩在线观看视频网站| 久久国产影院| 美女免费黄网站| 天天做日日爱夜夜爽| 成人免费观看的视频黄页| 久草免费资源| 国产成人精品综合久久久| 国产91精品一区| 国产精品自拍在线观看| 国产一区免费观看| 91麻豆精品国产片在线观看| 国产一区二区精品久| 韩国三级视频网站| 欧美a级片视频| 精品视频在线观看免费| 久久99这里只有精品国产| 日本免费看视频| 九九免费高清在线观看视频| 亚欧成人毛片一区二区三区四区| a级精品九九九大片免费看| 日韩专区在线播放| 精品视频免费在线| 国产极品白嫩美女在线观看看| 精品在线免费播放| 精品国产一区二区三区久 | 久草免费在线视频| 韩国毛片基地| 999精品在线| 中文字幕一区二区三区精彩视频 |