当前位置: 首页 > news >正文

13-综合排序:Function Score Query 优化算分

使用了 function_score 查询来根据某个字段的值对查询结果进行打分。以下是该查询的主要部分:

query: 包含了实际执行搜索的部分,在这里包括一个 multi_match 查询。

multi_match:用于在多个字段上执行相同的查询。

query:设置为 "popularity",表示要搜索包含这个短语的文档。

fields:指定了要在其中执行查询的字段列表,这里是 "title" 和 "content" 字段。

function_score:允许您通过将查询结果重新评分来自定义和影响每个文档的得分。

field_value_factor:基于字段的具体值来影响文档的得分。

field:指定了作为因子的字段,这里是 "votes" 字段。

modifier: 使用 "log1p" 函数,对字段的值应用 log(1 + value) 函数来调整得分。这种调整通常用于处理大量的小值,以平衡分数的影响。

factor: 设置了一个乘法因子为 0.1,用于进一步调整字段值对得分的影响力。

boost_mode: 设置为 "sum",表示将所有子查询的分数相加以计算最终得分。

max_boost: 设置了最大提升值为 3,即最终得分不会超过 3 倍。

换句话说,这个查询的目的是:

在 "title" 和 "content" 字段中搜索包含短语 "popularity" 的文档。

根据文档中 "votes" 字段的值,并对其应用log1p函数,使用乘法因子 0.1 进一步调整每个文档的得分。

最终得分由子查询得分和基于 "votes" 字段的加权因素相加,但不会超过 3。

random_score: 通过指定种子值 XXXX 来生成随机分数,影响每个文档的得分


DELETE blogsPUT /blogs/_doc/1
{"title":   "About popularity","content": "In this post we will talk about...","votes":   0
}PUT /blogs/_doc/2
{"title":   "About popularity","content": "In this post we will talk about...","votes":   100
}PUT /blogs/_doc/3
{"title":   "About popularity","content": "In this post we will talk about...","votes":   1000000
}# 使用了 function_score 查询来根据某个字段的值对查询结果进行打分。以下是该查询的主要部分:
# query: 包含了实际执行搜索的部分,在这里包括一个 multi_match 查询。
# multi_match:用于在多个字段上执行相同的查询。
# query:设置为 "popularity",表示要搜索包含这个短语的文档。
# fields:指定了要在其中执行查询的字段列表,这里是 "title" 和 "content" 字段。
# function_score:允许您通过将查询结果重新评分来自定义和影响每个文档的得分。
# field_value_factor:基于字段的具体值来影响文档的得分。
# field:指定了作为因子的字段,这里是 "votes" 字段。
POST /blogs/_search
{"query": {"function_score": {"query": {"multi_match": {"query":    "popularity","fields": [ "title", "content" ]}},"field_value_factor": {"field": "votes"}}}
}POST /blogs/_search
{"query": {"function_score": {"query": {"multi_match": {"query":    "popularity","fields": [ "title", "content" ]}},"field_value_factor": {"field": "votes","modifier": "log1p"}}}
}# function_score: 允许您根据不同的因素自定义和调整文档的得分。
# field_value_factor: 基于字段的值来影响文档的得分。
# field: 指定了作为权重因子的字段,这里是 "votes" 字段。
# modifier: 使用 "log1p" 函数,对字段的值应用 log(1 + value) 函数来调整得分。这种调整通常用于处理大量的小值,以平衡分数的影响。
POST /blogs/_search
{"query": {"function_score": {"query": {"multi_match": {"query":    "popularity","fields": [ "title", "content" ]}},"field_value_factor": {"field": "votes","modifier": "log1p" ,"factor": 0.1}}}
}# function_score: 允许您根据不同的因素自定义和调整文档的得分。
# field_value_factor: 基于字段的值来影响文档的得分。
# field: 指定了作为权重因子的字段,这里是 "votes" 字段。
# modifier: 使用 "log1p" 函数,对字段的值应用 log(1 + value) 函数来调整得分。这种调整通常用于处理大量的小值,以平衡分数的影响。
# factor: 设置了一个乘法因子为 0.1,用于进一步调整字段值对得分的影响力。
# boost_mode: 设置为 "sum",表示将所有子查询的分数相加以计算最终得分。
# max_boost: 设置了最大提升值为 3,即最终得分不会超过 3 倍。
# 换句话说,这个查询的目的是:
# 在 "title" 和 "content" 字段中搜索包含短语 "popularity" 的文档。
# 根据文档中 "votes" 字段的值,并对其应用log1p函数,使用乘法因子 0.1 进一步调整每个文档的得分。
# 最终得分由子查询得分和基于 "votes" 字段的加权因素相加,但不会超过 3。
POST /blogs/_search
{"query": {"function_score": {"query": {"multi_match": {"query":    "popularity","fields": [ "title", "content" ]}},"field_value_factor": {"field": "votes","modifier": "log1p" ,"factor": 0.1},"boost_mode": "sum","max_boost": 3}}
}# random_score: 通过指定种子值 911119 来生成随机分数,影响每个文档的得分
# 使⽤场景:⽹站的⼴告需要提⾼展现率
# 具体需求:让每个⽤户能看到不同的随机排名,但是也希望同⼀个⽤户访问时,结果的相对顺序,保持⼀致(Consistently Random)
POST /blogs/_search
{"query": {"function_score": {"random_score": {"seed": 911119}}}
}

