Elasticsearch 和 OpenSearch 查询性能对比有什么区别

文章导读
根据多篇技术评测与基准测试数据,Elasticsearch 在查询性能上普遍优于 OpenSearch。在文本查询场景中,Elasticsearch 的执行速度比 OpenSearch 快 40% 至 140%,尤其是在排序和全文搜索方面表现显著。在向量搜索领域,Elasticsearch 的吞吐量比 OpenSearch 快高达 8 倍,开箱即用的向量搜索速度甚至快 2 到 12 倍。造成这种差
📋 目录
  1. Elasticsearch 与 OpenSearch:详细对比性能差距
  2. Elasticsearch 向量搜索的速度比 OpenSearch 快高达 8 倍
  3. Elasticsearch 与 OpenSearch:解开向量搜索性能差距
  4. FAQ
A A

根据多篇技术评测与基准测试数据,Elasticsearch 在查询性能上普遍优于 OpenSearch。在文本查询场景中,Elasticsearch 的执行速度比 OpenSearch 快 40% 至 140%,尤其是在排序和全文搜索方面表现显著。在向量搜索领域,Elasticsearch 的吞吐量比 OpenSearch 快高达 8 倍,开箱即用的向量搜索速度甚至快 2 到 12 倍。造成这种差异的主要原因是 Elasticsearch 深度优化了 Apache Lucene 内核,而 OpenSearch 采取了不同的向量搜索实现路径。对于追求高性能、低延迟的搜索应用场景,尤其是涉及大量向量检索和复杂排序的业务,Elasticsearch 通常是更明智的选择,同时它还能使用更少的计算资源。

Elasticsearch 与 OpenSearch:详细对比性能差距

在我们全面的性能测试中,Elasticsearch 成为明智的选择。Elasticsearch 比 OpenSearch 快 40%-140%,同时使用更少的计算资源。在本文中,我们将在六个主要领域对 Elasticsearch 和 OpenSearch 进行性能比较:文本查询、排序、日期直方图、范围和 Term 查询以及资源利用率。我们的目标是提供公平、实用的技术见解,帮助您做出明智的决策,无论您是优化现有系统还是设计新系统。此比较还旨在清楚地突出 Elasticsearch 和 OpenSearch 之间的性能差异,表明两者完全不同。我们将首先回顾性能比较的结果,然后是我们的测试方法和测试环境。结果 使用 t 检验对性能比较结果 (重点关注请求的 p90(第 90 个百分位)) 进行交叉验证,以确保两种解决方案之间的延迟测量存在统计差异。针对每种查询类型计算相对变化 (以百分比表示)。我们还使用箱线图显示 100% 请求的延迟分布,箱线图显示最小值、最大值、中值、平均值和异常值。实际的方框显示了下四分位数和上四分位数,其中分别有 25% 和 75% 的观测值落在其中。通过这种方式,我们可以了解这些值的实际分布情况。文本查询 — 速度提高 76%“查询所有包含 jane@doe.com 的数据。”Elasticsearch 表现出了显著的领先优势,执行文本查询的速度比 OpenSearch 快 76%。文本查询是全文搜索的基础和关键,而全文搜索是 Elasticsearch 的主要功能。文本字段查询允许用户搜索文本数据中的特定短语、单个单词甚至单词的一部分。用户能够通过文本数据执行复杂的搜索——它增强了整体搜索体验并支持广泛的应用程序和解决方案。排序“最贵的产品是哪个?”在对简单文本查询结果进行排序时,Elasticsearch 的性能比 OpenSearch 高出惊人的 140%。此外,Elasticsearch 的时间戳、关键字和数字排序查询的执行时间分别加快了 24%、97% 和 53%。排序是按特定顺序 (例如字母顺序、数字顺序或时间顺序) 排列数据的过程。排序对于基于特定条件的搜索结果非常有用,可确保向客户呈现最相关的结果。

Elasticsearch 向量搜索的速度比 OpenSearch 快高达 8 倍

