Elasticsearch 8 RAG 技术分享

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文介绍了Elasticsearch 8 在RAG场景方面的发展历程、技术演进、未来发展方向和产品能力。

Tech Day

本文由Elastic 中国区首席架构师 Jerry Zhu 在【AI搜索 TechDay】上的分享整理而成。【AI搜索 TechDay Elastic 和阿里云联合主办的 AI 技术Meetup系列,聚焦企业级 AI 搜索应用和开发者动手实践,旨在帮助开发者在大模型浪潮下升级 AI搜索,助力业务增长。


Elacticsearch:从文本搜索到混合搜索

image.png

Elasticsearch的发展历程及其在丰富应用场景中的扩张,是一个技术演进与市场需求相互促进的经典案例。初期,ES作为一款以文本搜索为核心功能的搜索引擎,满足了基本的模糊搜索需求,这主要得益于其倒排索引技术,该技术在全文搜索领域表现出色。然而,随着用户需求的深化,特别是对时间、标签过滤及排序等结构化搜索需求的增加,传统的全文搜索技术已难以独立支撑。此时,ES引入了doc_value特性,采用列式存储优化了结构化数据处理能力,有效提升了过滤和排序效率,从而能够替代部分数据库完成结构化搜索任务,这是ES应用场景得以大幅拓展的关键转折点。

 

随后,聚合(aggregation)功能的引入进一步推动了ES的应用边界。它允许在搜索结果集上进行统计分析,如不同类别的搜索结果数量,极大丰富了应用层面的数据洞察力,使得ES不仅仅局限于简单的查找,而是成为数据分析的强大工具。

 

地理空间搜索(BKD tree)的集成,则标志着ES能够应对更加复杂、现实世界的查询需求,如附近餐馆搜索,展现了其在非结构化、结构化数据及地理位置信息综合处理方面的强大能力。

 

image.png

 

近年来,向量搜索的加入,是对ES能力的又一次重要扩展。尽管市场上已有专注于此的数据库,但ES整合向量搜索的能力,响应了用户减少技术栈复杂性、统一处理多种类型数据的需求。这一举措背后,不仅体现了技术发展趋势(如OpenAI引领的AI热潮对向量搜索的需求激增),也突显了ES作为广泛采纳的技术平台,有能力快速吸收并内化新兴技术,为用户提供一站式混合搜索解决方案。

 

Elasticsearch之所以能在多变的场景中持续繁荣,关键在于其不断进化的能力——从最初的全文搜索,到结构化数据处理,再到聚合分析、地理空间搜索,直至现今的向量搜索,每一步都紧贴用户需求和技术前沿。ES的成功,不仅在于技术的创新与整合,更在于其能够无缝融入用户日常生活与各行各业的数字化转型之中,成为驱动现代信息搜索与分析不可或缺的一部分。

 

Elasticsearch的普及与产品易用性的考量

Elasticsearch的普及程度已显著提升,不仅局限于企业界的应用,还渗透到了高等教育领域。这一现象反映在高校大数据课程中,学生不仅开始采用ES进行项目实践,还能深入理解其架构及应用方法,这标志着ES的普及率与易用性达到了较高水平。易用性作为技术采纳的关键因素,对于促进技术在学生群体中的快速学习和应用至关重要,它降低了复杂技术的入门门槛,如分布式系统的配置与管理,从而加速了技术的推广步伐。

 

在国内技术生态中,ES的成功案例凸显出在追求高性能的同时,不应忽视技术的易用性和维护性,这些因素在全球范围内被视为与性能同等重要的衡量标准,对技术栈能否广泛推广至大型企业用户群体起着决定性作用。实际上,技术的普及速度和接受度受到多维度因素的影响,速度虽然是重要考量,但并非唯一标准。

 

ES的发展路径展现了其对市场需求的积极响应,它并未预先设定所有功能,而是依据用户需求动态演进,无论是全文搜索、结构化搜索还是聚合统计等功能,均是在实际应用场景驱动下逐步完善。这种以用户需求为导向的产品设计理念,确保了ES能够持续适应并推动各类应用场景的发展,体现了高度的灵活性与前瞻性。

 

打造最佳混合搜索引擎:Elasticsearch的技术演进与创新

在技术产品的发展历程中,适时的市场进入时机至关重要。 ElasticSearch的成功案例展示了它如何巧妙地把握住了用户需求的爆发期,既不过早,也不滞后,恰如其分地推出了向量搜索等前瞻功能。尽管在7.x版本时已具备CPU驱动的向量搜索能力,但直到技术成熟与市场需求相匹配时,才加大资源投入,实现了有效的产品迭代与市场响应。这种策略性的资源分配,避免了过早投资的潜在浪费,体现了在产品管理中对时机与资源平衡的精妙掌握。

 