相关文章:

13-综合排序:Function Score Query 优化算分

使用了 function_score 查询来根据某个字段的值对查询结果进行打分。以下是该查询的主要部分: query: 包含了实际执行搜索的部分,在这里包括一个 multi_match 查询。 multi_match:用于在多个字段上执行相同的查询。 query:设置…...

鸿蒙应用App测试-专项测试(DevEco Testing)

注意:大家记得先学通用测试在学专项测试 鸿蒙应用App测试-通用测试-CSDN博客 注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注&am…...

RabbitMQ设置消息过期时间

RabbitMQ设置消息过期时间 1、过期消息(死信)2、设置消息过期的两种方式2.1、设置单条消息的过期时间2.1.1、配置文件application.yml2.1.2、配置类RabbitConfig2.1.3、发送消息业务类service(核心代码)2.1.4、启动类2.1.5、依赖文…...

大数据-209 数据挖掘 机器学习理论 - 梯度下降 梯度下降算法调优

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...

粒子群优化双向深度学习!PSO-BiTCN-BiGRU-Attention多输入单输出回归预测

粒子群优化双向深度学习!PSO-BiTCN-BiGRU-Attention多输入单输出回归预测 目录 粒子群优化双向深度学习!PSO-BiTCN-BiGRU-Attention多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现PSO-BiTCN-BiGRU-Attention粒子…...

排序算法简介

直接插入排序: 将第一个元素视为已排序的序列,其余元素视为未排序序列。 ‌ 逐个处理‌:从第二个元素开始,逐个将当前元素插入到已排序序列的适当位置,直到所有元素都被插入。 ‌ 插入过程‌:对于每个待…...

(没有跳过联网激活)导致使用微软账号激活电脑---修改为本地账户和英文名字

修改为本地账户和英文名字 前言微软账号,本地账号与用户名基本知识账户管理方式一方式2 查看账户的sid并且修改文件夹名字和系统变量修改注册表和建立软件路径超链接注意事项总结 前言 当没有联网激活新买的电脑时候,这个就不用看了 当你是联网激活的时…...

