Elasticsearch 向量数据库:几分钟内完成部署,以经济高效的方式扩展至数千亿规模

作者:来自 Elastic Dustin Coates

混合检索中那些最棘手的部分,我们已经替你完成:开箱即用的优化默认配置、第三方及原生 Jina AI 模型,以及托管 GPU 推理。快速构建可扩展的 AI 应用,而不是基础设施。

尝试使用向量搜索。你可以通过这个自主进度的动手实践学习课程亲自体验 Search AI。你可以立即开始免费云试用,或者在你的本地机器上尝试 Elastic。

Elasticsearch 是全球部署最广泛的向量工作负载平台之一,为 GitHub、Docusign、Seismic 以及许多其他公司提供语义搜索检索增强生成( RAG )和推荐功能。今天,我们宣布推出 Elasticsearch 向量数据库,这是一项针对向量应用进行优化的新型无服务器服务。你提供文档和查询,我们负责处理嵌入和索引调优,以及底层基础设施。此外,我们还让它保持低成本并具备可扩展性。

对于新用户来说,这是最快让高质量向量搜索运行起来的方式。如果你已经在使用 Elasticsearch,那么这项新服务就是在你的数据已经存在的平台上提供向量搜索,无需再采用新的系统。Elasticsearch Vector Database 支持从为大语言模型( LLM )提供基础信息,到为 AI agent 提供检索和记忆,再到服务数千亿个向量等各种场景。创建一个新项目,几分钟即可开始使用。

一个引擎,覆盖所有向量使用场景

Elasticsearch Vector Database 专为任何使用向量构建应用的开发者而打造:

  • RAG :使用稠密向量和稀疏向量检索,为 LLM 获取正确的上下文;或者使用结合向量检索和词法检索的混合搜索。检索质量越高,生成结果的质量就越高。

  • **AI agent:**为 agent 提供对文档和对话记忆的快速、可过滤检索,以及多步骤 agent 循环所要求的低延迟。

  • **语义搜索:**根据含义而不是关键词进行匹配,只需使用一种字段类型,无需编写 pipeline 代码。

  • **推荐和相似度:**在产品、图像或你拥有的任何内容中,以大规模方式查找最近邻。

向量工作负载所需的一切,开箱即用完成优化

构建基于向量的应用意味着需要将多个独立组件连接起来:设置并托管嵌入模型,通过这些模型为文档建立索引,高效存储向量,将嵌入模型应用于每个查询,与向量存储进行匹配,最后获取匹配结果背后的文档。Elasticsearch Vector Database 将这一切全部为你处理,无需额外配置或设置。

使用 vectordb_document 索引模式进行 向量索引

