Elasticsearch:结合 ELSER 和 BM25 文本查询的相关搜索

Elastic Learned Spare EncodeR (ELSER) 允许你执行语义搜索以获得更相关的搜索结果。 然而,有时,将语义搜索结果与常规关键字搜索结果相结合以获得最佳结果会更有用。 问题是,如何结合文本和语义搜索结果?
首先,让我们看一下对某些字段使用 multi_match 的花园品种文本查询。 这种搜索具有关键字搜索的典型陷阱,即关键字必须以某种形式存在于要返回的文档中,并且我们没有考虑用户搜索内容的上下文。
POST search-national-parks/_search
{"query": {"multi_match": {"query": "Where can I see the Northern Lights?","fields": ["title", "description"]}},"_source": ["title"]
}
现在,让我们看看 ELSER 查询本身:
POST search-national-parks/_search
{"query": {"bool": {"should": [{"text_expansion": {"ml.inference.title_expanded.predicted_value": {"model_id": ".elser_model_2","model_text": "Where can I see the Northern Lights?"}}},{"text_expansion": {"ml.inference.description_expanded.predicted_value": {"model_id": ".elser_model_2","model_text": "Where can I see the Northern Lights?"}}}]}},"_source": ["title"]
}
在上面,我们使用 ELSER 来对文章进行语义搜索。如果你对 ELSER 还不是很熟的话,请参阅如下的文章:
-
Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR
-
Elasticsearch:使用 ELSER v2 文本扩展进行语义搜索
组合这两个查询的第一种方法是使用称为线性提升的策略。 在此示例中,我们正在提升文本搜索结果,以便它们具有优先级。 根据你正在运行的查询,这可能是理想的,也可能不是理想的。
POST search-national-parks/_search
{"query": {"bool": {"should": [{"text_expansion": {"ml.inference.title_expanded.predicted_value": {"model_id": ".elser_model_2","model_text": "Where can I see the Northern Lights?","boost": 1}}},{"text_expansion": {"ml.inference.description_expanded.predicted_value": {"model_id": ".elser_model_2","model_text": "Where can I see the Northern Lights?","boost": 1}}},{"multi_match": {"query": "Where can I see the Northern Lights?","fields": ["title","description"],"boost": 4}}]}},"_source": ["title"]
}
最后,我们还可以使用倒数排名融合(RRF)将文本搜索结果与语义结果结合起来,并对返回的搜索结果重新评分:
POST search-national-parks/_search
{"sub_searches": [{"query": {"multi_match": {"query": "Where can I see the Northern Lights?","fields": ["title","description"]}}},{"query": {"text_expansion": {"ml.inference.title_expanded.predicted_value": {"model_id": ".elser_model_2","model_text": "Where can I see the Northern Lights?"}}}},{"query": {"text_expansion": {"ml.inference.description_expanded.predicted_value": {"model_id": ".elser_model_2","model_text": "Where can I see the Northern Lights?"}}}}],"rank": {"rrf": {"window_size": 10,"rank_constant": 20}},"_source": ["title", "states"]
}
这些示例应该可以帮助你开始为你的用例创建最相关的搜索结果的旅程!
相关文章:
Elasticsearch:结合 ELSER 和 BM25 文本查询的相关搜索
Elastic Learned Spare EncodeR (ELSER) 允许你执行语义搜索以获得更相关的搜索结果。 然而,有时,将语义搜索结果与常规关键字搜索结果相结合以获得最佳结果会更有用。 问题是,如何结合文本和语义搜索结果? 首先,让我…...
海外社媒运营为什么需要选择优质IP代理?
跨境电商卖家尤其需要关注海外社媒运营,想要更好地运营Instagram、Facebook、TikTok 或 Twitter等,挖掘社媒潜力需要采取战略方法,而社交媒体IP代理在这一活动中发挥着至关重要的作用,下面为你详细介绍。 一、社交媒体代理IP及其运…...
Java中的性能优化:深入剖析常见优化技巧
引言 在现代软件开发中,性能优化是一个至关重要的话题。Java作为一门强大而广泛使用的编程语言,也需要开发者关注和优化性能,以确保应用程序能够在各种场景下高效运行。本文将深入剖析Java中的一些常见性能优化技巧,为开发者提供…...
k8s的yaml文件中的kind类型都有哪些?(详述版Part2/2)
目录 综述 分块详述 13、ConfigMap 14、Secret 15、Ingress 16、StorageClass 17、Namespace 18、ServiceMonitor 19、HorizontalPodAutoscaler 20、NetworkPolicy 21、CustomResourceDefinition 22、Role 23、ClusterRole 24、ClusterRoleBinding 25、RoleBindi…...
什么是API网关代理?
带有API网关的代理服务显着增强了用户体验和性能。特别是对于那些使用需要频繁创建和轮换代理的工具的人来说,使用 API 可以节省大量时间并提高效率。 了解API API(即应用程序编程接口)充当服务提供商和用户之间的连接网关。通过 API 连接&a…...
AWS Simple Email Service (SES) 实战指南
Amazon Simple Email Service (SES) 是一项强大的电子邮件发送服务,适用于数字营销、应用程序通知以及事务性邮件。在这个实战指南中,我们将演示如何设置 AWS SES 并通过几个示例展示其用法。 设置 AWS SES 1. 创建 AWS 账户 首先,您需要创…...
详解Oracle数据库的启动
Oracle数据库的启动,其概念可参考Overview of Instance and Database Startup。 其过程可参见下图: 当数据库从关闭状态进入打开数据库状态时,它会经历以下阶段。 阶段Mount状态描述1实例在没有挂载数据库的情况下启动实例已启动ÿ…...
2024年跨境电商上半年营销日历,建议收藏
2024年伊始,跨境电商开启新一轮的营销竞技,那么首先需要客户需求,节假日与用户需求息息相关,那么接下来小编为大家整理2024上半年海外都有哪些节日和假期?跨境卖家如何见针对营销日历选品,助力卖家把握2024…...
Go采集1688网站数据对比商品价格
最近看了下多多和1688的一些商品价格,发现好多店铺都是无货源拿货一件发货,这就导致层层叠加价格翻了不知道几倍,真所谓多花钱办的事还是一样,因此,今天我就通过一个爬虫程序监控对应商品价格,了解行业龙头…...
Java泛型:灵活多变的类型参数化工具
👑专栏内容:Java⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、泛型1、什么是泛型2、泛型的语法 二、泛型类的使用1、泛型类的语法2、泛型如何编译的2.1、擦除机制2.2、为什么不能实例化泛…...
java 体育明星管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 java Web 体育明星管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysq…...
蓝凌EIS智慧协同平台 ShowUserInfo.aspx sql注入漏洞
漏洞描述: 蓝凌EIS智慧协同平台是一个简单、高效的工作方式专为成长型企业打造的沟通、协同、社交的移动办公平台,覆盖OA、沟通、客户、人事、知识等管理需求,集合了非常丰富的模块,满足组织企业在知识、项目管理系统建设等需求的…...
React Hooks的useState、useRef使用
React Hooks 是 React 16.8 版本引入的新特性,它允许你在不编写 class 的情况下使用 state 和其他 React 特性。其中,useState 和 useRef 是两个常用的 Hooks。 1. useState useState 是一个允许你在函数组件中添加 state 的 Hook。 使用说明…...
Linux--防火墙,实验案例:基于区域、服务、端口的访问控制
实验环境 某公司的Web服务器,网关服务器均采用Linux CentOS 7.3操作系统,如图2.13所示。为了 加强网络访问的安全性,要求管理员熟悉firewalld防火墙规则的编写,以便制定有效、可行的主机防护策略。 需求描述 > 网关服务器ens3…...
C++学习笔记(二十八):c++ 静态库及动态库的使用
静态库的使用 库的使用会很大程度减少我们的工作,本节对c中静态库和动态库的使用进行简单的介绍。静态链接库意味着这个库会被放到可执行文件中,在生成的exe中。动态链接库是在程序运行时链接的,可以在程序运行时调用加载库函数的方法来实现&…...
uniapp最简单的底部兼容安全区域显示
效果图: 1.html写上动态padding-bottom <view class"button-wrap" :style"padding-bottom:bottomPaddingrpx"><view class"com-btn cencel-btn">取消</view><view class"com-btn confirm-btn " cl…...
图像去噪——CBDNet网络训练自己数据集及推理测试,模型转ONNX模型(详细图文教程)
CBDNet 主要由两个子网络组成:噪声估计子网络和去噪子网络。噪声估计子网络用于估计图像的噪声水平,而去噪子网络用于去除图像中的噪声。 CBDNet 的优势在于: 它采用了更真实的噪声模型,既考虑了泊松-高斯模型,还考虑…...
【Verilog】期末复习——解释下列名词(FPGA、ASIC、IP、RTL、EDA、HDL、FSM)
系列文章 数值(整数,实数,字符串)与数据类型(wire、reg、mem、parameter) 运算符 数据流建模 行为级建模 结构化建模 组合电路的设计和时序电路的设计 有限状态机的定义和分类 期末复习——数字逻辑电路分…...
计算机网络 综合(习题)
【计算机网络习题】系列文章目录 计算机网络 第一章 绪论(习题) 计算机网络 第二章 计算机网络体系结构(习题) 计算机网络 第三章 应用层(习题) 计算机网络 第四章 运输层(习题) 计算机网络 第五章 网络层(习题) 计算机网络 第六章 数据链路层(习题) 计算机网络 第七章 物…...
探索vue2框架的世界:简述常用的vue2选项式API (二)
组件实例 👉 $attrs 用于父组件隔代向孙组件传值 长设置在子组件中 v-bind"$attrs" (Vue2.4) parent.vue (父组件) <template><div class"outer"><h3>父组件</h3>名字:<input v-model"name"…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
2025.6.9总结(利与弊)
凡事都有两面性。在大厂上班也不例外。今天找开发定位问题,从一个接口人不断溯源到另一个 接口人。有时候,不知道是谁的责任填。将工作内容分的很细,每个人负责其中的一小块。我清楚的意识到,自己就是个可以随时替换的螺丝钉&…...
【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...
VSCode 使用CMake 构建 Qt 5 窗口程序
首先,目录结构如下图: 运行效果: cmake -B build cmake --build build 运行: windeployqt.exe F:\testQt5\build\Debug\app.exe main.cpp #include "mainwindow.h"#include <QAppli...
