⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Atlas Search 自定义评分:使用 function_score 融合业务权重

讲解 MongoDB Atlas Search 中如何利用 function_score 组件将业务字段(如用户等级、商品热度)融入全文搜索的评分计算,实现个性化排序。 · 难度:入门 · +10XP

Atlas Search 自定义评分:使用 function_score 融合业务权重

Atlas Search 基于 Lucene 引擎,支持通过 function_score 来修改文档的默认相关性评分。本教程将演示如何创建带有 function_score 的索引定义,并在查询时通过 boost 参数将数值字段(如 price、popularity)或日期字段(如最近活动时间)转化为评分因子。你还会学到如何组合多个函数,如线性衰减、高斯衰减和多项式函数,以实现类似“热门且较新的内容优先展示”的效果。

{
  $search: {
    index: 'products_search',
    function_score: {
      query: { text: { path: 'description', query: 'wireless mouse' } },
      functions: [
        { 
          field_value: { 
            field: 'popularity', 
            factor: 0.5 
          } 
        },
        {
          gauss: {
            origin: ISODate('2024-08-01'),
            scale: 30,
            decay: 0.5,
            offset: 7
          },
          path: 'last_updated'
        }
      ],
      scoreMode: 'multiply'
    }
  }
}
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 83 篇
0 完成
🔥 0