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

[智能体-288]:向量数据库查询返回的是词还是向量?

一、核心结论

向量数据库 ANN 相似度检索底层只返回:数据 ID + 相似度分值,既不返回词语、也不默认返回向量。词语(原文)、向量都是附加字段,需要手动配置参数才会附带返回

  • ID:用来关联原始文本(词语);
  • Score:余弦 / L2 相似度;
  • metadata(元数据):存词语、分类等文本信息,勾选才返回;
  • embedding(向量):存储的浮点数组,勾选才返回。

工程标准拆分:

向量库存 ID + 向量 + 标签;

MySQL 存放词语 / 正文,检索拿到 ID 后去 MySQL 查文字

二、数据准备(沿用水果词向量示例)

入库结构(Chroma)

表格

主键 iddocument (词语)metadata 分类embedding (3 维词向量)
1苹果{"type":"水果"}[0.61,0.22,-0.55]
2香蕉{"type":"水果"}[0.58,0.25,-0.52]
3汽车{"type":"交通工具"}[-0.62,0.28,0.35]

python

运行

import chromadb client = chromadb.PersistentClient("./vec_test") coll = client.get_or_create_collection("fruit") # 写入数据 ids = ["1","2","3"] docs = ["苹果","香蕉","汽车"] metas = [{"type":"水果"},{"type":"水果"},{"type":"交通工具"}] embs = [ [0.61,0.22,-0.55], [0.58,0.25,-0.52], [-0.62,0.28,0.35] ] coll.add(ids=ids, documents=docs, metadatas=metas, embeddings=embs) # 查询向量:苹果向量 q_vec = [[0.61,0.22,-0.55]]

场景 1:只查 ID + 相似度(include=[],默认底层结果

python

运行

res1 = coll.query(query_embeddings=q_vec, n_results=2, include=[]) print(res1) # 输出:{'ids': [['1', '2']], 'distances': [[0.0, 0.0018]]}

✅ 返回:ID、距离(相似度) ❌没有词语【苹果、香蕉】,没有向量数组

场景 2:附带返回词语(include=["documents"]

python

运行

res2 = coll.query(query_embeddings=q_vec, n_results=2, include=["documents"]) print(res2["documents"]) # [['苹果', '香蕉']]

开启 documents,才会把入库时保存的词语拿出来。

场景 3:附带返回存储的原始向量(include=["embeddings"]

python

运行

res3 = coll.query(query_embeddings=q_vec, n_results=2, include=["embeddings"]) print(res3["embeddings"]) # [[[0.61,0.22,-0.55],[0.58,0.25,-0.52]]]

单独配置 embeddings,才返回数据库里保存的词向量。

场景 4:全部返回(ID + 分数 + 词语 + 向量 + 标签)

python

运行

res4 = coll.query(query_embeddings=q_vec,n_results=2, include=["documents","embeddings","metadatas"])

三、工业生产真实架构(最常考)

架构拆分

  1. MySQL(关系库):id | word | price | type|id|word|type| |----|----|----| |1 | 苹果 | 水果 | |2 | 香蕉 | 水果 |

  2. 向量数据库:id | embedding|id | 向量 | |----|----| |1|[0.61,0.22,-0.55]| |2|[0.58,0.25,-0.52]|

检索全流程

  1. 用户提问 → 生成提问词向量;
  2. 向量库查询 → 得到 [1,2] 两个 id + 相似度
  3. select word from fruit where id in (1,2)去 MySQL 查出:苹果、香蕉;

向量库永远不存原始词语,只存 ID 和向量,靠 ID 取文字。

四、精简背诵总结

  1. 原生检索结果:ID + 相似度,既无词也无向量;
  2. 要词语:入库存 document/metadata,查询配置开启返回文档;
  3. 要向量:查询参数开启 embedding 字段返回;
  4. 企业规范:文字存 MySQL,向量存向量库,ID 做关联。
http://www.jsqmd.com/news/960267/

相关文章:

  • 从IEEE 1149.1标准到芯片调试:深入理解JTAG状态机背后的设计哲学
  • USMART:嵌入式实时交互调试组件原理、移植与实战
  • 智慧树网课自动化助手:解放双手的终极学习解决方案
  • 效率提升:告别反复安装mathtype,用快马AI打造个人云端公式库
  • 别再只装主程序了!CARSIM2020第三方驱动与PDF阅读器的安装选择,到底怎么勾选?
  • 电子设计能力五重境界:从功能实现到稳健设计的进阶之路
  • 3分钟解锁《星露谷物语》XNB资源修改:从零到模组大师的终极指南
  • KEGG/GO富集结果展示新思路:桑吉气泡图在单细胞测序与多组学联合分析中的应用实例
  • MuleSoft AI编排:打通LLM与企业系统的能力断层
  • 工程师视角解读《海奥华预言》:用系统思维解析宇宙文明与灵性进化
  • 终极指南:5个关键步骤让你的NVIDIA显卡性能飙升
  • 别再当‘炼丹师’了!用PyTorch和TensorBoard可视化你的CNN,看看模型到底‘看’到了什么
  • 多维聚合数据操作:解耦维度、路径与结果态
  • pandas多维聚合生产实践:从groupby到可运维分析
  • MicroBlaze LWIP项目资源优化实录:中断精简与LUT节省如何为SPI Bootloader腾出空间
  • 深入Linux V4L2异步匹配:从设备树(DTS)配置到驱动probe的完整链路解析
  • Codeforces胡萝卜插件:从数据焦虑到精准预测的浏览器扩展革命
  • 从Google Earth到网页:5分钟看懂Cesium.js如何用WebGL打造3D地图
  • Ansible管理Windows主机避坑实录:从‘No module named winrm’到成功执行win_ping的全流程排错指南
  • Django+Vue双端图书借阅系统源码包(含MySQL数据库脚本与一键部署指南)
  • 从Self-Attention到External Attention:我如何用这个新模块给老CV模型‘续命’
  • S32K144裸机环境下基于SysTick的可配置微秒延时驱动(1μs~1000μs)
  • 地质人必备:TSG软件导入SWIR/TIR光谱数据的保姆级避坑指南(附Excel/CSV模板)
  • [智能体-289]:什么是文本向量?它在向量数据库中存放的格式?内容?常见的操作方法与返回值?
  • KAG vs RAG:结构化知识注入如何提升AI推理可控性
  • 告别工程打架:手把手教你设计DSP双工程跳转框架,防止程序“鬼打墙”
  • 手把手教你用Cadence/Synopsys VIP加速SoC验证(附自研VIP开发避坑指南)
  • Arduino Uno核心芯片Atmega328P熔丝位配置详解:从0xFD与0x05的区别说起
  • 硬件工程师必备:稳压二极管代换手册与实战选型指南
  • 富士通MB91580与MB86R11芯片:HV/EV电机控制与智能座舱显示实战解析