ES系列--打分机制

 一、文档打分机制

当你通过关键字搜索相关文档时,可能会出现多个文档,这些文档的顺序是通过一个max_score属性的大小从高到低顺序展现出来的,max_score属性就是我们所说的评分。而这个评分是通过一个文档打分机制计算出来的。

二、打分原理

一、总公式

max_score = boost  *  idf  *  tf

 其中,查询权重可以自己定义。

 二、IDF与TF的计算

可以使用

GET /index/_search?explain=true

{

"query": {

           "match": {

                 "text(这个是查询字段)": "hello"(这个是词条

                         }

                }

}

一、计算TF (词频)

Term Frequency : 搜索文本中的各个词条(term)在查询文本中出现了多少次, 出现次数越多,就越相关,得分会比较高

 TF = freq / ( freq + k1 * ( 1 - b + b * dl / avgdl ))

freq:搜索的关键词在文档中出现的次数。

avgdl = fields / documents:

fields : 查询出来的所有文档的分解字段数量

documents:查询文档数量

dl:搜索的关键词再当前文档中分解的长度

二、 计算IDF(逆文档频率)

Inverse Document Frequency : 搜索文本中的各个词条(term)在整个索引的所有文档中 出现了多少次,出现的次数越多,说明越不重要,也就越不相关,得分就比较低。

 log ( 1 + ( N - n + 0.5) / ( n + 0.5 ))

N:这个只是查询字段

n:文档中词条,也即查询的关键词的数量

注:这里的 log 是底数为 e 的对数 

 三、查询权重

我们可以通过控制查询权重来控制文档结果展现的顺序性。

GET /testscore/_search?explain=true

{
    "query": {
        "bool": {
            "should": [{
                    "match": {
                        "title": {
                            "query": "Hadoop",
                            "boost": 1
                        }
                    }
                },
                {
                    "match": {
                        "title": {
                            "query": "Hive",
                            "boost": 1
                        }
                    }
                },
                {
                    "match": {
                        "title": {
                            "query": "Spark",
                            "boost": 2  // 通过查询权重来控制结果的顺序性
                        }
                    }
                }
            ]
        }
    }
}

结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 开发入门 - wuyujin1997

父目录 Android 开发入门 - wuyujin1997 文章目录 已经是2023的下半年,移动互联网的国内用户日趋见顶,这个时候我才开始接触到 Android 开发,是有些晚了。 不过,暂时我也不打算向 Android 开发这个方向深挖(语言API,UI…

什么是浏览器同源策略?如何处理同源策略带来的跨域问题?

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 什么是浏览器同源策略 浏览器的同源策略(Same-Origin Policy)是一种安全机制,用于限制一个网页文档或脚本如何与来自不同源的资源进行交互。同源是指两个 URL 的协议…

JDK 下载 华为云镜像站 地址

通常去 Oracle 官网下载 JDK,速度很慢而且需要账号登入 Oracle 官网下载地址 https://www.oracle.com/cn/java/technologies/downloads/archive/ JDK 下载 华为云镜像站 地址 https://repo.huaweicloud.com/java/jdk/ 我们下期见,拜拜!

CentOS 8 GLIBC升级失败系统崩溃抢修实战

CentOS 8 GLIBC升级失败系统崩溃抢修实战 1. 恐怖的问题2. 参考解决方案3. 抢修实战3.1 准备工作3.2 抢修流程3.3 解决启动后Permission Denied3.3.1 参考方案3.3.2 解决 4. 总结 服务器为CentOS 8,支持glibc版本为2.28,但编译一个工具的glibc需求版本为…

MySQL-概述-数据模型SQL简介

数据库:DataBase(DB),是存储和管理数据的仓库数据库管理系统:DataBase Management System(DBMS),操作和管理数据库的大型软件。SQL:Structured Query Language&#xff0…

了解 PostgreSQL 体系结构

PostgreSQL 是客户端/服务器关系数据库管理系统 (RDMS)。 PostgreSQL 还支持各种扩展插件,例如 Azure Database for PostgreSQL 超大规模 Citus 选项中的 Citus 扩展插件。 将扩展插件加载到数据库中后,它将像任何内置功能一样正常运行。 PostgreSQL 也…

spring boot 多模块项目非启动模块的bean无法注入(问题记录)

之前有说我搭了一个多模块项目,往微服务升级,注入的依赖在zuodou-bean模块中,入jwt拦截, Knife4j ,分页插件等等,但是启动类在system中,看网上说在启动类上加SpringBootApplication注解默认扫描范围为自己…

树莓派4B安装系统 + 花生壳 + docker + portainer管理工具

1、安装树莓派系统 1、首先下载刷系统软件:下载 2、选择Raspberry Pi OS (64-bit)系统 3、设置配置文件 1、主机名 2、开启ssh服务 3、设置wifi账号密码 4、选择SD卡后开始烧录 2、设置系统时区 1、使用date -R查看当前系统时间 2、安装ntp插件:apt inst…

物联网(IoT):连接未来的万物之网

引言: 物联网(Internet of Things,简称IoT)是指通过各种智能设备和传感器,使物体能够互联互通、收集和共享数据的网络。随着科技的不断进步和智能设备的普及,物联网的应用呈现出爆发式增长,对各…

哇~真的是你呀!今天是LINUX中的RSYNC服务

目录 前言 一、概述 二、特性 三、rsync传输模式 四、rsync应用 五、格式 六、配置文件 七、守护进程传输 八、rsyncinotfy实时同步 一、概述 rsync是linux 下一个远程数据同步工具;他可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync 算法减少数据的…

微信小程序(二)

目录 1、input标签 一、表单绑定 1、数据绑定 2、输入获取 二、网络请求 1、介绍 2、注意 3、使用 4、基于Promise封装 三、自定义组件 1、创建 2、父向子组件通信 3、子向父组件通信 4、生命周期 四、vant weapp组件库 1、配置 2、使用 进入本章前的拓展&#…

代码随想录算法训练营第22天 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树,可以利用它的性质(左子树上所有节点的值都小于根节点的值,右子树上所有节点的值都大于根节点的值)找到两个节点的最近公共祖先。因此,可以进行如下操作:…

Jmeter(119)-函数threadNum妙用

今天的接口场景是:有N个用户需要每隔5秒去查询一次数据,也就是说N个用户会去循环执行同一个接口。一开始的时候将用户参数化时使用了counter, 要执行2个线程3次循环,发现每次循环时,接口中用户参数的数据就会不一样&am…

【AutoGluon_01】自动机器学习框架的安装与示例

文章目录 一、安装二、示例一 AutoGluon预测目标数据1、导入数据2、训练3、预测4、评估5、小结 三、示例二 AutoGluon多模态预测(Multimodal Prediction)1、导入数据2、训练3、预测4、评估 四、示例三 AutoGluon进行时间序列预测1、导入数据2、训练3、预…

漫谈大数据时代的个人信息安全(三)——“点赞之交”

大数据时代的个人信息安全系列三:“点赞之交” 1. 点赞之交2. 点赞诈骗3. 个人信息保护小贴士 互联网就像公路,用户使用它,就会留下脚印。 每个人都在无时不刻的产生数据,在消费数据的同时,也在被数据消费。 近日&am…

AJAX异步请求JSON数据格式

目录 前言 1.AJAX的实现方式 1.1原生的js实现方式 1.2JQuery实现方式 2.1语法 3.JSON数据和Java对象的相互转换 3.1将JSON转换为Java对象 3.2将Java对象转换为JSON 前言 AJAX:ASynchronous JavaScript And XML 异步的JavaScript 和 XML。 Ajax 是一种在…

git导出提交日志

%ai是2023-06-16 14:49:10 0800时间格式 Git - 查看提交历史Git 官方中文操作文档 Git - 查看提交历史 导出excel,csv格式 筛选作者的提交--author"ayuyuer" git log --prettyformat:"%h","%an","%ae","%ai","%s&qu…

微信小程序

页面跳转&#xff1a; navigator 显示跳转 跳转普通页面跳转 tab栏页面 open-type"switchTab"回退上一个 open-type"navigateBack" <navigator url"/pages/detail/detail?usernamecc&addresschengdu">detail</navigator>js跳…

Spring Boot 各种回滚骚操作实战(自动回滚、手动回滚、部分回滚)

概念 事务定义 事务&#xff0c;就是一组操作数据库的动作集合。事务是现代数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行&#xff0c;我们称该组处理步骤为一个事务。当所有的步骤像一个操作一样被完整地执行&#xff0c;我们称该事务被提交。…

springboot sentinel 整合 规则详情和代码实现-分布式/微服务流量控制

文章目录 sentinel控制台安装目标版本说明sentinel 规则整合验证pom.xml配置注解拦截资源控制规则---内存模式测试controller客户端接入控制台 测试sentinel控制台接口调用 下一篇&#xff1a;配置持久化策略规则外传 sentinel控制台安装 下载地址&#xff1a;https://github.…