当前位置: 首页 > news >正文

向量数据库基础夯实:相关概念的详细介绍

向量数据库基础夯实:相关概念的详细介绍

向量数据库的核心功能

对于传统数据库,基本操作包括创建、读取、更新和删除记录。向量数据库的许多操作与此类似,但针对向量的复杂性进行了优化。

索引:HNSW索引与数据传输

在向量数据库中,索引向量类似于在传统数据库中创建条目。然而,这一步对于向量数据库尤为重要。向量需要被以便于搜索的方式进行组织。

HNSW(分层可导航小世界)是一种高效的索引算法,大多数向量数据库都依赖它来组织向量以实现快速搜索。

HNSW 构建了一个多层图,每个向量是一个节点连接表示相似性。较高层次连接大体相似的向量,而较低层次则连接紧密相关的向量,使得搜索随着深入逐渐精确。
在这里插入图片描述
使用HNSW算法索引数据

当运行搜索时,HNSW 从顶部开始,通过跳转层快速缩小搜索范围。随着深入搜索,仅专注于相关向量。

1.1 有效负载索引
🧠 什么是 Qdrant 的「有效负载索引(Payload Index)」?
✅ 先理解几个关键词

术语通俗解释
向量是 chunk 向量化后产生的一组数字(语义表示)
有效负载(Payload)是和这个向量绑定的“非语义信息”或“标签数据”
HNSW是 Qdrant 用来做向量近似检索的算法(Hierarchical Navigable Small World)
索引(Index)是让数据库“查得快”的技术

📦 举个例子说明
假设你把以下三个文档 chunk 向量化后存入 Qdrant:

向量ID向量Payload(元数据)
1[0.13, -0.21, ...]{category: "法律", source: "合同.pdf"}
2[0.91, 0.04, ...]{category: "医疗", source: "病例.docx"}
3[0.72, -0.61, ...]{category: "法律", source: "政策.md"}

如果你现在的用户问题是:

“查找和‘知识产权纠纷’相关的法律文档”

你希望做到两件事:

用“知识产权纠纷”这个问题 → 转成向量 → 找语义上相似的文段(这是 HNSW 处理的)

只返回 category = “法律” 的内容(这是 Payload 过滤处理的)

🟩 那什么是「有效负载索引」?
Qdrant 默认是可以用 Payload 做“过滤”的,比如你可以写:

"filter": {"must": [{ "key": "category", "match": { "value": "法律" } }]
}

但是!为了加速这种过滤条件的执行速度,你需要“为这个字段建一个索引”。

✅ 有效负载索引的作用就是:
⚡ 加速 Payload 的过滤效率,让你在千万级数据中也能快速过滤出想要的那几类。

🔧 怎么用?
你可以在 Python 中给某个字段加上索引:

client.create_payload_index(collection_name="my_docs",field_name="category",field_schema="keyword"  # 告诉 Qdrant 这个是用来匹配的字段
)

这相当于告诉 Qdrant:
“以后在用 category 这个字段过滤数据的时候,请提前建立索引,加快匹配速度。

2. 搜索:近似最近邻(ANN)搜索
相似性搜索允许你按意义进行搜索。例如,查找唤起相同情感的类似歌曲、匹配艺术构想的图像,甚至探索文本中的情感模式。
在这里插入图片描述
相似单词的分组

工作原理是,当用户向数据库查询时,查询也会被转换成一个向量。算法快速识别图中最可能包含与查询向量最近的区域

搜索逐步向下进行,逐渐缩小范围到更相关的向量。当在底层找到最接近的向量时,这些点会被翻译回实际数据,表示你的最高分文档。

3. 更新向量:实时与批量调整
数据是动态的,向量也不例外。保持向量的最新状态对于搜索的相关性至关重要。
实时更新: 当需要立即调整向量时,Qdrant 提供了高效的实时修改功能:
批量更新: 对于大规模更改(如在模型更新后重新索引向量),批量更新可以在一个操作中更新多个向量,而不会影响搜索性能:
4. 删除向量:管理过时和重复数据
高效的向量管理是保持搜索准确性和数据库精简性的关键。删除表示过时或不相关数据的向量(如过期产品、旧新闻文章或归档用户档案),可以帮助保持性能和相关性。
在 Qdrant 中,删除向量非常简单,只需指定向量的 ID:

密集向量与稀疏向量

密集向量与稀疏向量

