向量数据库原理及选型

向量数据库

  • 什么是向量
  • 什么是向量数据库
    • 原理
    • 应用场景
  • 向量数据库的选型
    • 主流向量数据库介绍
    • 向量数据库对比
      • 主流向量数据库对比表
    • 选型建议

什么是向量

向量是一组有序的数值,表示在多维空间中的位置或方向。向量通常用一个列或行的数字集合来表示,这些数字按顺序排列。

在向量数据库中,向量(Vector) 是一种数学表示形式,用于将数据(如文本、图像、音频等)转换为高维空间中的数值化特征。每个向量由一组有序的数值(浮点数)组成,这些数值描述了数据在多维空间中的位置和特征,使得计算机可以通过数学运算(如计算距离或相似度)来比较和分析数据之间的关系。
在这里插入图片描述

什么是向量数据库

向量数据库(Vector database)、向量存储向量搜索引擎是一种能够存储向量(固定长度的数值列表)及其他数据项的数据库。向量数据库通常实现一种或多种近似最近邻(Approximate Nearest Neighbor,ANN)算法,使用户可以使用查询向量搜索数据库,以检索最匹配的数据库记录。
在这里插入图片描述
通俗的来说,例如你想喝一杯“类似摩卡(向量[12,13,19,8,9])但苦味更少”的咖啡:

  1. 传统菜单:只能按名称选(“摩卡在A10单元格”)。

  2. 向量数据库:

    • 每款咖啡用5个数字编码特征(如[甜度, 苦度, 浓度, 奶香, 温度])。

    • 计算所有咖啡与摩卡的“数字距离”,秒推最接近的(如[10,9,18,9,8]的焦糖拿铁)。

原理

1. 向量表示:

  • 数据(文本、图像、音频等)通过嵌入模型(如BERT、ResNet)转换为高维向量(通常数百到数千维),这些向量捕捉了数据的语义或特征信息。

2. 相似度计算:

  • 使用距离度量(如余弦相似度、欧氏距离)量化向量间的相似性。相似度越高,数据相关性越强。

3.高效索引与检索:

  • 索引结构:采用树结构(KD-Tree)、哈希(局部敏感哈希,LSH)或图索引(HNSW)加速搜索。

  • 近似最近邻(ANN)算法:如FAISS、ScaNN,牺牲少量精度换取高速搜索,适合大规模数据。

  • 分布式架构:通过分片和并行计算(如Elasticsearch的分布式检索)提升扩展性。

4.数据管理:

  • 支持增删改查操作,部分系统提供持久化存储和事务支持,但通常优先考虑性能而非强一致性。

应用场景

  1. 增强检索(RAG):

    • 结合大语言模型(LLM),从向量数据库中检索上下文信息,提升生成内容的准确性。
  2. 推荐系统:

    • 示例:电商平台根据用户行为向量推荐相似商品。

    • 技术:匹配用户向量与物品向量,计算Top-K相似结果。

  3. 多媒体检索:

    • 图像/视频检索:以图搜图(如Google Images)、视频片段匹配。

    • 音频检索:通过哼唱片段查找歌曲。

  4. 自然语言处理:

    • 语义搜索:用自然语言查询匹配相关文档(如ChatGPT的知识检索)。

    问答系统:从知识库中检索与问题语义相近的答案。

  5. 生物信息学:

    • 基因序列比对:通过向量化DNA序列快速查找相似片段。

    • 蛋白质结构预测:比对蛋白质特征向量。

  6. 异常检测:

    • 金融风控:检测与正常交易模式偏离的异常向量。

    • 工业物联网:识别设备传感器数据中的异常模式。

向量数据库的选型

