Elasticsearch二次评分

2023-10-27

欢迎访问本人博客查看原文:http://wangnan.tech


二次评分给了用户很多机会来定制业务逻辑

理解二次评分

二次评分是指重新计算查询返回文档中指定个数文档的得分,es会截取查询返回的前N个,并使用预定义的二次评分方法来重新计算他们的得分

二次评分查询结构

从最简单的查询入手:match_all查询类型,返回索引中所有文档,每个返回的文档的得分都是1.0,这样可以充分体现二次评分对查询返回文档集的影响

查询范例如下:
01

改查询将每一个文档的得分改写为该文档的year字段中的值

返回结果:
02

二次评分参数配置

在resource对象中,必须配置下面的参数:

  • window_size 窗口大小,默认值是from和size参数值之和,它指定了每个分片上参与二次评分的文档个数
  • query_weight 查询权重,默认值是1,原始查询得分与二次评分的得分相加之前将乘以改值
  • rescore_query_weight 二次评分查询的权重值,默认值是1,二次评分查询得分在与原始查询得分相加之前,乘以该值
  • rescore_mode 二次评分模式,默认为total,可用的选项有total、max、min、avg和mutiply
    • total 得分是两种查询之he
    • max 两种查询中的最大值
    • min 两种查询中的最小值
    • avg 两种查询的平均值
    • multiply 两种查询的乘积

小结

  1. 有时候,我们需要显示查询结果,并且使得页面上靠前文档的顺序能受到一些额外的规则控制,但遗憾的是,我们并不能通过二次评分来实现,也许有些读者会想到window-size参数,然而实际上这个参数与返回列表中靠前文档并无关系,他只是制定了每个分片应该返回的文档数,而且window_size不能小于页面大小
  2. 二次评分功能并不能与排序一起使用,这是因为排序发生在二次评分之前,所以排序没有考虑后续新计算出来的文档得分

(注:内容整理自《深入理解Elasticsearch》)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch二次评分 的相关文章

