ES|QL,知道吗,专为搜索而生 —— 推出评分和语义搜索

作者:来自 Elastic Ioana Tagirta

在 Elasticsearch 8.18 和 9.0 中,ES|QL 支持评分、语义搜索以及更多的 match 函数配置选项,还有一个新的 KQL 函数。

使用 ES|QL 搜索

在 Elasticsearch 8.18 和 9.0 中,ES|QL 增加了一系列新功能,包括:

  • 支持评分

  • 语义搜索

  • 更多的 match 函数配置选项

  • 一个新的 KQL 函数

在这篇博客中,我们将回顾 8.18 版本的功能以及我们计划添加到 ES|QL 的其他令人兴奋的新功能,进一步加强我们对将 ES|QL 打造成一个现代搜索语言的投资,以满足你的需求,无论你是在构建一个由 ES|QL 提供支持的搜索应用程序,还是在 Kibana Discover 中分析数据。

介绍评分

在 8.17 版本中,我们增加了使用全文文本函数过滤文档的功能。如果你不熟悉 ES|QL 中的全文文本过滤,我们建议阅读我们关于它的原创博客文章。

在 8.18 和 9.0 中,我们引入了对评分的支持,使得能够根据相关性排序返回文档。要访问每个文档的得分,只需在 ES|QL 查询中添加元数据 _score 字段:

FROM books METADATA _score
| WHERE match(title, "Shakespeare") OR match(plot, "Shakespeare")
| SORT _score DESC

我们获取的得分与从等效的 search API 查询中获得的得分相同:

GET books/_search
{"query": {"bool": {"should": [{"match": {"title": "Shakespeare"}},{"match": {"title": "Shakespeare"}}]}}
}

全文本搜索函数,如 match、qstr 和 kql 只能在 WHERE 条件中使用,并且是唯一能影响得分的函数。

_score 列不仅可以用于按相关性排序文档,还可以用于自定义评分公式。在下一个示例中,我们使用得分阈值仅保留最相关的结果,然后根据读者评分添加得分加成:

FROM books METADATA _score
| WHERE match(title, "Shakespeare") OR match(plot, "Shakespeare")
| WHERE _score > 2 // we remove the documents with low scores
| EVAL new_score = _score + rating/5
| SORT new_score DESC

改进 match 函数

在 ES|QL 中,match 函数仅仅是转化为一个Query DSL 的 match 查询。在 8.18 和 9.0 中,我们扩展了 match 函数的功能,包含了当前在 Query DSL 中可用的所有选项。现在,在 ES|QL 中也可以设置常用的 match 选项,如 boost、fuzziness 和 operator:

FROM books METADATA _score
| WHERE match(title, "Dream of the red chamber", { "operator": "AND", "fuzziness": "AUTO", "boost": 0.75 })OR match(plot, "Dream of the read chamber", { "operator": "AND", "boost": 0.25 })
| SORT _score DESC

进入语义搜索

8.18 版本带来了令人兴奋的消息,语义搜索现在正式可用。我们扩展了 match 函数,支持在 semantic_text 字段类型上进行查询。

在 ES|QL 中,执行语义查询(semantic query)现在和执行全文查询一样简单,如下例所示:

FROM books METADATA _score
| WHERE semantic_title:"Shakespeare"
| SORT _score DESC

在这个示例中,我们将 semantic_title 设置为使用 semantic_text 字段类型。

将索引字段映射为 semantic_text 就是为语义搜索设置索引所需的全部操作。

查看我们的语义文本搜索教程,了解更多细节。

ES|QL 混合搜索

ES|QL 使得同时进行语义搜索和词汇搜索变得简单。根据你的用例,也可以设置不同的加权,优先显示来自语义搜索或词汇搜索的结果:

FROM books METADATA _score
| WHERE match(semantic_title, "Shakespeare", { "boost": 0.75 }) OR match(title, "Shakespeare", { "boost": 0.25 })
| SORT _score DESC

从 KQL 过渡

如果你是 Kibana Discover 的长期用户,并且使用 KQL(Kibana Query Language)来查询和可视化数据,同时你想尝试 ES|QL 但不知道从哪里开始,别担心,我们来帮你!

在 8.18 和 9.0 中,ES|QL 增加了一个新功能,允许你在 ES|QL 中使用 KQL。操作就像这样简单:

