Elasticsearch:相关性、路由算法与集群扩展全解析
1. 相关性概述
现代搜索引擎不仅会基于查询条件返回结果,还会对结果进行分析,返回最相关的内容。以 Stack Overflow 为例,它能为用户提供接近需求的搜索结果,且按相关性从高到低排序。同样,Elasticsearch 在全文查询时,通常会根据相关性得分对结果进行排序。相关性得分是一个正的浮点数,用于确定搜索结果的排名。Elasticsearch 默认使用 BM25(Best Match)相关性算法来为返回结果打分,以确保客户端能得到相关的结果。
例如,当在书籍标题中搜索 “Java” 时,标题中多次出现 “Java” 的文档比只出现一次或未出现的文档更具相关性。
2. 相关性算法
2.1 相关性算法类型
Elasticsearch 提供了多种相关性算法,默认使用 Okapi Best Matching 25(BM25)算法。它还提供了一个名为 “similarity” 的模块,允许用户根据需求应用最合适的算法。以下是 Elasticsearch 开箱即用的相关性算法列表:
| 相似度算法 | 类型 | 描述 |
| — | — | — |
| Okapi BM25(默认) | BM25 | 一种增强的 TF/IDF 算法,除了考虑词频和文档频率外,还考虑了字段长度 |
| Divergence from Randomness (DFR) | DFR | 使用由其作者 Amati 和 Rijsbergen 开发的 DFR 框架 |
| Divergence from Independence (DFI) | DFI
超级会员免费看
订阅专栏 解锁全文
81

被折叠的 条评论
为什么被折叠?



