从上述的过程中可以看出,es相关性得分计算是按照BM25公式计算来的。 参考资料: 干货| 一步步拆解 Elasticsearch BM25 模型评分细节 - 云+社区 - 腾讯云 (tencent.com) similarity | Elasticsearch Guide [6.8] | Elastic-es6.8 中有哪些内置的相似度计算的模块 可插拔的相似度算法 | Elasticsearch: 权威指南 | El...
Elasticsearch 提供了一个最重要的功能就是相关性。它可以帮我们按照我们搜索的条件进行相关性计算。每个文档有一个叫做 _score 的分数。Elasticsearch 使用了一些相关性算法,默认是 Okapi Best Matching 25 (BM25) 算法。在默认没有 sort 的情况下,返回的文档时按照分数的大小从大到小进行排列的。这个分数的计算是按...
在BM25中,文档和查询都是被表示为词项(term)的集合。BM25将每个词项分配一个权重,该权重考虑了词项在文档中出现的频率以及它在整个文集中出现的频率。这些权重被用来计算文档与查询之间的相关性分数。 DFR (适用长文档,考虑的是差异性指标) DFR(Divergence From Randomness)是一种用于信息检索的模型,它基于统计学原理...
BM25(Best Matching 25)是改进版的BM模型,主要用于搜索引擎和信息检索系统。在ES中,你可以使用BM25作为默认的相似性算法,或者你可以在查询时显式地指定使用BM25。 以下是在ES中使用BM25相似性算法的一些示例: 在Mapping中设置BM25作为默认相似性算法: 当你创建索引时,可以在Mapping中将BM25设置为默认的相似性算法。
打分的本质是排序,需要把最符合用户需求的文档排在前面。ES5之前,默认的相关性算分采用TF-IDF,现在采用BM25 词频TF Term Frequency:检索此在一篇文档中出现的频率 检索词出现的次数除以文档的总字数 度量一条查询和结果文档相关性的简单方法:简单将搜索中的每一个词的TF进行想加,例如:查询 区块链的应用 ...
BM25评分的范围通常是从0到正无穷大。 具体来说,当查询词和文档之间没有匹配时,BM25评分为0;当匹配程度增加时,BM25评分也会相应增加,但是评分不会超过正无穷大。这种评分范围的设计使得BM25算法能够有效地对文档进行排序,将与查询词匹配度高的文档排在前面。 需要注意的是,BM25评分的具体计算涉及到一些复杂的数学...
在elasticsearch中,早期使用的打分算法是TF-IDF算法,公式如下: 在后来的5.1版本升级中,elasticsearch将算法改进为BM25算法,公式如下: TF-IDF算法有一各缺陷,就是词条频率越高,文档得分也会越高,单个词条对文档影响较大。而BM25则会让单个词条的算分有一个上限,曲线更加平滑: ...
● 混合搜索:基于向量检索与BM25算法的实时联合检索和多路召回,并对结果进行融合,大幅提升结果的召回率,同时保持了较高的性能。 ● 向量的标量量化:将浮点数 float8 转为 int8 型表示,在保证召回率不受影响的前提下,大幅降低了CPU、堆内存资源消耗,并降低了搜索的延迟。
BM25是ES中常用的评分算法之一,它基于TF-IDF算法的基础上进行了改进,适用于文档长度不一的情况下。BM25算法的基本原理如下: 1.1 TF(词频):TF表示某个词在文档中出现的频率,BM25算法对TF进行了归一化处理,避免了文档长度对评分的影响。 1.2 IDF(逆文档频率):IDF表示某个词在整个文档集合中的稀有程度,BM25算法通过...
BM25 是一种基于概率模型的评分算法,考虑了词频(TF)、逆文档频率(IDF)和文档长度(DL)等因素。 词频(TF):词语在文档中出现的频率。出现频率越高,相关性越高。 逆文档频率(IDF):词语在所有文档中出现的频率。出现频率越低,相关性越高。 文档长度(DL):文档的长度。文档越短,相关性越高。 函数计算公式为: ...