【Elasticsearch】function_score與rescore

它們倆都是用來“**干涉評分**”的,但**工作階段不同、性能開銷不同、能做的事也不同**。一句話總結:

> **function_score** 在 **第一次算分** 時就動手腳; ?
> **rescore** 在 **拿到 Top-N 結果后** 再“重新打分”。

下面把“能干嘛”拆開講。

────────────────── ?
1. function_score(查詢階段就改分)

? 時機:每個分片在 **收集命中文檔時** 直接算完最終得分;屬于 **query 階段**。 ?
? 性能:對 **全部命中文檔** 都生效,數據量大時成本最高。 ?
? 典型用途 ?
- 按業務權重提升/降低:新品×1.5、廣告×0.8 ?
- 把“銷量”“點擊率”等數值字段線性/對數地融進分數 ?
- 地理位置衰減:離用戶越近分數越高 ?
- 隨機打散:給每個用戶返回略有不同的排序 ?
- 腳本寫復雜規則:if-else、正則、調用外部服務(不推薦高并發)

────────────────── ?
2. rescore(先粗排,再精排)

? 時機:各分片先用原始查詢拿到 **window 內的 Top-K**(默認 10×page_size),然后只在 **這 K 個文檔** 上重新算分;屬于 **fetch 階段**。 ?
? 性能:只動少量文檔,**比 function_score 輕量**。 ?
? 典型用途 ?
- 用 **昂貴腳本** 或 **復雜機器學習模型** 給 Top-K 做二次精排 ?
- 把 **phrase proximity**、**sloppy 查詢** 放在 rescore 里,避免對全量文檔計算 ?
- 多輪 rescore:第一輪粗排,第二輪用更復雜的模型微調 ?
- A/B 測試:只對小窗口做實驗,不影響全量

────────────────── ?
3. 簡單對比

| 維度 ? ? ? ? ?| function_score ? ? ? ? ? ? ? ? | rescore ? ? ? ? ? ? ? ? ? ? ? ? |
|---------------|--------------------------------|---------------------------------|
| 生效階段 ? ? ?| query ? ? ? ? ? ? ? ? ? ? ? ? ?| fetch(先粗排再精排) ? ? ? ? ? |
| 處理文檔量 ? ?| 所有命中文檔 ? ? ? ? ? ? ? ? ? | 窗口內的 Top-K(可配置) ? ? ? ?|
| 性能 ? ? ? ? ?| 重 ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 輕(窗口小就便宜) ? ? ? ? ? ? ?|
| 能否用腳本 ? ?| 能 ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 能 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
| 能否鏈式 ? ? ?| 只能一個 function_score ? ? ? ?| 可配多個 rescore 按順序執行 ? ? |
| 典型場景 ? ? ?| 業務加權、數值衰減、隨機打散 ? | 昂貴模型精排、phrase proximity ?|

────────────────── ?
4. 一句話選型

? **想對所有文檔一視同仁地改分** → 用 `function_score` ?
? **只想在“頭部結果”上精雕細琢** → 用 `rescore`

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914148.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914148.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914148.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

無廣告純凈體驗 WPS2016 精簡版:移除聯網模塊 + 非核心組件,古董電腦也能跑

各位辦公小能手們!今天給你們介紹一款超神的辦公軟件——WPS2016精簡版!它有多小呢?才33MB,簡直就是軟件界的小不點兒!別看它個頭小,功能可一點兒都不含糊,文字、表格、演示這三大功能它全都有。…

《PyWin32:Python與Windows的橋梁,解鎖系統自動化新姿勢》