image.png

 

语义搜索的兴起,进一步验证了ES对行业趋势的敏锐洞察。面对关键词搜索的局限性,ES预见到语义理解技术的潜力,并等待如OpenAI推动的模型进步,适时引入高性能的embedding模型,推动语义搜索的落地,从而让用户无需转换技术栈就能享受到语义搜索带来的显著提升。混合搜索的集成策略,即在传统搜索基础上融入向量搜索,成为提高搜索质量的关键步骤,尤其是在RAG场景下,重排序技术的应用通过高级模型进一步提升了搜索结果的相关性和精准度。

 

image.png

 

ES的核心优势在于其强大的生态系统和对现有项目的无缝升级能力,使得从传统搜索过渡到语义搜索变得自然而高效。此外,ES自研的HNSW索引及检索引擎,不仅强化了其向量搜索的性能,还确保了与既有搜索功能的深度整合,旨在打造最佳的混合搜索引擎体验,而非仅限于向量搜索本身。这一决策背后的逻辑,是维护技术自主权,确保在不断优化过程中,能灵活应对并满足混合搜索日益增长的复杂需求,同时也反映出与Lucene项目核心特性的兼容考量。

 

ES在技术演进与市场适应中的战略,体现了对技术创新的前瞻布局与实践智慧,以及对用户需求深刻理解基础上的精准执行,最终目标是助力用户在不增加技术负担的前提下,平滑过渡至更高级的搜索解决方案,实现搜索体验的革命性飞跃。

 

性能与向量计算在搜索引擎中的重要性

要实现既定目标,首要认识到性能虽非唯一标准,却是不可或缺的基础。特别是在向量计算领域,性能需求尤为显著,因为它涉及大量矩阵运算,天然适合单指令多数据(SIMD)处理,这要求我们深入探索硬件加速的可能性。因此,即便是以Java为根基的系统如LuceneElasticsearch,在向量计算的背景下,也必须跨越传统界限,积极整合硬件优化措施,以应对计算密集型任务的挑战。

 

此外,传统ES在搜索和聚合计算方面已表现出色,但面对向量处理和更复杂的分析需求时,单纯依赖软件层面的优化已不足以满足高效计算的要求。这不仅涉及到如何高效利用硬件资源,比如通过特定的硬件加速技术如SIMD指令集,还要求在设计上更加灵活,以适应不同计算场景的并发需求。例如,ES引入新的计算引擎,不仅为了提升聚合计算的性能,也为更好地适配硬件加速趋势。

 

image.png

 

量化技术的采用,尤其是从float32到更低精度格式的转变,是向量处理中减少资源消耗的关键策略。这对于处理高维向量数据尤其重要,能够显著降低存储和计算成本,而ES对此的支持也体现了其向高效计算迈进的决心。

 

image.png

 

同时,系统设计需考虑并行处理能力的提升,特别是在计算密集型应用中。以往在搜索领域,关注点可能更多在于处理高并发请求的能力,而在向量计算及数据分析场景下,充分利用多核处理器和现代硬件的高并发潜力成为必要。这意味着不仅要提升单个查询的处理能力,还要确保系统能有效协调多个并发任务,实现资源的最佳分配和利用。

 

image.png

 

为实现这些目标,Elasticsearch采取了一系列技术革新,包括采用Panama项目等手段,以确定性方式利用JDK的硬件加速能力,并逐步增加对本地代码调用的支持,以进一步挖掘硬件潜能。这些改变不仅是为了提升现有功能的性能,更是为了适应计算领域的新要求,确保ES能够在不牺牲易用性和可扩展性的前提下,满足日益增长的计算密集型工作负载需求。

 

ES的发展路径清晰地展示了从专注于搜索到融合高性能计算的转变过程,这一转变不仅体现在技术选型和架构调整上,更在于对硬件资源的深度整合与优化,以及对计算效率和并发控制的深刻理解与实践。随着技术进步和硬件能力的不断提升,ES的持续演进将为用户提供更强大、更灵活的数据处理能力。

 

深化向量搜索与语义理解:Elasticsearch的新方向

