【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 传统搜索的核心区别

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

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

相关推荐
野犬寒鸦13 分钟前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL1 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·1 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德1 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫2 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i2 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.2 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
jiunian_cn2 小时前
【Redis】渐进式遍历
数据库·redis·缓存
橙露2 小时前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot
冰暮流星2 小时前
sql语言之分组语句group by
java·数据库·sql