主流向量数据库介绍


  1. Weaviate
    • 简介:开源/托管的多模态数据库,支持向量与图数据混合存储,内置NLP模型,适用于语义搜索和知识图谱。

    • 亮点:语义搜索、多模态扩展、GraphQL接口。

    • 场景:知识管理、内容推荐、复杂语义查询。

      https://github.com/weaviate/weaviate
      在这里插入图片描述


  1. Qdrant
    • 简介:高性能开源向量数据库,基于Rust实现,支持高效过滤查询和混合检索,适合低延迟场景。

    • 亮点:Rust驱动性能、强过滤能力、轻量级部署。

    • 场景:实时推荐、AI实验室实验、高并发检索。

    • https://github.com/qdrant/qdrant

    • https://qdrant.tech/
      在这里插入图片描述


  1. Milvus
    • 简介:企业级开源向量数据库,支持分布式架构和多种索引算法,专为大规模向量搜索设计。

    • 亮点:可扩展性强、混合查询(向量+标量)、成熟生态。

    • 场景:电商推荐、图像检索、PB级数据处理。

    • https://github.com/milvus-io/milvus

    • https://milvus.io/zh
      在这里插入图片描述


  1. MyScale
    • 简介:全托管云原生数据库,支持SQL与向量混合查询,集成OLAP实时分析能力。

    • 亮点:SQL兼容、分析+检索一体化、云托管免运维。

    • 场景:实时数据分析+搜索、企业级云服务。

    • https://github.com/myscale/myscaledb

    • https://myscale.com/docs/zh/overview/
      在这里插入图片描述


  1. pgvector
    • 简介:PostgreSQL轻量级扩展,为PG生态提供向量支持,适合小型项目快速集成。

    • 亮点:无缝兼容PG、简单易用、低成本。

    • 场景:已有PG系统的向量增强、轻量级RAG应用。

    • https://github.com/pgvector/pgvector
      在这里插入图片描述


  1. Chroma

    • 简介:轻量级开源向量库,专注AI应用集成(如LangChain),简化开发流程。

    • 亮点:API极简、快速实验、专注RAG场景。

    • 场景:小型LLM项目、开发者原型验证。

      https://github.com/chroma-core/chroma?tab=readme-ov-file
      在这里插入图片描述


  1. OpenSearch

    • 简介:开源搜索引擎(AWS维护),通过插件支持向量搜索,兼容Elasticsearch生态。

    • 亮点:混合搜索(文本+向量)、ES生态迁移友好。

    • 场景:AWS环境下的多模态搜索、日志分析增强。

    • https://opensearch.org/docs/latest/

    在这里插入图片描述


  1. TiDB Vector
    • 简介:TiDB的向量扩展,结合HTAP能力,支持事务与分析混合负载。

    • 亮点:事务+向量、分布式架构、企业级扩展。

    • 场景:金融风控、实时分析+检索一体化。

    • https://github.com/pingcap/tidb

    • https://tidb.net/
      在这里插入图片描述


  1. Elasticsearch
    • 简介:成熟开源搜索引擎,通过插件支持向量功能,适合混合搜索场景。

    • 亮点:全文检索+向量、生态完善、企业级支持。

    • 场景:日志分析增强、多模态内容平台。

    • https://www.elastic.co/cn/elasticsearch
      在这里插入图片描述


  1. Couchbase
    • 简介:NoSQL文档数据库,通过插件或自定义实现向量搜索,灵活性高。

    • 亮点:多模态数据管理、高扩展性、企业级存储。

    • 场景:金融、零售行业的多模态数据管理。

    • https://www.couchbase.com/
      在这里插入图片描述


  1. VikingDB
    • 简介:VikingDB 是字节内部的向量数据库产品,支持大规模、高性能、多场景的向量检索,是 AI 原生应用程序的基础设施。

    • 亮点:专注于高性能向量搜索的数据库,高性能,低延迟。

    • 场景:腾讯云用户的图像/视频搜索、广告推荐。

    • https://www.volcengine.com/docs/84313/1254442


  1. AnalyticDB
    • 简介:阿里云向量引擎,支持实时分析与向量检索,针对电商场景优化。

    • 亮点:实时分析、多模态搜索、阿里云无缝集成。

    • 场景:电商推荐、用户行为分析、云原生企业应用。

    • https://help.aliyun.com/zh/analyticdb/


向量数据库对比

主流向量数据库对比表

