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