优化向量搜索

发布: (2026年3月3日 GMT+8 17:57)
10 分钟阅读
原文: Dev.to

Source: Dev.to

作者介绍

我是 Mansi Tibude,一名电子与通信工程师。 我在之前的公司担任系统工程师,已在IT行业工作约三年。 我拥有多种技术经验,并始终按时交付成果。 我是一个勤奋且聪明的工作者,能够快速学习新技术并将其应用于构建实时应用。

摘要

向量搜索是一种 AI 驱动的搜索技术,提供比传统文本搜索更高级的功能。它不仅可以检索文本,还能检索音频、视频和图像。

Elasticsearch 相较于其他搜索引擎具有显著优势:它提供 hybrid search,即语义搜索和向量搜索的组合,能够以 10 倍更快 的速度提供更准确的结果。向量搜索返回的是向量数据而非纯文本,这对于以表格形式存储用户搜索非常有利。

我们已经了解了 Elasticsearch 的众多功能以及它与其他搜索引擎的区别,但 Blogathon 挑战要求我们探索如何在内置的 Elasticsearch 引擎中 添加更多功能进行创新——尤其是在使用 ELK 堆栈的 Vector Search、Hybrid Search 和 Semantic Search 领域。

Source:

内容主体

为什么向量、混合和语义搜索很重要

向量、混合和语义搜索在提供符合用户期望的结果方面发挥着重要作用。然而,我们常常需要在提升准确性的同时为搜索查询添加更多功能。在向量搜索中,查询结果以向量形式存储并返回。

关键问题: 我们如何在规模上提升向量搜索,尤其是混合搜索?

扩展策略

  1. 混合扩展 – 结合多种扩展技术。
  2. 垂直扩展 – 为单个节点添加更多资源(CPU、内存、存储)。

向量搜索的工作原理如下:

  • 将文档和查询转换为向量(嵌入)。
  • 存储这些向量以实现高效的向量数学运算。
  • 使用各种匹配函数执行快速相似度计算。

K‑Nearest Neighbor (KNN) 机器学习模型为向量搜索提供动力,而 Retrieval‑Augmented Generation (RAG) 将数据转换为数值向量。重新排序算法随后对结果进行重新排序,以提升相关性。

向量数据库的作用

向量数据库是高维向量的高效存储。其主要优势包括:

  • 可扩展性
  • 索引和搜索性能
  • 混合搜索支持
  • 技术栈集成

向量搜索规范

  • 手动配置
  • 自主嵌入(即时生成嵌入)
  • 对向量进行直接相似度匹配

向量搜索的工作流程:

  1. 嵌入生成 – AI 模型将原始数据编码为嵌入。
  2. 索引 – 将嵌入作为向量进行索引。
  3. 搜索 – 引擎将查询向量与存储的向量匹配,理解上下文以返回相关结果。

向量搜索克服的挑战

  • 语义理解 – 把握查询背后的意图。
  • 多模态能力 – 处理文本、音频、视频和图像。
  • 个性化与推荐 – 为个人用户量身定制结果。

向量数据库概述

向量数据库存储高维向量,并提供以下功能:

  • 可扩展性 – 处理不断增长的数据量。
  • 高效的索引与搜索性能
  • 混合搜索支持(结合关键词和向量查询)
  • 与现有技术栈的无缝集成

Source:

Elasticsearch 向量搜索的扩展

Elasticsearch 可以支持三种主要的搜索类型:

  1. 索引 & 基础搜索
  2. 关键字搜索(例如,通过 Python)
  3. 语义搜索
  4. 向量搜索
  5. 混合搜索

我们的重点是 优化向量搜索。下面是两种主要的扩展方法。

垂直扩展

提升单个 Elasticsearch 节点的资源:

  • 增加 CPU 核心数
  • 使用更快的存储(SSD、NVMe)
  • 实施缓存层
  • 优化处理管道

向量搜索的缓存机制:

  • 存储层缓存 – 在磁盘上缓存已索引的向量。
  • 嵌入缓存 – 存储预先计算好的嵌入向量。
  • 查询层缓存 – 重用相同查询的结果。
  • LLM 输出缓存 – 缓存大语言模型的响应。

其他选项:

  • 部署 TPU 或专用 AI 加速器。
  • 为更低延迟优化机器学习模型。

水平扩展

将工作负载分布到多个节点和分片上:

  • 增加数据节点的数量。
  • 添加分片以分散向量数据。
  • 利用微服务架构来平衡负载。

水平扩展的策略:

  • 节点扩展 – 向集群中添加更多 Elasticsearch 节点。
  • 分片扩展 – 创建更多主分片和副本分片以获得更好的并行度。

Elasticsearch scaling diagram

优化向量搜索可以提升搜索效率,提供更快的结果,并更好地管理从用户交互中收集的数据。

实际应用

Docusign

  • 领域: Intelligent Agreement Management (IAM)
  • 规模: 数百万用户
  • 用例: 快速、语义化检索合同条款、签名及相关文档,支持多种模式(文本、PDF、扫描图像)。

企业创建、管理并分析合同。在引入 IAM 之前,用户需要在多个平台上搜索才能定位协议。

Docusign 与向量搜索

Docusign 使用 Elasticsearch 与向量搜索相结合,处理每天收到的数十亿份新协议,并向客户提供快速的检索结果。

基于 Elasticsearch 技术的向量搜索创新了搜索方式。搜索输入可以是 文本、图像、关键词、音频或视频。我们还可以添加从手写文字和艺术作品(例如绘画)中提取上下文的功能,以理解其含义并返回相关结果。

自然语言处理(NLP)可用于从手写文字和艺术作品中提取上下文,提供既符合需求又相近的检索结果。

优化并为向量搜索添加更多功能

向量搜索的基本设计使用了多种技术,包括语义搜索、向量数据库、Elasticsearch 等。我们可以在向量搜索标准中再添加两个附加功能,以便在搜索时为其他类型的输入提供上下文。

修改后的架构设计

下图展示了修改后的向量搜索架构,现在它可以接受图像、音频、视频、手写体和艺术作品等输入。

Modified Vector Search Architecture

  • 图像、音频和视频 → 使用 K‑Nearest Neighbors (KNN) 进行处理
  • 手写体和艺术作品 → 使用 卷积神经网络 (CNN),作为 NLP 流程的一部分进行处理

结论 / 要点

  • 向量搜索语义搜索 通过高效处理数百万查询,改变了搜索体验。
  • 语义搜索通过整合更丰富的上下文(文本、音频、视频),并比传统搜索引擎更快地提供结果,从而提升了搜索质量。
  • 搜索查询被存储为向量数据,可用于训练机器学习模型。
  • Elasticsearch 不仅革新了搜索标准,还提供了更具上下文的结果。

披露: 本博客是作为 Elastic Blogathon 的一部分提交的。

0 浏览
Back to Blog

相关文章

阅读更多 »

移动开发中最危险的消息

如果你开发移动应用,可能至少见过一次这样的提示:“嘿……构建没有安装”。就这样,你的一天被毁了。你…