名称开源/托管核心特性索引算法分布式支持语言支持云原生适用场景社区/生态优缺点
Weaviate开源/托管向量搜索、混合搜索、模块化、可扩展HNSW, IVF✔️Python, GraphQL✔️知识图谱、语义搜索活跃社区,商业托管版优点:开源、可扩展、支持混合搜索、社区丰富;缺点:大型部署需资源较多
Qdrant开源高性能向量相似搜索、过滤功能HNSW✔️Python, Rust, REST✔️高吞吐低延迟场景社区增长快,文档完善优点:高性能、易部署;缺点:生态扩展性较弱
Milvus开源可扩展的向量数据库、分布式部署HNSW, IVF, ANNOY✔️Python, Java, Go等✔️大规模向量搜索、推荐系统活跃社区,Zilliz商业支持优点:高度可扩展;缺点:运维复杂度高
MyScale开源/托管基于ClickHouse的向量搜索支持HNSW, IVF✔️SQL, Python✔️实时分析+向量检索MyScale官方支持优点:高性能、SQL兼容;缺点:社区支持有限
pgvector开源PostgreSQL的向量相似搜索扩展IVFFlat, HNSWSQL, Python小型项目、PG生态集成PostgreSQL社区优点:无缝集成PG;缺点:不支持分布式
Chroma开源专为AI应用设计的嵌入式数据库HNSWPython小型项目、LLM增强检索(RAG)新兴社区,简化API优点:易用性高;缺点:扩展性有限
OpenSearch开源搜索和分析套件,支持向量搜索插件HNSW, IVF✔️REST, Java, Python✔️混合搜索(文本+向量)AWS主导,社区中等优点:兼容ES生态;缺点:向量功能需插件
TiDB Vector开源TiDB的向量扩展,支持混合工作负载HNSW, IVF✔️SQL, Python✔️企业级混合负载场景PingCAP社区支持优点:事务+向量;缺点:功能较新
Elasticsearch开源/托管分布式搜索和分析引擎,支持向量插件HNSW✔️REST, Java, Python✔️混合搜索(文本+向量)成熟生态,企业级支持优点:生态强大;缺点:向量非原生
Couchbase部分开源/托管NoSQL文档数据库,原生向量支持有限自定义✔️Java, Python, .NET✔️多模态数据管理企业级支持优点:灵活数据模型;缺点:向量需额外开发
VikingDB开源专注于高性能向量搜索的数据库HNSW✔️Python, REST✔️云原生企业级搜索腾讯云官方支持优点:高性能、低延迟;缺点:社区支持较少
AnalyticDB托管云原生数据仓库,支持大规模数据分析HNSW✔️SQL, Python✔️电商推荐、多模态搜索阿里云官方支持优点:PB级数据处理;缺点:非开源

关键对比维度说明

  1. 索引算法:

    • HNSW:平衡速度与精度,适合大多数场景。

    • IVF:适合大规模数据分片检索。

    • IVFFlat:精度高但速度较慢(pgvector默认)。

  2. 分布式支持:

    • ✔️:适用于企业级海量数据(如Milvus、TiDB Vector)。

    • ❌:适合单机或轻量级场景(如Chroma、pgvector)。

  3. 云原生:

    • 托管服务(如VikingDB、AnalyticDB)无需运维,适合快速部署。

    • 开源方案(如Milvus、Qdrant)需自行搭建集群。

  4. 适用场景:

    • 大规模检索:Milvus、MyScale、TiDB Vector。

    • 轻量级集成:Chroma、pgvector。

    • 云服务:VikingDB(腾讯)、AnalyticDB(阿里)、MyScale。

选型建议

  1. 企业级大规模场景:Milvus、TiDB Vector(兼顾事务与分析)。

  2. 云服务托管:VikingDB(腾讯)、AnalyticDB(阿里)、MyScale。

  3. 轻量级开发:Chroma(RAG)、pgvector(PG生态)。

  4. 高性能与过滤:Qdrant(Rust驱动)、Weaviate(语义+图混合查询)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/34717.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IE代理切换器v1.2免费版

虽然IE浏览器已经过时了,但很多其他浏览器,比如谷歌浏览器的代理服务器设置,都还是基于IE浏览器来进行设置的,如果你的工作场景需要切换不同的代理服务器来访问网络,那这款工具适合你,目前该工具可以实现IE…

模运算的艺术:从基础到高阶的算法竞赛应用

在算法竞赛中,模运算(取模运算)是一个非常重要的概念,尤其在处理大数、防止溢出、以及解决与周期性相关的问题时。C 中的模运算使用 % 运算符,但它的行为和使用场景需要特别注意。 1. 模运算的基本概念 模运算是指求一…

SpringBoot前后端不分离,前端如何解析后端返回html所携带的参数

有一个SpringBoot实现的前后端不分离项目,当前端跳转某个界面时,比如下面的菜单树按钮,后端在返回页面menuTree.html时,还携带了一个参数角色roleId,以便打开菜单树,还要根据这个角色查询对应的分配授权的菜…

操作系统八股文整理(一)

操作系统八股文整理 一、进程和线程的区别二、进程与线程的切换过程一、进程切换进程切换的步骤: 二、线程切换线程切换的步骤: 三、进程切换与线程切换的对比四、上下文切换的优化 三、系统调用一、系统调用的触发二、从用户空间切换到内核空间三、执行…

卷积神经网络(CNN)之 EfficientNet

在深度学习领域,模型的计算效率与性能之间的平衡一直是一个核心挑战。随着卷积神经网络(CNN)在图像分类、目标检测等任务中取得显著成果,模型的复杂度和计算需求也急剧增加。2019年,Google Research 提出的 EfficientN…

leetcode0031 下一个排列-medium

1 题目: 下一个排列 官方标定难度:中等 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一…

Suno的对手Luno:AI音乐开发「上传参考音频 - 方式二:通过URL的方式」 —— 「Luno Api系列|AI音乐API」第12篇