探索 OpenSearch 与 Elasticsearch 在过滤向量搜索 (filtered vector search) 基准测试中的表现差异,以及为什么向量搜索性能对上下文工程系统 (context‑engineered systems) 至关重要。从向量搜索到强大的 REST API,Elasticsearch 为开发者提供了最全面的搜索工具包。你可以在 Elasticsearch Labs 仓库中的示例 notebook 中尝试新功能,也可以今天开始免费试用或在本地运行 Elasticsearch。为什么搜索速度对 AI agents 和上下文工程很重要 在一个 2000 万文档的语料库基准测试中,Elasticsearch 在过滤向量搜索上的吞吐量比 OpenSearch 快高达 8 倍,同时在我们测试的各种配置中也实现了更高的 Recall@100。上下文工程不仅依赖快速的向量检索。团队还需要强大的相关性控制,例如混合搜索和过滤、操作简便性,以及可预测的性能,以支持工作流的迭代。但因为 agents 往往在每次请求中多次执行“检索 → 推理 → 再检索”循环,检索延迟会被放大,因此在这方面的性能提升会直接转化为更好的端到端响应速度和更低的成本。Graph 1: Throughput. 对于上下文工程来说,检索不是一次性步骤。Agents 和应用会反复执行循环,例如检索→ 推理 → 再检索,以精炼查询、验证事实、组装有依据的上下文并完成任务。这种模式在 agentic 工作流和迭代式增强生成 (retrieval augmented generation- RAG) 中很常见。由于每个用户请求可能会多次触发检索,这会增加响应延迟和/或提高基础设施成本。图 1:上下文工程通过反复检索和筛选,将庞大的上下文池 (文档、记忆、工具、聊天记录) 转化为有限的 LLM 上下文窗口。上下文工程的最佳实现仍是新兴技术,不同工作流的迭代次数差异很大。这些基准测试结果最核心的概念是:上下文工程具有方向性—— 迭代检索会使延迟成倍增加。为什么向量搜索性能至关重要?想象一个购物助手回答问题:“我需要一个 60 美元以下、能放 15 英寸笔记本、耐水、并能在周五送达的随身背包。”在生产环境中,助手很少只发起一次向量查询就停止。它会运行一个检索循环来构建正确的上下文,每一步通常受过滤条件限制,例如库存、地区、配送承诺、品牌规则和政策资格。步骤 1:理解意图并转换为约束条件 Agent 将请求转化为结构化过滤器和语义查询,例如:Filters(过滤条件):有库存、可配送至用户邮编、周五前送达、价格低于 60 美元、有效商品 Vector query(向量查询):"Carry-on backpack 15-inch laptop water resistant"

Elasticsearch 与 OpenSearch:解开向量搜索性能差距

Elasticsearch 的开箱即用的向量搜索速度比 OpenSearch 快 2 到 12 倍。向量搜索正在彻底改变我们进行相似性搜索的方式,尤其是在人工智能和机器学习等领域。随着向量嵌入模型的日益普及,高效搜索数百万个高维向量的能力变得至关重要。Elastic 收到了来自社区的大量请求,要求我们澄清 Elasticsearch 和 OpenSearch 之间的性能差异,尤其是在语义搜索 / 向量搜索领域。鉴于这个主题的重要性,我们进行了性能测试,以提供清晰的、数据驱动的比较 —— 没有歧义,只有直截了当的事实和见解来告知我们的用户。在为向量数据库提供支持方面,Elastic 和 OpenSearch 采取了明显不同的方法。Elastic 投入巨资优化 Apache Lucene 和 Elasticsearch,以将它们提升为向量搜索应用程序的顶级选择。相比之下,OpenSearch 扩大了其关注范围,集成了其他向量搜索实现并探索 Lucene 的范围之外。我们对 Lucene 的关注是战略性的,这使我们能够在我们的 Elasticsearch 版本中提供高度集成的支持,从而形成一个增强的功能集,其中每个组件都相互补充并增强了其他组件的功能。本博客详细比较了 Elasticsearch 8.14 和 OpenSearch 2.14 的不同配置和向量引擎。在这次性能分析中,Elasticsearch 被证明是向量搜索操作的卓越平台,即将推出的功能将进一步扩大差异。与 OpenSearch 相比,它在每个基准测试中都表现出色 —— 平均性能提高了 2 倍到 12 倍。这是在使用不同向量数量和维度的场景中得出的,包括 so_vector(2M 向量,768D)、openai_vector(2.5M 向量,1536D) 和 density_vector(10M 向量,96D),所有这些都在此存储库中提供,以及用于在 Google Cloud 上配置所有必需基础设施的 Terraform 脚本和用于运行测试的 Kubernetes 清单。

FAQ

Q: Elasticsearch 比 OpenSearch 快多少?

A: 在文本查询上快 40%-140%,向量搜索上快 2 到 12 倍。

Elasticsearch 和 OpenSearch 查询性能对比有什么区别

Q: 为什么阿里云 OpenSearch 和 AWS OpenSearch 不同?

A: 阿里云 OpenSearch 是自研引擎,AWS OpenSearch 是 Elasticsearch 的分支开源项目。

Q: 向量搜索性能差异的主要原因是什么?

A: Elasticsearch 深度优化 Lucene,OpenSearch 集成其他实现且关注范围更广。