随机推荐

  • 安装docker后启动报错Failed to set version to docker-desktop: exit code: -1

    背景 我想用PC Windows 上的VS code连接远程服务器 Linux 内的docker容器 这样能用编辑器editor修改文件 更加方便 VS code的插件remote container能达到这一目的 按照它的指示guide
  • 性能自动化测试

    性能自动化测试 1 为什么要做性能测试 2 什么是性能测试 3 性能测试分类 1 压力测试 2 负载测试 3 配置测试 4 基准测试 5 并发测试 6 容量测试 7 稳定性测试 4 什么时候需要进行何种性能测试 5 性能测试常见指标 1 响
  • Iterable的常见方法以及含义

    1 Iterable Iterable是java集合接口的顶级接口之一 这是这个接口中的iterator方法 用来返回一个实现了Iterator接口的对象 1 1Iterator接口中的方法 1 1 1forEachRemaining方法
  • MultipartFile.transferTo(dest) 报找不到文件

    MultipartFile transferTo dest 报找不到文件 今天使用transferTo这个方法进行上传文件的使用发现了一些路径的一些问题 查找了一下记录问题所在 前端上传网页 使用的是单文件上传的方式
  • C++调用C函数

    前言 以前见到extern C 这样的语句 只是简单地知道跟外部链接有关 但是没有深刻理解它的意思 首先 为什么要使用extern C 修饰符 C 调用其它语言的函数 由于编译器生成函数的机制不一样 所以需要经过特殊处理 才可以调用 调用C
  • SQL 四种语言基本操作

    SQL Structured Query Language 结构化查询语言 SQL主要4个部分 数据定义类SQL DDL DATE DEFINITION LANGUAGE CREATE 创建数据库及其对象 表 索引 视图 存储过程 函数和触
  • 线索二叉树的先序、中序、后序

    线索二叉树的先序 中序 后序 Name 线索二叉树 Copyright Author lkm Date 30 09 21 14 50 Description include
  • 几种优化算法的比较(BGD、SGD、Adam、RMSPROP)

    前言 这里讨论的优化问题指的是 给定目标函数f x 我们需要找到一组参数x 使得f x 的值最小 本文以下内容假设读者已经了解机器学习基本知识 和梯度下降的原理 Batch gradient descent 梯度更新规则 BGD 采用整个训
  • 目标检测中的MAP的计算(逐步推导)

    目标检测中的MAP的计算 逐步推导 概念介绍 首先放一下前面一篇博文中提到的precision和recall的计算公式和概念 P precision TP TP FP 在目标检测中就是检测出的所有框中预测正确的比例 R recall TP
  • 并发编程的挑战

    文章目录 上下文切换 概念 种类 减少上下文切换 死锁 死锁案例 避免死锁 上下文切换 概念 CPU通过时间片分配算法来循环执行任务 当前任务执行一个时间片后会切换到下一个任务 在切换前会保存上一个任务的状态 以便下次切换回这个任务时可以再
  • SSH 服务

    SSH 服务的关闭与开启 1 检测是否安装了SSH rpm qa grep sshd 2 没有的话yum install openssh server ps ef grep sshd 查看sshd的进程是否存在 chkconfig list
  • kubernetes 的CoreDNS组件高级用法自定义内网DNS服务器

    在kubernetes集群中 调用内网DNS服务器解析域名 CoreDNS有许多高级用法 设定内网DNS服务器通过添加几行配置即可实现 CoreDNS自定义内网DNS服务器实现方案 实现方案 修改coredns的comfigmap 查看co
  • 跟我一起学Multiple View Geometry多视图几何(1)

    本系列博客持续更新 与大家交流学习用 若读者发现有错误或者疑问请留言 前言 前几天博主买了本Multiple View Geometry第二版 一直在看这本书 不得不说之前网上查到的好多理论都是出自这本书 所以为了方便自己学习的更加深刻和与
  • delphi中关于资源释放Free_release_freeAndNil

    delphi中关于资源释放 Free release freeAndNil 的一点体会 经过这段时间对delphi中free 和 release 的仔细学习 先总结如下 1 form free直接释放资源后 调用OnDestroy事件 但是
  • Hibernate学习收获

    使用hibernate开发步骤 配饰hibernate文件 配置的标签为
  • python 写函数在一定条件下需要调用自身时的写法

    例如以下这个函数 state 1 def set state state while state set int input 请输入9或5 显示 hello world n if set 9 or set 5 print hello wor
  • 如何理解KMP算法

    KMP算法是对字符串暴力匹配算法的改进 要理解KMP算法 首先需要了解字符串的暴力匹配算法 暴力匹配算法 假设有主串 abcabcabcabf 和模式串 abcabf 我们需要逐个比较主串s和模式串p的字符 如果模式串的每个字符都能和主串的
  • sqlserver常用操作总结

    sqlserver设置主键自增 ALTER TABLE dbo TestTable DROP COLUMN Id ALTER TABLE dbo TestTable ADD Id BIGINT IDENTITY 1 1 NOT NULL A
  • 抖音取图小程序,同款抖音壁纸,表情包小程序搭建

    演示抖音搜 星光壁纸 同款搭建 演示抖音搜 星光壁纸 同款搭建 演示抖音搜 星光壁纸 同款搭建 java开发 独立部署 腾讯云 阿里云服务器 备案域名 阿里云oss存储 反应效率高 不卡顿 达人入住 达人审核 收益管理 下载壁纸页面UI优化
  • Elasticsearch二次评分

    欢迎访问本人博客查看原文 http wangnan tech 二次评分给了用户很多机会来定制业务逻辑 理解二次评分 二次评分是指重新计算查询返回文档中指定个数文档的得分 es会截取查询返回的前N个 并使用预定义的二次评分方法来重新计算他们的