理解向量的基本概念后,接下来要了解两种主要的向量类型:密集向量(Dense Vectors)和稀疏向量(Sparse Vectors)。

1. 密集向量

密集向量几乎每个元素都包含信息。向量中的每个数值都贡献了数据的语义意义、关系和细微差别。

例如,这句“我爱向量相似性”的密集向量表示可能如下所示:
在这里插入图片描述

密集向量的表示

每个数字都有权重,所有数字共同传递了句子的整体意义。因此,它们更适合识别上下文相似的内容,即使字词完全不匹配。

2. 稀疏向量

稀疏向量则更注重要点。在稀疏向量中,大量元素是零。只有在某些特征或标记存在时,才会赋值非零值。

例如,“我爱向量相似性”被分解为标记(tokens)后,通过标记化(tokenization)每个标记分配一个唯一的ID,生成如下稀疏向量:

{   193: 0.04,   9182: 0.12,   15012: 0.73,   6731: 0.69,   454: 0.21   
}

稀疏向量特别适用于关键词搜索或元数据过滤,例如检查特定标记是否存在,而无需捕捉完整的意义或上下文。

项目稀疏向量(Sparse)密集向量(Dense)
✅ 核心思想词有没有出现?出现几次?整体语义相似程度
📐 向量维度非常高(10,000+)较低(256~1536)
🔢 值的分布大多数是 0大多数是非零实数
📖 可解释性强(某个词在哪个维度)弱(每个维度不代表具体词)
🔍 匹配方式精确关键词匹配模糊语义匹配
🧠 适合任务关键词搜索、精准查找语义理解、模糊检索
🔄 模型例子TF-IDF、BM25BERT、bge、E5、OpenAI Ada
🧰 检索方式倒排索引、布尔查询向量近似搜索(ANN)
🔗 向量库支持Elasticsearch、VESPAFAISS、Qdrant、Pinecone

混合搜索的优势

有时仅靠上下文还不够,需要同时具有精确匹配能力。密集向量非常适合基于数据的上下文或意义检索结果,而稀疏向量则在需要关键词或特定属性匹配时表现优异。

混合搜索允许同时利用两者的优势,实现更相关且经过过滤的搜索。

例如,Qdrant 使用归一化和融合技术来将多种搜索方法的结果结合起来。常见的融合方法是互惠排名融合(RRF),它结合了不同方法的结果,并将同时被两种方法高度评价的项优先列出。

http://www.dtcms.com/a/318469.html

相关文章:

  • 淘宝/天猫商品详情API详解(tb.item_get)
  • 一文读懂:什么是CLIP
  • 分布式存储 Ceph 的演进经验 · SOSP 2019
  • 【Web安全】csrf、ssrf和xxe的区别
  • GPT-OSS-20B vs Qwen3-14B 全面对比测试
  • 【大模型系列】gpt-oss系列模型初探
  • ACL 2025 Oral|Evaluation Agent:面向视觉生成模型的高效可提示的评估框架
  • 服务器重启后mysql5.7启动失败问题
  • MySql_忘记了root密码怎么办
  • win服务器系统10060问题解决
  • Kali Linux虚拟机安装和中文配置详细教程(2025版)
  • Sklearn 机器学习 数据聚类 DBSCAN聚类算法的异常点
  • MicrochipSam9x60 PIO寄存器操作流程
  • TypeScript 元组类型精简知识点
  • 网络拨测和业务拨测是什么意思
  • 【Create my OS】8 文件系统
  • 【Go】新版GORM自动字段映射规则
  • 基于深度学习的医学图像分析:使用Diffusion Models实现医学图像生成
  • word2vector细致分解(CBOW, SKIP_GRAM, 层次soft Max, 负采样)
  • 8月6日星期三今日早报简报微语报早读
  • 机器学习 朴素贝叶斯
  • 园区误报率↓79%!陌讯多模态融合算法在智慧环卫越界识别的工程实践
  • 防火墙及firewall工具详解
  • AI增强的软件测试工具
  • 解决pytorch-lightning1.6.0安装时自动下载最新的pytorch方法
  • 《深入浅出Embedding》这本书
  • 高等数学(工本)----00023 速记宝典
  • <2> Elasticsearch大规模数据迁移实战:从内存暴涨到优化策略
  • 令牌桶限流算法
  • 《动手学深度学习》读书笔记—9.3深度循环神经网络