导读 今天来看下Luno Api的上传参考音频 - 方式一:通过二进制流的方式。 参考文件,主要是用于在创作的过程中,希望AI参考这个音乐的曲风和声音来进行创作, 这一节看看如何直接使用url的方式进行实现。 申请和使用 「已经有API…

【开源+代码解读】Search-R1:基于强化学习的检索增强大语言模型框架3小时即可打造个人AI-search

大语言模型(LLMs)在处理复杂推理和实时信息检索时面临两大挑战:知识局限性(无法获取最新外部知识)和检索灵活性不足(传统方法依赖固定检索流程)。现有方法如检索增强生成(RAG)和工具调用(Tool-Use)存在以下问题: RAG:单轮检索导致上下文不足,无法适应多轮交互场景…

Blender-MCP服务源码2-依赖分析

Blender-MCP服务源码2-依赖分析 有个大佬做了一个Blender-MCP源码,第一次提交代码是【2025年3月7号】今天是【2025年月15日】也就是刚过去一周的时间,所以想从0开始学习这个代码,了解一下大佬们的开发思路 1-核心知识点 from mcp.server.fas…

【孟德尔随机化】Leave-one-out analysis的异常点,判断

下面Leave-one-out analysis的结果,第一条线代表去掉rs174564的结果,一些文献把这种情况判断为异常点/离群点,我们接下来看看其他结果 散点图的结果,最旁边的就是rs174564,这个SNP的点 在看下RadialMR的结果&#xff0…

【计算机网络】2物理层

物理层任务:实现相邻节点之间比特(或)的传输 1.通信基础 1.1.基本概念 1.1.1.信源,信宿,信道,数据,信号 数据通信系统主要划分为信源、信道、信宿三部分。 信源:产生和发送数据的源头。 信宿:接收数据的终点。 信道:信号的传输介质。 数据和信号都有模拟或数字…

kubernetes|云原生|部署单master的kubernetes 1.25.5版本集群完全记录(使用contained 运行时)

一、 部署目标: kubernetes版本1.19,1.23的前后差异还是比较巨大的,到1.25版本,为了追求高性能,自然还是需要使用containerd,本文将主要讲述在centos7虚拟机下部署kubernetes 1.25.5集群,使用…

DeepSeek+Dify本地部署私有化知识库

1.Windows安装docker Windows安装Docker-CSDN博客 2.安装olloma https://ollama.com/ 安装完成,可以在桌面右下角看到olloma图标 3.安装deepseekR1模型 ollama官网(deepseek-r1),找到deepseek模型 选择合适大小的模型&#xff…

[Linux][经验总结]Ubuntu6.11.0 docker更换镜像源(实操可用的正确方法)

一、前言 关于Ubuntu更换docker镜像源,网上有很多的教程,但在实操中发现,更换的源无法生效——原因是我的docker是在系统安装时,选择附加安装的package的方式安装的。 现将处理过程记录如下。 二、获取镜像源 在网上随便找个几…

NHANES指标推荐:BRI!

文章题目:Association of body roundness index with cardiovascular disease in patients with cardiometabolic syndrome: a cross-sectional study based on NHANES 2009-2018 DOI:10.3389/fendo.2025.1524352 中文标题:心脏代谢综合征患者…

3.水中看月

前言 这篇文章讲解套接字分配IP地址和端口号。这部分内容也相对有些枯燥,但并不难,而 且是学习后续那些有趣内容必备的基础知识(计算机网络基础)。 一、分配给套接字的IP地址与端口号 IP是InternetProtocol(网络协议…

Linux驱动开发-①pinctrl 和 gpio 子系统②并发和竞争③内核定时器

Linux驱动开发-①pinctrl 和 gpio 子系统②并发和竞争③内核定时器 一,pinctrl 和 gpio 子系统1.pinctrl子系统2.GPIO子系统 二,并发和竞争1.原子操作2.自旋锁3.信号量4.互斥体 三,按键实验四,内核定时器1.关于定时器的有关概念1.…

奇安信二面

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…

Python库安装报错解决思路以及机器学习环境配置详细方案

文章目录 概要第三方库gdalpymoltalibmahotasgraphviznltk-datalazypredictscikit-surprisenb_extensionspyqt5-toolsspacy、en_core_web_sm 机器学习GPU-torch安装torch_geometric安装ubuntu安装显卡驱动dlib安装torch-cluster、torch-scatter、torch-sparse和torch-geometric…

Power Apps 技术分享:连接SharePoint列表数据源

前言 在使用Power Apps的时候,使用列表作为数据源是非常方便和经济的,列表创建简单,SharePoint的存储也不像Dataverse需要按照容量付费。 正文 1.我们先在SharePoint中建一个列表,添加一些测试数据,如下图:…