本章节介绍如何理解和调优 Easysearch 的相关性评分,让搜索结果更符合业务预期。
什么是相关性 #
在全文搜索的语境中,相关性(Relevance)是指搜索结果与用户查询意图的匹配程度。Easysearch 为每个命中的文档计算一个 _score(相关性得分),并默认按得分从高到低排列结果。
相关性不是一个绝对值——它高度依赖业务场景。对于电商搜索,“相关"可能意味着标题和类目精确匹配;对于日志分析,“相关"可能只是时间范围内包含关键词。
核心影响因素 #
Easysearch 默认使用 BM25 相似度算法,以下因素直接影响文档得分:
| 因素 | 说明 |
|---|---|
| 词频(TF) | 查询词在文档字段中出现的次数越多,得分越高(BM25 有饱和机制,避免高频词主导) |
| 逆文档频率(IDF) | 在索引中出现越少的词,区分度越高,贡献的得分越多 |
| 字段长度 | 短字段中的匹配比长字段中的匹配权重更高(如:标题匹配优于正文匹配) |
| 查询结构 | must vs should、嵌套层级、boost 权重都会影响最终得分 |
| 协调性 | 多个查询子句命中的文档通常得分更高 |
本章内容 #
| 主题 | 说明 |
|---|---|
| 评分基础 | BM25 算法原理、TF/IDF/字段长度如何影响得分、支持的相似度算法一览 |
| 加权与调参 | Boost 权重、function_score 查询、decay 函数、脚本评分等实战技术 |
| 调试与 Explain | explain API 查看得分构成、Profile 分析执行耗时、慢查询日志配置 |
| 相关性常用策略 | 电商搜索、日志搜索、站内搜索等场景的相关性调优方案 |
推荐阅读顺序 #
- 评分基础:理解 BM25 默认评分机制和各影响因素
- 加权与调参:掌握
boost、function_score等调优手段 - 调试与 Explain:学会用 Explain/Profile/Slowlog 定位问题
- 相关性常用策略:按业务场景选择合适的调优方案