**[vectordb_document](https://www.elastic.co/docs/reference/elasticsearch/mapping-reference/dense-vector#dense-vector-vectordb-document-mode "vectordb_document")** 索引模式是一种专门为向量优先工作负载设计的新索引配置,默认启用,因此你可以直接获得专家会选择的设置。它会启用以下功能:

  • 默认使用 bfloat16 :向量的存储大小只有 float32 的一半,同时对 recall 的影响可以忽略不计,因此即使还没有使用量化,也能将磁盘占用大致降低一半。

  • 排除 Source 中的向量 :在 Elasticsearch 中,你的嵌入已经存在于用于搜索的索引结构中;在 _source 中保留第二份原始副本只会增加存储空间,并降低结果获取速度。我们排除了这份重复数据,因此响应速度更快,存储需求也更低。

  • **预加载正确的文件到缓存:**向量查询首先访问的数据结构会提前加载到内存中,因此第一次查询和第一千次查询都能获得极快的速度。

  • **并行合并:**合并操作会将 segment 整合为组织更好的向量结构,从而提升 recall 和 latency;以多线程方式执行这些合并,可以更快完成这一过程。

向量存储、压缩和自动调优

  • 你的向量会自动进行压缩。Better Binary Quantization(BBQ)可以在保持 recall 的同时,将向量内存占用最多缩小 32 倍,而 DiskBBQ 可以进一步降低大规模工作负载的内存需求。

  • 选择启用自动校准,它会针对你的数据调整每个 segment 的量化方式,并在数据发生变化时的每次合并过程中重新进行调优。在 18 个数据集上的测试中,QPS 平均提升了 16.7%,并且大多数数据集的 recall 也有所提升。

通过托管 GPU 推理生成嵌入

  • 使用原生的 Jina AI 嵌入和重排序模型,或者使用第三方模型,全部通过 Elastic Inference Service(EIS)上的托管 GPU 完成,无需运维模型服务器。当然,如果你更倾向于自己托管,也可以自行部署。

  • **[semantic_text](https://www.elastic.co/docs/reference/elasticsearch/mapping-reference/semantic-text "semantic_text")** 字段类型会自动处理分块、嵌入以及查询,是目前市场上实现语义搜索最简单的路径。

混合搜索和过滤向量搜索

  • 混合搜索内置于系统中,可以在单个查询中结合全文检索和向量检索。你可以使用倒数排名融合(RRF)或其他任何你希望使用的融合机制来组合结果。向量搜索通常是混合搜索中最难正确配置的部分。使用 Elasticsearch Vector Database,这部分已经为你处理好,整个混合搜索技术栈也会因此得到提升。

  • 借助过滤向量搜索,可以将元数据过滤作为向量检索本身的一部分,而不是事后再进行过滤,从而避免严重影响 recall。

从第一天起就具备企业级能力

你还可以获得基于角色的访问控制(RBAC)、审计日志以及纯 向量数据库 通常缺乏的合规认证。

大规模部署,经济实惠且成本可预测

Elasticsearch Vector Database 的设计目标是随着你的规模增长依然保持经济实惠:BBQ 和 DiskBBQ 压缩能够保持存储空间线性增长并降低内存需求,因此扩展到数千亿个向量不会让你的账单失控。而你需要支付的费用基于你已经熟悉的指标:存储的数据量、索引数据量,以及所需的搜索容量。估算你的文档数量和向量维度,再加上查询负载,你就可以在创建项目之前计算出需要支付的费用。月底时,你还可以逐项查看账单。没有不透明的计算单元,也不会因为后台操作而产生意外费用。

如何开始使用 Elasticsearch Vector Database

创建无服务器向量数据库项目

在 Elastic Cloud 中创建一个新的无服务器 Vector Database 项目。将你的数据指向该 endpoint,然后就可以开始建立索引了。

使用 semantic_text 创建索引

向量索引模式会处理向量配置。使用 semantic_text 意味着嵌入和分块设置都会由系统为你管理,同时索引设置也会通过托管 GPU 推理完成,无需构建嵌入 pipeline。

bash 复制代码
`

1.  PUT my-vectors
2.  {
3.    "mappings": {
4.      "properties": {
5.        "description": {
6.          "type": "semantic_text"
7.        }
8.      }
9.    }
10.  }

`Lobster AI![](https://csdnimg.cn/release/blogv2/dist/pc/img/runCode/icon-arrowwhite.png)

:在默认的情况下,在没有知道 inference_id 的情况下,它使用的是 .jina-embeddings-v5-text-small

bash 复制代码
`GET my-vectors/_mapping`Lobster AI
markdown 复制代码
`

1.  {
2.    "my-vectors": {
3.      "mappings": {
4.        "properties": {
5.          "description": {
6.            "type": "semantic_text",
7.            "inference_id": ".jina-embeddings-v5-text-small"
8.          }
9.        }
10.      }
11.    }
12.  }

`Lobster AI![](https://csdnimg.cn/release/blogv2/dist/pc/img/runCode/icon-arrowwhite.png)

摄取文档

将文本建立索引,嵌入会自动为你生成。

bash 复制代码
`

1.  POST /my-vectors/_doc
2.  {
3.    "id": "park_rocky-mountain",
4.    "title": "Rocky Mountain",
5.    "description": "Bisected north to south by the Continental Divide, this portion of the Rockies has ecosystems varying from over 150 riparian lakes to montane and subalpine forests to treeless alpine tundra."
6.  }

`Lobster AI

运行 语义搜索 查询

查询你刚刚创建的同一个语义字段:

bash 复制代码
`

1.  GET /my-vectors/_search
2.  {
3.    "query": {
4.      "semantic": {
5.        "field": "description",
6.        "query": "a mountain range in the middle of north america"
7.      }
8.    }
9.  }

`Lobster AI

你就会获得返回的结果:

bash 复制代码
`

1.  {
2.    "took": 80,
3.    "hits": {
4.      "max_score": 0.7792325,
5.      "hits": [
6.        {
7.          "_index": "my-vectors",
8.          "_score": 0.7792325,
9.          "_source": {
10.            "id": "park_rocky-mountain",
11.            "title": "Rocky Mountain",
12.            "description": "Bisected north to south by the Continental Divide, ..."
13.          }
14.        }
15.      ]
16.    }
17.  }

`Lobster AI![](https://csdnimg.cn/release/blogv2/dist/pc/img/runCode/icon-arrowwhite.png)

语义搜索只是开始。你可以运行完整的文本查询,也可以将两者结合起来执行混合查询。你甚至可以自行构建向量查询,以获得完全的控制。请按照文档中的语义搜索快速入门操作,获取完整的使用说明。

Elasticsearch 中向量搜索的下一步

我们已经在着手进行下一步改进:

  • **更好的多租户处理:**如果你的数据需要按租户进行隔离,我们将提供一种更快、代码更少的实现方式。

  • **自动索引优化:**从"全新索引"到"完全优化",尽可能减少手动调优。

  • **持续改进基础设施:**持续调优 Vector Database 的设置和基础设施,让你始终获得最佳吞吐量和最快响应速度。

在 Elastic Cloud Serverless 上尝试 Elasticsearch Vector Database

从一个空项目开始,只需几分钟即可完成混合、过滤向量查询,并由生产级默认配置自动为你完成调优。快速构建可扩展的 AI 应用,而不是基础设施。

立即从 Elastic Cloud Serverless 开始,或者深入了解完整文档API 参考

原文:Elasticsearch Vector Database: Serverless search for RAG and agents | Elasticsearch Labs

相关推荐
vx-Biye_Design8 小时前
SSM伴侣动物伴护星小程序06330-计算机课程设计、毕业设计
spring boot·后端·elasticsearch·小程序·架构·课程设计·idea
云泽80811 小时前
Git 版本控制系统(下):从 .git 目录结构到冲突解决机制详解
大数据·git·elasticsearch
Elastic 中国社区官方博客11 小时前
教程:使用 ES|QL 进行威胁狩猎
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
Elasticsearch16 小时前
jina-reranker-v3.5:通过混合注意力与自蒸馏实现更快的列表式重排序
elasticsearch
Elasticsearch18 小时前
Elasticsearch Python DSL 客户端开发
elasticsearch
麻辣布丁18 小时前
Git冲突原因与解决方法全解
大数据·git·elasticsearch
顧棟1 天前
【ES实战】 低版本Elasticsearch(不具备CCR)集群迁移
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客1 天前
隐藏在可观测性数据中的安全攻击
大数据·网络·安全·elasticsearch·搜索引擎·全文检索
海兰1 天前
Elasticsearch ES|QL:让全文本搜索无处不在
大数据·elasticsearch·jenkins