mcpField
O
opensearch-function-scoring-algorithms

opensearch-function-scoring-algorithms

github.com/pproenca数据与数据库218122 次安装11 周前更新
代码仓库

关于 opensearch-function-scoring-algorithms

面向使用 OpenSearch 或 Elasticsearch 构建市集搜索的工程师,提供排名方法参考。内容按九个阶段整理为 56 条规则,附代码示例与研究来源。

主要功能

  1. 01涵盖九类排名的 56 条规则
  2. 02提供 OpenSearch 和 Elasticsearch 查询示例
  3. 03介绍召回、评分与个性化方法
  4. 04说明偏差校正与市集公平性
  5. 05涵盖离线评估与 A/B 测试
  6. 06引用研究论文与官方文档

适用场景

  1. 01从头设计市集搜索排名
  2. 02调整混合召回与评分查询
  3. 03在 LTR 训练前校正点击日志偏差
  4. 04用离线指标和 A/B 测试评估排名变化

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill opensearch-function-scoring-algorithms

安装后在 Claude Code 中输入/opensearch-function-scoring-algorithms确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
bias-click-models.md
bias-counterfactual-eval.md
bias-interleaved-evaluation.md
bias-popularity-debiasing.md
bias-position-ips.md
bias-thompson-sampling.md
decay-exp-freshness.md
decay-gauss-geo.md
decay-multi-field-composition.md
decay-offset-noise.md
decay-scale-calibration.md
div-category-diversity.md
div-dpp-quality-diversity.md
div-max-per-host.md
div-mmr-rerank.md
div-window-penalty.md
eval-ab-sample-size-mde.md
eval-ablation-attribution.md
eval-cuped-variance-reduction.md
eval-graded-judgment-set.md
eval-ndcg-primary-metric.md
eval-online-offline-correlation.md
eval-regression-query-suite.md
market-cold-start-exploration.md
market-conversion-weighted-ranking.md
market-host-quality-signals.md

详细介绍

Marketplace-Research OpenSearch 函数评分最佳实践

一份研究支持的双边市场排序算法参考汇编,适用于在 OpenSearch 或 Elasticsearch 上实现的市场(Airbnb、Uber Eats、DoorDash、Etsy、eBay、Booking.com)。包含 9 个类别中的 56 条规则,按其在搜索排序流水线中的级联影响排序。每条规则都解释了原因(它要纠正的级联效应或偏差),展示错误与正确的代码(OpenSearch JSON 查询、Painless 脚本、Python 预处理、评估方法),并链接到权威来源——KDD/SIGIR/WSDM 论文、OpenSearch 文档,以及已在大规模场景验证这些模式的市场工程博客。

适用场景

遇到以下情况时,可参考此技能:

  • 从头开始设计基于 OpenSearch 或 Elasticsearch 的新市场搜索系统
  • 调整效果不明显的 function_score / rank_feature / script_score 查询
  • 使用 Reciprocal Rank Fusion 设置混合检索(BM25 + 密集向量)
  • 为十亿级 ANN 索引选择 HNSW 或 IVF
  • 通过商品或用户嵌入向量或双塔架构添加个性化功能
  • 在重新训练 LTR 模型前,纠正点击日志中的位置偏差
  • 设计曝光公平性机制,或为新商品分配冷启动曝光
  • 组合使用地理位置、日期和新鲜度的衰减函数(gauss / exp / linear)
  • 使用 MMR、DPP 或每个主机的结果上限,提升顶部结果窗口的多样性
  • 排查“为什么前 10 条结果中有 8 条来自同一个主机?”或“为什么排序偏向热门的现有商品?”
  • 构建离线评估基础设施——分级标注集、NDCG@k 流水线、消融研究、回归查询集
  • 为排序变更设计 A/B 测试——预先计算 MDE / 功效 / 样本量、使用 CUPED 降低方差、校准线上与线下指标的相关性
  • 将效果提升归因到具体评分组件——“效果提升是来自新的偏差校正、嵌入向量,还是两者兼有?”