[论文粗读][REALM: Retrieval-Augmented Language Model Pre-Training

引言 今天带来一篇检索增强语言模型预训练论文笔记——REALM: Retrieval-Augmented Language Model Pre-Training。这篇论文是在RAG论文出现之前发表的。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 语言模型预训练…...

flink 内存配置(五):网络缓存调优

flink 内存配置(一):设置Flink进程内存 flink 内存配置(二):设置TaskManager内存 flink 内存配置(三):设置JobManager内存 flink 内存配置(四)…...

set和map的使用

目录 1.关联式容器 2.键值对 3.set 3.1set的模版参数列表 3.2对set的修改 3.2.1insert 3.2.2 erase 3.2.3clear 3.2.4swap 3.2.5 find 3.3set的迭代器 3.4set的容量 4.map 4.1对map的修改 4.1.1insert 4.1.2erase 4.1.3swap 4.1.4clear 4.2map的迭代器 4.3opera…...

LCL三相并网逆变器simulink仿真+说明文档

背景描述: 详细解析了LCL三相并网逆变器的工作原理,强调了准PR比例谐振控制的重要性,讨论了电感、电容参数选择及保护电路设计。通过仿真结果展示了逆变器性能优化的方法,以提升系统效率和稳定性。 模型介绍: 整体模…...

从0开始深度学习(24)——填充和步幅

1 填充 在上一节中,我们的卷积步骤如下: 可以发现输入是 3 3 3\times3 33,输出是 2 2 2\times2 22,这样可能会导致原始图像的边界丢失了许多有用信息,如果应用多层卷积核,累积丢失的像素就更多了&#…...

CPU Study - Instructions Fetch

参考来源:《超标量处理器设计》—— 姚永斌 N-Way CPU 取指问题 如果CPU可以在每个周期内同时解码N条指令,则此类CPU为N-Way超标量处理器。 N-Way超标量处理器需要每个周期从I-Cache中至少取得N条指令,这N条指令成为一组Fetch Group。 为了…...

GJ Round (2024.9) Round 1~7

前言: 点此返回 GJ Round 目录 博客园可能食用更佳 Round 1 (9.10) A 洛谷 P10059 Choose 不难发现结论:记长度为 L L L 时对应的 X X X 最大值为 f ( L ) f(L) f(L),则 f ( L ) f(L) f(L) 单调不降 那么就可以考虑使用二分求出最小的…...

【CMCL】多模态情感识别的跨模态对比学习

abstract 近年来,多模态情感识别因其能够通过整合多模态信息来提高情感识别的准确性而受到越来越多的关注。然而,模态差异导致的异质性问题对多模态情感识别提出了重大挑战。在本文中,我们提出了一个新的框架——跨模态对比学习(…...

输入/输出系统

一、I/O 系统基本概念(了解即可) 1. 输入/输出系统 【总结】: “I/O” 就是 “输入 / 输出”(Input/Output),I/O 设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备。 输…...

asp.net+uniapp养老助餐管理系统 微信小程序

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 以往流浪猫狗的救助网站相关信息的管理,都是工作人员手工统计。这种方式不但时效性低,而且需要查…...

部署istio应用未能产生Envoy sidecar代理

1. 问题描述及原因分析 在部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio的第2.2章节,部署nginx应用,创建的pod并没有产生Envoy sidecar代理,仅有一个应用容器运行中 故在随后的prometheus中也没有产生指标istio_requests_total。通…...

使用YOLO 模型进行线程安全推理

使用YOLO 模型进行线程安全推理 一、了解Python 线程二、共享模型实例的危险2.1 非线程安全示例:单个模型实例2.2 非线程安全示例:多个模型实例 三、线程安全推理3.1 线程安全示例 四、总结4.1 在Python 中运行多线程YOLO 模型推理的最佳实践是什么&…...

ABAP 增强

一、增强 基于SAP源代码的增强:对SAP所预留的空的子过程进行编码,用户可以编辑此子过程,并在这个子过程中添加自定义的代码,以增加SAP标准程序的控制功能 PERFORM 基于函数的增强:SAP为此类出口提供了相应的函数&am…...

vue使用方法创建组件

vue 中 创建 组件 使用 方法创建组件 vue2 中 import vueComponent from xxxx function createFn(){const creator Vue.extend(vueComponent);const instance new creator();document.appendChild(instance.$el); }vue3 中 import { createApp } from "vue"; im…...

HTML 基础标签——链接标签 <a> 和 <iframe>

文章目录 1. `<a>` 标签属性详细说明示例2. `<iframe>` 标签属性详细说明示例注意事项总结链接标签在HTML中是实现网页导航的重要工具,允许用户从一个页面跳转到另一个页面或嵌入外部内容。主要的链接标签包括 <a> 标签和<iframe> 标签。本文将深入探…...

@SpringBootApplication源码解析

1 简介 1.1 什么是自动装配&#xff1f; 自动装配是指 Spring Boot 在启动时&#xff0c;根据类路径上的依赖项自动配置应用程序。例如&#xff0c;如果你的应用程序依赖于 Spring Data JPA&#xff0c;Spring Boot 会自动配置一个 DataSource、EntityManagerFactory 和其他必…...

【实战篇】requests库 - 有道云翻译爬虫 【附:代理IP的使用】

目录 〇、引言一、目标二、请求参数分析三、响应分析四、编写爬虫脚本【隧道代理的使用】 〇、引言 无论是学习工作、旅游出行、跨境电商、日常交流以及一些专业领域都离不开翻译工具的支持。本文就带大家通过爬虫的方式开发一款属于自己的翻译工具~ 一、目标 如下的翻译接口…...

法语动词变位

法语动词变位是法语语法的核心内容之一&#xff0c;因为法语动词的形式会根据人称&#xff08;谁做某事&#xff09;、时态&#xff08;动作发生的时间&#xff09;、语气&#xff08;说话人的态度&#xff09;和语态&#xff08;动作的执行者和接受者&#xff09;发生变化。接…...

Excel:vba实现批量插入图片

实现的效果&#xff1a; 实现的代码&#xff1a; Sub InsertImageNamesAndPictures()Dim PicPath As StringDim PicName As StringDim PicFullPath As StringDim RowNum As IntegerDim Pic As ObjectDim Name As String 防止表格里面有脏数据Cells.Clear 遍历工作表中的每个图…...

Vue3的router和Vuex的学习笔记整理

一、路由的基本搭建 1、安装 npm install vue-router --registryhttps://registry.npmmirror.com 2、配置路由模块 第一步&#xff1a;src/router/index.js创建文件 第二步&#xff1a;在src/view下面创建两个vue文件&#xff0c;一个叫Home.vue和About.vue 第三步&#x…...

设置JAVA以适配华为2288HV2服务器的KVM控制台

华为2288HV2服务器比较老旧了&#xff0c;其管理控制台登录java配置比较麻烦&#xff0c;华为的ibmc_kvm_client_windows客户端测试了几个版本&#xff0c;连接控制台也有问题&#xff0c;最终安装JDK解决。 一、测试环境 主机为WindowsServer2012R2,64位系统 二、Java软件包…...

掌握Qt调试技术

文章目录 前言一、Qt调试的基本概念二、Qt调试工具三、Qt调试实践四、Q调试技巧五、总结前言 在软件开发中,调试是一个至关重要的环节。Qt作为一个广泛使用的跨平台C++图形用户界面应用程序开发框架,其调试技术也显得尤为重要。本文将深入探讨Qt调试技术,帮助读者更好地掌握…...

使用NVM自由切换nodejs版本

一、NVM介绍 在日常开发中&#xff0c;我们可能需要同时进行多个不同NodeJS版本的项目开发&#xff0c;每个项目所依赖的nodejs版本可能不一致&#xff0c;我们如果只安装一个版本的nodejs&#xff0c;就可能出现node版本冲突问题&#xff0c;导致项目无法启动。这种情况下&am…...