FROM logs*
| WHERE KQL("http.request.method:GET AND agent.type:filebeat")

ES|QL 已经在 Kibana Discover 中可用。

这样,你可以同时享受两者的优点:你可以继续使用 KQL,并且可以按自己的节奏开始更熟悉 ES|QL。

查看我们的 ES|QL 入门指南,获取更多信息。

8.18 和 9.0 及以后版本

在未来的版本中,我们将为 ES|QL 添加越来越多的搜索功能,包括向量搜索、语义重新排序、增强的评分自定义选项,以及结合混合搜索结果的额外方法,例如倒排排名融合(RRF)。

亲自尝试

这些变化从 Elasticsearch 8.18 开始可用,但它们已经可以在 Elasticsearch Serverless 中使用。对于 Elasticsearch Serverless,今天就开始免费的云试用,或者现在就尝试在本地机器上使用 Elastic!

跟随《在 ES|QL 中搜索和过滤》教程,亲自体验这篇博客中描述的功能!

Elasticsearch 拥有丰富的新功能,帮助你为你的用例构建最佳的搜索解决方案。深入了解我们的示例笔记本,了解更多内容,开始免费的云试用,或者现在就尝试在本地机器上使用 Elastic。

原文:ES|QL, you know, for Search - Introducing scoring and semantic search - Elasticsearch Labs

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

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

相关文章

MIT6.S081-lab4

MIT6.S081-lab4 注:本篇lab的前置知识在《MIT6.S081-lab3前置》 1. RISC-V assembly 第一个问题 Which registers contain arguments to functions? For example, which register holds 13 in main’s call to printf? 我们先来看看main干了什么: …

一文总结通信电路中LC谐振回路中各公式以及对深入解读品质因数Q

目录 前言 一、基本公式总结 1.并联谐振回路 2.串联谐振回路 二、浅谈品质因数 1.衡量谐振回路能量存储与能量损耗之比的无量纲参数,用于描述谐振电路的频率选择性 2.当受到振荡驱动力时,谐振腔的中心频率与其带宽的比值 3.为什么谐振时电容上的…

Linux:文件系统