这些规则适用于任何由 OpenSearch/Elasticsearch 提供支持的市场搜索,不限于具体领域——住宿、食品配送、餐厅、服务、工作、二手商品、房地产。触发词包括“市场排序”、“搜索相关性”、“function_score”、“rank_feature”、“script_score”、“kNN”、“混合搜索”、“RRF”、“学习排序”、“基于嵌入向量的检索”、“双塔”、“位置偏差”、“MMR”、“供给公平性”、“帕累托多目标”、“NDCG”、“标注集”、“消融研究”、“CUPED”、“A/B 样本量”、“排序评估”以及“为什么我的搜索结果不好”。

搜索排序生命周期

类别依据市场搜索排序流水线划分。较早阶段会产生级联影响——召回阶段(阶段 1)出现的遗漏,无法通过任何下游加权来弥补;而基础相关性有误,则会影响每个功能评分:

Query → [1] Recall → [2] Base Relevance → [3] Quality Signals → [4] Personalization
      → [5] Geo/Time Decay → [6] Marketplace Balance → [7] Diversity Re-rank → Results
                                                            ↑
                                          [8] Bias Correction (applied across all stages
                                                       and into training)
                                                            ↑
                                          [9] Evaluation & Measurement (the meta-layer:
                                                       judgment sets, NDCG, ablation, A/B
                                                       sizing, CUPED — without these you
                                                       can't tell if any rule helped)

按优先级排列的规则类别

优先级类别影响前缀规则数
1候选检索与召回CRITICALrecall-6
2基础相关性与字段评分CRITICALrel-7
3质量信号与置信界限HIGHqual-6
4个性化与嵌入向量HIGHpers-7
5空间与时间衰减HIGHdecay-5
6双边市场平衡HIGHmarket-7
7偏差校正与在线学习HIGHbias-6
8评估与测量HIGHeval-7
9多样性与重排序MEDIUM-HIGHdiv-5

快速参考

1. 候选项检索与召回(关键)
2. 基础相关性与字段评分(关键)
3. 质量信号与置信界限(高)
4. 个性化与嵌入(高)
5. 空间与时间衰减(高)
6. 双边市场平衡(高)
7. 偏差校正与在线学习(高)
8. 评估与测量(高)
9. 多样性与重排序(中高优先级)

使用方法

对于聚焦的问题(“地理距离应该使用哪种衰减函数?”),请直接跳转到相关规则(decay-gauss-geo)——每条规则都自成一体,包含原因说明、OpenSearch 查询/Painless 代码和规范来源引用。

对于全面的排序系统审查,请从上到下依次处理各类别。级联顺序至关重要:首先确保召回正确(任何加权都无法找回遗漏的候选项),然后处理基础相关性(它是每个功能评分的乘数),接着依次处理质量、个性化、衰减、市场平衡和偏差校正。多样性是对排序良好的 Top 窗口执行的最后一步重排序。

要在重新训练前校正偏差,请从 bias-position-ips 和 bias-click-models 开始——对于任何基于记录的点击数据重新训练 LTR 模型的市场,在受到位置混杂影响的点击数据上应用 IPS 是最具杠杆效应的一项改进。

如需同时测试多种算法并进行实证验证,请从 eval-graded-judgment-set(搭建基础)和 eval-ndcg-primary-metric(选择指标)开始,然后使用 eval-ablation-attribution(将提升归因于特定组件)。搭配 eval-online-offline-correlation,验证离线指标能否预测在线行为;使用 eval-ab-sample-size-mde + eval-cuped-variance-reduction,规范地开展 A/B 测试;再用 eval-regression-query-suite 检查指定查询是否出现不易察觉的质量下降。

如需为设计决策引用研究资料,每条规则末尾都提供规范参考来源——KDD/SIGIR/WSDM 论文、相关工程博客(Airbnb、Pinterest、DoorDash、Etsy、Just Eat Takeaway、Thumbtack)或 OpenSearch 文档页面。

阅读章节定义,了解类别排序背后的级联影响依据;添加新规则时,请参阅规则模板。

参考文件

文件说明
references/_sections.md按级联影响排列的类别定义与顺序
AGENTS.md简明目录导航(自动生成;请勿手动编辑)
assets/templates/_template.md编写新规则的模板
metadata.json版本和权威参考 URL

评论

支持 Markdown