在应对日益增长的向量数据处理成本时,社区普遍关注如何高效压缩而不大幅度牺牲质量,其中量化技术成为一个焦点。量化主要是将原本占用较大存储空间的浮点型数据(如float32)转换为更紧凑的整型数据(如int8int4),这不仅能减少每个维度的存储需求,而且对模型输出的向量质量影响相对较小,尤其是当不减少向量维度而仅改变数据类型时。Elasticsearch自动化这一量化过程,将模型生成的float32数据自动转换为int8格式,从而显著减小存储需求,间接降低了内存消耗,这对依赖内存高效的HNSW算法至关重要,确保了索引检索速度。

 

image.png

 

混合搜索策略是ES致力于优化的方向,旨在结合不同类型的向量处理与文本搜索能力,服务于广泛的使用场景。其中,密集向量技术通过深度学习模型将文本映射到高维空间,实现语义理解;而稀疏向量则更贴近传统的关键词加权方法,如BM25,尤其适用于文本搜索。通过结合两者,ES不仅能够支持基于文本的查询,还能扩展至图像等多媒体内容的语义搜索,满足多样化需求。

 

image.png

 

针对文本搜索中常见的关键词缺失问题,ES引入了文档扩写技术,利用深度学习模型预测并补充文档中可能缺失但与查询相关的关键词,进而优化基于BM25的倒排索引搜索效果,无需将所有数据加载至内存即可实现高效检索。此外,模型还能动态调整关键词权重,增强搜索灵活性和准确性。

 

image.png

 

为了进一步提升搜索质量,ES整合了诸如Cohere等社区广受好评的模型,不仅在代码搜索、长文本处理、半结构化数据检索等方面展现出显著性能提升,还在商业版本中提供了对这些模型的支持与对接服务。这表明,现代语义搜索已不再局限于传统方法,而是深入到模型微调、多向量支持等高级功能,以适应复杂多变的检索需求。多向量支持尤为重要,因为它允许对文档的不同部分(如标题、摘要、段落乃至图文内容)独立建模,深化语义理解,提升检索系统的全面性和精确性。

 

image.png

 

通过精细化的量化策略、混合搜索技术的集成、以及模型辅助的文档扩写与多向量处理,Elasticsearch正不断推动语义搜索技术边界,为用户提供更加智能、高效、定制化的搜索解决方案。

 

提升搜索与分析能力:利用社区AI和开源工具

Elasticsearch现已融入模型上传功能,特别是与现有的Active Search配合时,其内置的机器学习模块(基于C++)提供了高度灵活性。该模块依托开源基础架构,便于集成如Value模型等高质量模型,实现从Hugging Face直接上传至社区,并自动执行文本到向量的嵌入转换,存储于ES内,极大简化了处理流程。

 

image.png

 

在管理层面,Kibana界面支持模型的可视化管理,包括部署规模、内存分配及并发度设定,全面监控各模型的请求量与资源消耗,提供直观便捷的控制体验。此外,针对模型集成,不仅预设了Python API以简化对接流程,无需依赖外部服务,还特别设计了Inference API以满足更广泛需求,特别是针对大规模模型或需高性能计算资源的场景,确保了与各种环境(如阿里云PaaS平台托管的模型、OpenAI服务乃至其他SaaS服务)的无缝衔接,提升了服务的通用性和灵活性。

 

image.png

 

Inference API作为核心中介,贯穿搜索、排序、评估等多个环节,不仅强化了与内部部署模型的互动,也优化了私有化或云端部署模型的调用流程,实现了AI能力接入的高效与多样性。这一系列设计充分体现了社区AI”理念,旨在利用AI技术加强传统搜索,简化用户操作,降低使用门槛,即便在复杂的向量处理领域,亦能显著提升用户体验,减少开发中的重复工作,确保技术应用更加直观与集中。

 

image.png

 

通过不断优化的接口设计与强大的后端支持,ES及其相关工具集正逐步实现搜索技术的智能化转型,不仅加速了AI在搜索领域的融合进程,也彰显了对用户体验与易用性重视的新时代技术发展趋势。

 

ES与AI结合实现高效搜索与数据分析

在融合ESAI技术的背景下,我们致力于打造高效的数据搜索与分析体验,通过深度集成推理API与外部服务,实现了搜索功能的智能化升级。我们的混合召回设计不仅简化了开发流程,还显著提升了索引处理与查询效率。具体而言,用户只需在索引定义时指定如“synthetic test”这类需进行语义搜索的字段,并关联相应的推理API,系统便会自动完成文本到向量的转换与存储,以及后续的查询转换,极大地减轻了开发者负担,避免了重复编码工作。

 

image.png

 