一.认识硬件–磁盘 1. 物理结构 1.2 存储结构 ❓如何定位⼀个扇区呢? 可以先定位磁头(header)——》确定磁头要访问哪⼀个柱⾯(磁道)(cylinder)——》 定位⼀个扇区(sector)。 柱⾯(cylinder&#xff09…

数字孪生废气处理工艺流程

图扑数字孪生废气处理工艺流程系统。通过精准 3D 建模,对废气收集、预处理、净化、排放等全流程进行 1:1 数字化复刻,实时呈现设备运行参数、污染物浓度变化等关键数据。 借助图扑可视化界面,管理者可直观掌握废气处理各环节状态&#xff0c…

Scratch——第18课 列表接龙问题

在四级的考级中,接龙的题目虽然在CIE中只出现过两次,但是这类题目对字符串的知识点考察相对全面。 一、接龙游戏的判断方法 接龙的内容对应的字符数 ? 已接龙内容的字符数 满足条件>接龙内容的第一个字符数 ? 上一项接龙的最后一个字符 满足条件…

webgl入门实例-向量在图形学中的核心作用

在图形学中,向量是描述几何、光照、运动等核心概念的基础工具。以下是向量在图形学中的关键应用和深入解析: 1. 向量的核心作用 几何表示:描述点、方向、法线、切线等。空间变换:平移、旋转、缩放等操作依赖向量运算。光照计算&a…

Redis 是如何保证线程安全的?

Redis 是如何保证线程安全的? Redis 是一个高性能的键值数据库,广泛应用于缓存、消息队列、实时分析等场景。由于其性能优势,Redis 已经成为许多系统的核心组件之一。然而,很多开发者在使用 Redis 时,常常会问&#x…

Img2img-turbo 在2080Ti上的测试笔记

1. 介绍 [img2img-turbo]是[pytorch-CycleGAN-and-pix2pix]推荐的更新的图像变换的代码实现; 2. 配置信息 Conda环境名称:img2img-turbo 3. 问题描述 当前在我们尝试使用了官方推荐的训练命令在2080Ti上进行训练, 3.1 出现了 CUDA out …

代码随想录算法训练营第三十五天|416. 分割等和子集、698.划分为k个相等的子集、473.火柴拼正方形

今日题目 416. 分割等和子集 题目链接:416. 分割等和子集 - 力扣(LeetCode) 思考:本题要将数组分为两个子数组,且两个子数组和相等,因此首先可以想到的条件就是数组可分为两个,这要求数组元素数…

纯CSS实现自动滚动到底部

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>自动滚动到底部</title><style>*…

【新人系列】Golang 入门(十五):类型断言

✍ 个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4dd; 专栏地址&#xff1a;https://blog.csdn.net/newin2020/category_12898955.html &#x1f4e3; 专栏定位&#xff1a;为 0 基础刚入门 Golang 的小伙伴提供详细的讲解&#xff0c;也欢迎大佬们…

AI大模型发展现状与MCP协议诞生的技术演进

1. 大模型能力边界与用户痛点&#xff08;2023年&#xff09; 代表模型&#xff1a;GPT-4&#xff08;OpenAI&#xff09;、Claude 3&#xff08;Anthropic&#xff09;、通义千问&#xff08;阿里云&#xff09;等展现出强大的生成能力&#xff0c;但存在明显局限&#xff1a…

深入理解Linux中的线程控制:多线程编程的实战技巧

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; POSIX线程&#xff08;Pthreads&#xff09; 是一种在 POSIX 标准下定义的线程库&#xff0c;它为多线程编程提供了统一的接口&#xff0c;主要用于 UNIX 和类 UNIX 系统&#xff08;如 Linux、MacOS 和 BS…

(mac)Grafana监控系统之监控Linux的Redis

Grafana安装-CSDN博客 普罗米修斯Prometheus监控安装&#xff08;mac&#xff09;-CSDN博客 1.Redis_exporter安装 直接下载 wget https://github.com/oliver006/redis_exporter/releases/download/v1.0.3/redis_exporter-v1.0.3.linux-amd64.tar.gz 解压 tar -xvf redis_…

鸿蒙应用元服务开发-Account Kit未成年人模式订阅和处理用户信息变更

一、概述 通过订阅用户信息变更&#xff0c;您可以接收有关用户及其账户的重要更新。当用户取消元服务的授权信息、注销华为账号时&#xff0c;华为账号服务器会发送通知到元服务&#xff0c;元服务可以根据通知消息进行自身业务处理。 二、用户信息变更事件介绍 三、订阅用…

buildroot构建根文件系统报错(已解决大部分问题)

title: buildroot构建根文件系统报错(set FORCE_UNSAFE_CONFIGURE1) author: cbus categories: 小知识 tags:小知识 abbrlink: 53691 date: 2025-04-20 08:03:00 错误1 set FORCE_UNSAFE_CONFIGURE1 在使用buildroot构建根文件系统时&#xff0c;一切按照文档的配置&#xff0…

7.QT-常用控件-QWidget|font|toolTip|focusPolicy|styleSheet(C++)

font API说明font()获取当前widget的字体信息.返回QFont对象.setFont(const QFont& font)设置当前widget的字体信息. 属性说明family字体家族.⽐如"楷体",“宋体”,"微软雅⿊"等.pointSize字体⼤⼩weight字体粗细.以数值⽅式表⽰粗细程度取值范围为[…

通过面向目标的奖励弥合人与机器人的灵活性差距

24年10月来自纽约大学的论文“Bridging the Human to Robot Dexterity Gap through Object-Oriented Rewards”。 直接通过人类视频训练机器人是机器人技术和计算机视觉领域的一个新兴领域。尽管双指机械手在双指夹持器方面取得了显著进展&#xff0c;但以这种方式让多指机械手…

C++入门篇(下)

目录 1、引用 1.1 引用概念 1.2 引用特性 1.3 常引用 1.4 使用场景 1.4.1 引用做参数 1.4.2 引用做返回值 1.5 引用和指针的区别 2、内联函数 2.1 概念 2.2 特性 3、auto关键字 4、基于范围的for循环 5、指针空值nullptr 5.1 C98 中的指针空值处理 5.2 C11 …

Multi-Query Attention (MQA) PyTorch 实现

和多头注意力机制的唯一区别&#xff1a;K、V在不同的head之间实现了复用&#xff0c;而对于不同的头&#xff0c;Q依然不同。 因此这里的代码和标准多头注意力的实现也是几乎完全一样&#xff1a; import torch import torch.nn as nn import torch.nn.functional as Fclass…