什么是 PyWin32在 Windows 平臺的 Python 開發領域中,PyWin32 是一個舉足輕重的庫,它為 Python 開發者打開了一扇直接通往 Windows 操作系統底層功能的大門。簡單來說,PyWin32 是用于 Python 訪問 Windows API(Application Progra…

vite如何生成gzip,并在服務器上如何設置開啟

1. 安裝插件npm install vite-plugin-compression -D2. 在 vite.config.ts 中配置TypeScriptimport { defineConfig } from vite import compression from vite-plugin-compressionexport default defineConfig({plugins: [compression({algorithm: gzip,ext: .gz,threshold: 1…

1068萬預算!中國足協大模型項目招標,用AI技術驅動足球革命

中國足協啟動國際足聯“前進計劃”下的大數據模型項目,預算1068萬元。該項目將建立足球大數據分析平臺,利用AI技術為國家隊、青少年足球、業余球員及教練員裁判員提供精準數據分析服務,旨在通過科技手段提升中國足球競技水平。 中國足球迎來數…

AI產品經理面試寶典第12天:AI產品經理的思維與轉型路徑面試題與答法

多樣化思維:如何跳出單一框架解題? 面試官:AI產品常面臨復雜場景,請舉例說明你如何運用多樣化思維解決問題? 你的回答:我會從三個維度展開:多角度拆解需求本質,多層級融合思維模式,多變量尋找最優解。比如設計兒童教育機器人時,不僅考慮功能實現(技術層),還融入情…

vscode.window對象講解

一、vscode.window 核心架構圖 #mermaid-svg-fyCxPz1vVhkf96nE {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-fyCxPz1vVhkf96nE .error-icon{fill:#552222;}#mermaid-svg-fyCxPz1vVhkf96nE .error-text{fill:#5522…

為什么一個 @Transactional 注解就能開啟事務?揭秘 Spring AOP 的底層魔法

你是否也曾深陷在各種“額外”邏輯的泥潭,為了給一個核心業務方法增加日志、權限校驗或緩存,而不得不將這些非核心代碼硬塞進業務類中,導致代碼臃腫、職責不清?是時候用代理設計模式 (Proxy Design Pattern) 來解脫了!…

《Spring 中上下文傳遞的那些事兒》Part 8:構建統一上下文框架設計與實現(實戰篇)

📝 Part 8:構建統一上下文框架設計與實現(實戰篇) 在實際項目中,我們往往需要處理多種上下文來源,例如: Web 請求上下文(RequestContextHolder)日志追蹤上下文&#xf…

配置驅動開發:初探零代碼構建嵌入式軟件配置工具

前言在嵌入式軟件開發中,硬件初始化與寄存器配置長期依賴人工編寫重復代碼。以STM32外設初始化為例,開發者需手動完成時鐘使能、引腳模式設置、參數配置等步驟,不僅耗時易錯(如位掩碼寫反、模式枚舉值混淆)&#xff0c…

Elasticsearch混合搜索深度解析(下):執行機制與完整流程

引言 在上篇中,我們發現了KNN結果通過SubSearch機制被保留的關鍵事實。本篇將繼續深入分析混合搜索的執行機制,揭示完整的處理流程,并解答之前的所有疑惑。 深入源碼分析 1. SubSearch的執行機制 1.1 KnnScoreDocQueryBuilder的實現 KNN結果被…

Apache HTTP Server 從安裝到配置

一、Apache 是什么?Apache(全稱 Apache HTTP Server)是當前最流行的開源Web服務器軟件之一,由Apache軟件基金會維護。它以穩定性高、模塊化設計和靈活的配置著稱,支持Linux、Windows等多平臺,是搭建個人博客…

php中調用對象的方法可以使用array($object, ‘methodName‘)?

是的,在PHP中,array($object, methodName) 是一種標準的回調語法,用于表示“調用某個對象的特定方法”。這種語法可以被許多函數(如 call_user_func()、call_user_func_array()、usort() 等)識別并執行。 語法原理 在P…

【設計模式】單例模式 餓漢式單例與懶漢式單例

單例模式(Singleton Pattern)詳解一、單例模式簡介 單例模式(Singleton Pattern) 是一種 創建型設計模式,它確保一個類只有一個實例,并提供一個全局訪問點來獲取這個實例。(對象創建型模式&…

vue3 el-table 行數據沾滿格自動換行

在使用 Vue 3 結合 Element Plus 的 <el-table> 組件時&#xff0c;如果你希望當表格中的行數據文本過長時能夠自動換行&#xff0c;而不是溢出到其他單元格或簡單地截斷&#xff0c;你可以通過以下幾種方式來實現&#xff1a;方法 1&#xff1a;使用 CSS最簡單的方法是通…

windows電腦遠程win系統服務器上的wsl2

情況 我自己使用win11筆記本電腦&#xff0c;想要遠程win11服務器上的wsl2 我這里只有服務器安裝了wsl2&#xff0c;win11筆記本沒有安裝 因此下面提到的Ubuntu終端指的是win服務器上的wsl2終端 一定要區分是在哪里輸入命令&#xff01;&#xff01; 安裝SSH 在服務器上&#x…

神經輻射場 (NeRF):重構三維世界的AI新視角

神經輻射場 (NeRF)&#xff1a;重構三維世界的AI新視角 舊金山蜿蜒起伏的街道上&#xff0c;一輛裝備12個攝像頭的Waymo自動駕駛測試車緩緩駛過。它記錄的280萬張街景圖像并未被簡單地拼接成平面地圖&#xff0c;而是被輸入一個名為Block-NeRF的神經網絡。數周后&#xff0c;一…

Kubernetes自動擴縮容方案對比與實踐指南

Kubernetes自動擴縮容方案對比與實踐指南 隨著微服務架構和容器化的廣泛采用&#xff0c;Kubernetes 自動擴縮容&#xff08;Autoscaling&#xff09;成為保障生產環境性能穩定與資源高效利用的關鍵技術。面對水平 Pod 擴縮容、垂直資源調整、集群節點擴縮容以及事件驅動擴縮容…

【CVPR2025】計算機視覺|SIREN: 元學習賦能!突破INR高分辨率圖像分類難題

論文地址&#xff1a;https://arxiv.org/pdf/2503.18123v1 代碼地址&#xff1a;https://github.com/SanderGielisse/MWT 關注UP CV縫合怪&#xff0c;分享最計算機視覺新即插即用模塊&#xff0c;并提供配套的論文資料與代碼。 https://space.bilibili.com/473764881 摘要 …

牛客周賽 Round 99

賽時成績如下&#xff1a;A. Round 99題目描述 對于給定的五位整數&#xff0c;檢查其中是否含有數字 99&#xff1b;換句話說&#xff0c;檢查是否存在相鄰的兩個數位&#xff0c;其值均為 。解題思路&#xff1a; 檢查相鄰的兩個數字是否均為9#include <bits/stdc.h> u…

從0到1搭建個人技術博客:用GitHub Pages+Hexo實現

一、為什么要搭建個人技術博客&#xff1f; 在技術圈&#xff0c;擁有個人博客的好處不言而喻&#xff1a; 簡歷加分項&#xff1a;面試官更青睞有技術沉淀的候選人知識系統化&#xff1a;輸出倒逼輸入&#xff0c;加深技術理解人脈拓展&#xff1a;吸引同行關注&#xff0c;…