【Dev常识】为什么搜索越来越难用?向量数据库揭开了我多年的困惑!

起因

最近学习AI知识才了解向量数据库,才发现之前自己居然完全没了解过向量数据库。了解了以后解决了我多年的困惑。

本文不会出现任何专有名词和算法,用小白文解释一下存在这么一种技术,我相信很多老技术人和我一样,只听过向量数据库名词,却完全不知道是干嘛用的

关于搜索多年的疑惑

我对搜索的印象还留在Elasticsearch最多了解一些ClickHouse或者基于HDFS的一些技术,但我一直没了解过向量数据库。

近年我发现搜索是越来越难用了,不管是国内的还是国际的一些大厂,搜索总是不合心意,感觉不如多年前,问题到底出在哪我一直都不清楚,我只能不断吐槽这些软件越来越难用了,直到我了解了向量数据库。


什么向量数据库

什么是向量

向量是一个中学数学概念,不复述,复述了也不一定理解。

向量在搜索或推荐中的作用到底是做什么呢?

我们只需要知道现在向量在软件领域的作用就是用来表示一种数据,文字,图片,视频都可以用向量表示

这个向量不是简单的1-5维向量,目前通常使用的是32-2048维的向量。

我们使用某种算法把任意数据(现在流行叫多模态数据)转化为一个向量。那2048个数可以完全解释一个视频么,显然是不行的,但目前的计算能力如果扩充这个长度会出现性能问题,其次AI算法的描述也存在问题,可能不同的数据有的适合512维的,有的适合2048维的,但我们不可能详尽的分库分表,这也是未来AI领域的挑战之一。

向量数据库

向量数据库的核心功能只有3点

  1. 存储向量和向量关联ID
  2. 具备构建向量索引的能力
  3. 基于索引查询向量近似度的查询能力

向量搜索最简单的架构和流程

架构组成

  1. 数据预处理模块

    负责把文字、图片、视频等原始数据转换成向量。比如把一段文字通过算法变成一串数字,把一张图片分解成数字特征。这里通常使用的是向量AI模型去做转化。

  2. 向量存储引擎

    负责保存这些数字向量,并记录每个向量对应的原始数据信息(比如文档ID、图片路径等)。

  3. 索引构建模块

    将存储的向量按照特定规则组织成"索引",类似图书馆的分类目录,方便快速查找。

  4. 查询处理模块

    当用户输入搜索内容时,先将其转换成向量,再通过索引快速匹配相似的向量,最后返回对应的原始数据。这里查询用的向量必须和写入时使用相同的向量模型

流程步骤(举个例子)

假设你要搜索"蓝色圆领毛衣",流程如下:

  1. 输入转换:系统先把"蓝色圆领毛衣"这句话转成一个2048维的向量。
  2. 向量匹配:在数据库中,用这个向量和已存储的商品描述向量做数学计算,找到最相似的前几个向量。
  3. 结果返回:把匹配到的商品信息(如商品ID、图片、价格)展示给你。

对比传统搜索:传统方式可能只匹配关键词"蓝色""圆领",但可能漏掉"深蓝""高领毛衣"这类相关但表述不同的商品,而向量搜索能通过"语义相似度"更精准地找到类似商品。


向量在大模型和RAG当中的应用场景

什么是RAG?

RAG(Retrieval-Augmented Generation,检索增强生成)是让大模型在回答问题时,先从外部数据中找最相关的资料,再结合资料生成答案。向量数据库就是RAG中用来"找资料"的工具。

具体应用场景

1. 智能客服中的问题解答

  • 流程:用户问"我的订单为什么没收到?",大模型先把问题转成向量,通过向量数据库找到最匹配的"订单延迟处理"知识库文档向量,再根据文档内容回答用户。
  • 优势:传统关键词匹配可能只能回答固定问题,但向量搜索能理解"延迟""超时""没送到"等不同说法的相似性。

2. 文档检索与问答系统

  • 流程:公司内部有大量技术文档,用户问"如何重置服务器密码?",系统用向量搜索快速找到相关章节的文档,再生成步骤说明。
  • 优势:传统搜索可能因文档标题不含"重置"这个词而找不到,但向量能通过内容语义匹配到"服务器密码重置指南"。

3. 商品推荐系统

  • 流程:电商系统把用户浏览过的商品向量与数据库中其他商品向量对比,推荐相似或搭配商品(比如买"无线蓝牙耳机"后推荐"降噪耳塞")。
  • 优势:传统推荐可能只基于"同类商品销量",但向量能捕捉"蓝牙耳机+运动耳机"的关联性。

4. 图片/视频搜索

  • 流程:上传一张"红色跑车"图片,系统将其转成向量后,找到数据库中相似的图片或视频(比如某品牌跑车广告)。
  • 优势:传统搜索需要输入关键词"红色""跑车",但向量能直接通过图像特征匹配。

向量搜索 vs 传统搜索的核心区别

场景 传统搜索 向量搜索
用户问"手机没电" 只匹配包含"没电""电量不足"的文档 能理解"充电问题""续航故障"等相似语义
搜索"圆领毛衣" 只找标题或标签含"圆领"的商品 可能匹配"高领但款式类似的毛衣"

总结:向量搜索不是"完全准确",但能通过数学计算理解"模糊的相似性",这正是传统关键词搜索做不到的。虽然目前体验仍有不足,但它是未来处理复杂、多模态数据的必然方向。

相关推荐
七七知享2 小时前
Go 语言编程全解析:Web 微服务与数据库十大专题深度精讲
数据库·web安全·网络安全·微服务·golang·web3·webkit
Faith_xzc3 小时前
Doris vs ClickHouse 企业级实时分析引擎怎么选?
大数据·数据库·clickhouse·数据库开发
m0_748235613 小时前
MySQL 实战 4 种将数据同步到ES方案
数据库·mysql·elasticsearch
曼诺尔雷迪亚兹3 小时前
2025年四川烟草工业计算机岗位备考详细内容
数据结构·数据库·计算机网络·算法
天桥下的卖艺者4 小时前
R语言使用scitable包交互效应深度挖掘一个陌生数据库
数据库·r语言·交互
H.ZWei5 小时前
鸿蒙应用开发—数据持久化之SQLite
数据库·华为·sqlite·harmonyos
jay丿5 小时前
Django ORM 中的 RelatedManager 特殊方法
数据库·django·sqlite
残月只会敲键盘5 小时前
Django中的Cookie与Session使用指南
数据库·python·django·sqlite
Allen Bright5 小时前
【MySQL基础-1】MySQL 用户管理指南:创建用户、修改密码与权限分配
数据库·mysql
半成熟 -5 小时前
mysql下载与安装、关系数据库和表的创建
数据库·mysql