Elasticsearch如何评分?-Apache Lucene默认评分公式解释

es.png

elasticsearch使用了lucene的评分功能,lucene默认评分机制:TF/IDF(词频/逆文档频率)算法

欢迎访问本人博客:http://wangnan.tech

lucene默认评分机制:TF/IDF(词频/逆文档频率)算法默认评分公式解释

何时文档被匹配上

当一个文档经过lucene返回,则意味着该文档与用户提交的查询时匹配的,在这种情况下,每个返回的文档都会有一个得分,得分越高,文档相关度更高,但是,同一个文档针对不同查询的得分是不同的,比较某个文档在不同查询中的分数是没有意义的,这是因为文档得分依赖多个因子,除了权重和查询本身的结构,还包括匹配的词项的数目,词项所在字段,以及用于查询规范化的匹配类型等。

计算文档得分需要考虑以下因子

  • 文档权重(document boost):索引期赋予某个文档的权重值

  • 字段权重(field boost):查询期赋予某个字段的权重值

  • 协调因子(coord):基于文档中词项命中个数的协调因子,一个文档中命中了查询中的词项越多,得分越高
    (比如:查询关键词被分词为A和B,如果文档1命中了A和B,文档2命中了A,那么在这个项目上,文档1的分数更高)

  • 逆文档频率(inverse document frequency):一个基于词项的因子,用来告诉评分公式该词项有多么罕见,逆文档频率越低,词项越罕见,评分公式利用该因子为包含罕见词项的文档加权
    (比如:查询关键词是A和B,如果文档1命中了A,文档2命中了B,但是在整个文档范围内,A出现的次数比B少,那么在这个项目中,文档1分数更高)

  • 长度范数(length norm):每个字段的基于词项个数的归一化因子,一个字段包含的词项越多,改因子的权重越低,这意味着lucene评分公式更"喜欢"包含更少词项的字段
    (
    比如:查询关键词是A,文档1和2都匹配上了A,但是文档1内容长度比文档1短,那么在这个项目中,文档1分数更高*)

  • 词频:一个基于词项的因子,用来表示一个词项在某个文档中出现多少次,词频越高,文档得分越高
    (比如:查询关键词是A,文档1和文档1都匹配上了,但是文档1中出现了2次A,文档2中出现了1次A,那么在这个项目中,文档1分数更高)

  • 查询范数(query norm):一个基于查询的归一化因子,它等于查询中词项的权重平方和查询范数使得不同查询的得分能相互比较,尽管这种比较通常是困难且不可行的

TF/IDF评分公式

Lucene理论评分公式

注意,你并不需要深入理解这个公式的来龙去脉,了解它的工作原理非常重要

01.png

上面的公式理论形式糅合了布尔检索模型和向量空间检索模型,我们可以不讨论这个理论评分公式,直接跳到lucene实际评分公式

Lucene实际评分公式

现在让我来看看Lucene实际评分公式:

02.png

解释:这是一个关于查询q文档d的函数,有两个因子coord和queryNorm并不直接依赖查询词项,而是与查询词项的一个求和公式相乘,求和公式中的每个加数由以下因子连乘所得:词频 逆文档频率 词项权重 长度范数

由这个公式我们可以导出一些规则:

  • 越多罕见的词项被匹配上,文档分数越高
  • 文档字段越短,文档分数越高
  • 权重越高(无论是索引期还查询期赋予的权重值),文档得分越高

elasticsearch如何看评分

elasticsearch使用了lucene的评分功能,但是好在我们可以替换默认的评分算法elasticsearch使用了Lucene的评分功能但是不仅限于lucene的评分功能,用户可以使用各种不同的查询类型以精确控制文档的评分计算,如custom_boost_factor查询、constant_score查询,custom_score查询)还可以通过使用脚本(scrpting)来改变文档得分,还可以使用二次评分功能,通过在返回文档集合之上执行另外一个查询,重新计算前N个文档得分

(注:内容整理自《深入理解elasticsearch》,斜体为本人添加的理解)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容