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 索引模式是一种专门为向量优先工作负载设计的新索引配置,默认启用,因此你可以直接获得专家会选择的设置。它会启用以下功能:

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

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

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

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

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

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

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

通过托管 GPU 推理生成嵌入

混合搜索和过滤向量搜索

  • 混合搜索内置于系统中,可以在单个查询中结合全文检索和向量检索。你可以使用倒数排名融合(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。

复制代码
PUT my-vectors
{
  "mappings": {
    "properties": {
      "description": {
        "type": "semantic_text"
      }
    }
  }
}

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

复制代码
GET my-vectors/_mapping

{
  "my-vectors": {
    "mappings": {
      "properties": {
        "description": {
          "type": "semantic_text",
          "inference_id": ".jina-embeddings-v5-text-small"
        }
      }
    }
  }
}

摄取文档

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

复制代码
POST /my-vectors/_doc
{
  "id": "park_rocky-mountain",
  "title": "Rocky Mountain",
  "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."
}

运行语义搜索查询

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

复制代码
GET /my-vectors/_search
{
  "query": {
    "semantic": {
      "field": "description",
      "query": "a mountain range in the middle of north america"
    }
  }
}

你就会获得返回的结果:

复制代码
{
  "took": 80,
  "hits": {
    "max_score": 0.7792325,
    "hits": [
      {
        "_index": "my-vectors",
        "_score": 0.7792325,
        "_source": {
          "id": "park_rocky-mountain",
          "title": "Rocky Mountain",
          "description": "Bisected north to south by the Continental Divide, ..."
        }
      }
    ]
  }
}

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

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

相关推荐
1314lay_100744 分钟前
C#调用Sql Server存储过程,有返回值的
数据库·sqlserver·c#
海带紫菜菠萝汤1 小时前
开源大模型出海开始收费:许可证里的三条路线与真实影响
人工智能·ai·开源·大模型
A hao1 小时前
LED视频处理器中帧率与刷新率的区别
大数据·图像处理·人工智能·音视频
AgentMaster1 小时前
数据治理工具选型指南:一套可复用的四阶段决策框架
大数据·数据结构·人工智能·算法
数融智域1 小时前
2026年获客智能体排行榜top前五
大数据·人工智能
Zen20031 小时前
建文AI·新能源项目管理软件解决方案:从立项→设计→采购→施工→并网,一条线管到底,专为光伏、风电、储能、充电桩工程打造;让新能源项目,交付快一步
大数据·工程项目管理软件·新能源项目管理·光伏项目管理·风电项目管理·充电桩项目管理·储能项目管理软件
赵民勇1 小时前
resolvectl命令详解
linux·运维
Sophnet云平台1 小时前
Claude Code Agent Teams发布:多Agent协作编码意味着什么
gpt·ai·ai编程·claude·agi·codingplan
新时代牛马1 小时前
Linux 日志管理:journald、rsyslog 与 logrotate
linux·运维·服务器