此外,我们重视安全性与隐私保护,提供精细化的权限控制功能,确保数据访问遵循严格的角色与权限界定。ES商业版在此基础上更进一步,支持行级别与列级别的权限管理,使得不同角色用户在相同查询条件下可获取的信息范围各异,满足复杂的企业级安全需求。同时,无缝集成企业认证系统(如SSO),简化了身份验证流程,提升了系统的整体安全性与易用性。

 

image.png

 

针对数据处理与合规性,我们提供敏感词过滤机制,并依托ES强大的规则构建能力,进一步强化了数据处理的灵活性与安全性。在阿里云的搜索开发平台上,ES作为核心组件,完美融入其全面的AI搜索解决方案中,不仅简化了部署与维护工作,还通过持续的技术迭代,如向量引擎的性能加速、计算引擎的革新,以及与AI生态的深度融合,不断拓展其功能边界与性能极限。

 

image.png

 

着眼未来,我们正聚焦于提升计算引擎的能力,旨在通过现代化的计算范式与硬件加速技术,为用户提供超越传统架构的高性能搜索与计算服务。同时,云原生策略的支持与阿里云的紧密合作,确保了服务的高可用性与可扩展性,覆盖从日志分析、APM监控到安全检测等多元应用场景。

 

image.png

 

为促进技术交流与学习,我们提供了丰富的学习资源与实验室环境,涵盖搜索、安全等多个领域,鼓励开发者深入探索ESAI结合的广阔应用前景,并通过技术社群加强实践交流,共同推动技术创新与发展。



 

阿里云搜索开发工作台面向企业及开发者提供先进的AI搜索开发平台,内置实践打磨的多模态数据解析、文档切分、文本向量、查询分析、大模型文本生成、效果测评等丰富的组件化服务以及开发模版,同时,可选多种引擎能力,用户可灵活调用,实现智能搜索、检索增强生成(RAG)、多模态搜索等搜索相关场景的搭建。


首次免费开通搜索开发工作台,每个账号可获赠100次服务免费调用额度 >>

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
存储 Java 关系型数据库
【Elasticsearch 技术分享】—— 十张图带大家看懂 ES 原理 !明白为什么说:ES 是准实时的!
说到 Elasticsearch ,其中最明显的一个特点就是 near real-time 准实时 —— 当文档存储在Elasticsearch中时,将在1秒内以几乎实时的方式对其进行索引和完全搜索。那为什么说 ES 是准实时的呢?
1256 0
|
自然语言处理
【Elasticsearch 技术分享】—— ES 查询检索数据的过程
ES 使用过程中常用的就是查询以及检索,那查询和检索的过程,什么样的呢?
1400 0
|
存储 索引
【Elasticsearch 技术分享】—— Elasticsearch 存储一条数据, put 过程是什么样子的?
在前面已经介绍了 ES 中常用的一些名词,知道了数据是存储在 shard 中的,而 index 会映射一个或者多个 shard 。那这时候我要存储一条数据到某个索引下,这条数据是在哪个 index 下的呢?
723 0
|
存储 JSON API
【Elasticsearch 技术分享】—— ES 常用名词及结构
看完什么是 Elasticsearch 以及了解到了倒排索引的概念,下面就熟悉下 ES 中常用的一些名词。
246 0
【Elasticsearch 技术分享】—— ES 常用名词及结构
|
存储 缓存 JSON
【Elasticsearch 技术分享】—— Elasticsearch ?倒排索引?这都是什么?
革命同志是块砖,哪里需要哪里搬!这不,老大发话,要我在组内做一个 Elasticsearch 技术分享。这不话题一转,开始看起来 ES 了。虽然很久之前用过 ELK 做过日志监控系统,但是毕竟时隔已久,还是得从头看起。当然手头的活也不能停,话不多说,开始分享。先看看什么是 ES?
202 0
|
存储 数据可视化 搜索推荐
如何做一次Elasticsearch技术分享?
如何做一次Elasticsearch技术分享?
166 0
如何做一次Elasticsearch技术分享?
|
Java 数据库 云计算
何做一次Elasticsearch技术分享?
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
1511 0
何做一次Elasticsearch技术分享?
|
缓存 大数据 Java
【技术分享】《深入理解Elasticsearch》读书笔记
Elasticsearch广泛应用于全文检索和实时日志分析场景。为了帮助开发者更好的理解和应用Elasticsearch和ELK相关技术,小编将甄选一系列技术干货分享给大家。本文作者在Elastisearch系统搭建和应用领域有深入的实践经验,现转载作者《深入理解Elasticsearch》读书笔记,梳理Elasticsearch使用过程中的一些技术难点。
6067 0
|
19天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
34 5
|
2月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
147 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。

相关产品

  • 检索分析服务 Elasticsearch版