【HBZ分享】ES的评分score机制的原理

score类型

  1. 基础评分boost,默认2.2,
  2. 逆向文档频率值(IDF):表示该词再文档中(ES中)出现的次数越多,表示越不重要,评分越低
  3. 关键词在文档中出现的频率(TF):表示该词在文档中出现的频率,频率越高表示越重要,评分越高
    注意: IDF是出现次数越多,则评分越低, 而TF是出现次数越高,则评分越高,一正一反

score评分机制的计算

  1. boost × idf × tf
  2. 字段的权重 × 逆向文档频率的值 × 关键词在文档中出现的频率值

ES查询时带上评分计算

复制代码
加上explain 和mysql查看索引使用情况是同一个词
GET /test_index/_search?explain=true

如何自定义评分机制

  1. 权重配置: 通过指定boost基础评分,来定制总评分, 查询请求如下,需要指定boost,来定制哪个词查询基础分更大,即相同频率下该次就会评分更高,会放在前面

    GET /test_index/_search
    {
    "query": {
    "bool": {
    "should": [
    {
    "match": {
    "summary": {"query": "boot", "boost": 1} // 指定查boot的基础评分boost = 1, 不指定boost则默认2.2
    }
    },
    {
    "match": {
    "summary": {"query": "java", "boost": 3} // 指定查boot的基础评分boost = 3, 不指定boost则默认2.2
    }
    },
    {
    "match": {
    "summary": {"query": "cloud", "boost": 1} // 指定查boot的基础评分boost = 1, 不指定boost则默认2.2
    }
    },
    {
    "match": {
    "summary": {"query": "spring", "boost": 1} // 指定查boot的基础评分boost = 1, 不指定boost则默认2.2
    }
    },
    ]
    }
    }
    }

  2. 公式定制化: ES提供了一些内置评分函数(BM25), 根据需要进行参数调整,或者使用自定义评分函数来实现

  3. 自定义评分插件

相关推荐
翰林小院21 分钟前
【大数据专栏】流式处理框架-Apache Fink
大数据·flink
孟意昶1 小时前
Spark专题-第一部分:Spark 核心概述(2)-Spark 应用核心组件剖析
大数据·spark·big data
IT学长编程2 小时前
计算机毕业设计 基于Hadoop的健康饮食推荐系统的设计与实现 Java 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
java·大数据·hadoop·毕业设计·课程设计·推荐算法·毕业论文
AAA修煤气灶刘哥2 小时前
Kafka 入门不踩坑!从概念到搭环境,后端 er 看完就能用
大数据·后端·kafka
在未来等你5 小时前
Elasticsearch面试精讲 Day 18:内存管理与JVM调优
大数据·分布式·elasticsearch·搜索引擎·面试
智海观潮5 小时前
Spark SQL | 目前Spark社区最活跃的组件之一
大数据·spark
Lx3525 小时前
Hadoop数据一致性保障:处理分布式系统常见问题
大数据·hadoop
Elasticsearch5 小时前
在 Elastic Observability 中使用 Discover 的追踪获取更深入的应用洞察
elasticsearch
婲落ヽ紅顏誶6 小时前
测试es向量检索
大数据·elasticsearch·搜索引擎
IT学长编程6 小时前
计算机毕业设计 基于Hadoop豆瓣电影数据可视化分析设计与实现 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试
大数据·hadoop·python·django·毕业设计·毕业论文·豆瓣电影数据可视化分析