Skip to content

什么是向量数据库?#

向量数据库将信息存储为数字:

向量数据库是一种将数据存储为高维向量的数据库类型,这些向量是特征或属性的数学表示。(来源

这使得快速准确的相似性搜索成为可能。使用向量数据库时,您无需使用传统数据库查询,而是可以根据语义和上下文含义搜索相关数据。

简化示例#

向量数据库可以存储句子"n8n 是一个可以自托管的开源自动化工具",但它不是以文本形式存储,而是存储一个表示其特征的维度数组(0到1之间的数字)。这并不意味着将句子中的每个字母转换为数字,而是向量数据库中的向量描述了该句子。

假设在向量存储中,0.1 表示 自动化工具0.2 表示 开源0.3 表示 可自托管。您可能会得到以下向量:

句子 向量(维度数组)
n8n 是一个可以自托管的开源自动化工具 [0.1, 0.2, 0.3]
Zapier 是一个自动化工具 [0.1]
Make 是一个自动化工具 [0.1]
Confluence 是一个可以自托管的维基工具 [0.3]

此示例极度简化

实际应用中,向量要复杂得多。一个向量的大小可以从几十到几千个维度不等。维度与单个特征之间不存在一一对应关系,因此您无法将单个维度直接转换为单一概念。此示例仅提供近似的心智模型,而非真实的技术理解。

展示相似性搜索的强大功能#

Qdrant 提供了向量搜索演示来帮助用户理解向量数据库的强大之处。美食发现演示展示了向量存储如何基于视觉相似性匹配图片。

该演示使用来自外卖服务的数据。用户可以对菜品照片点赞或点踩,应用程序会根据菜品外观推荐更多相似的餐食。用户还可以选择查看配送范围内的餐厅结果。(来源)

如需完整技术细节,请参考 Qdrant demo-food-discovery GitHub 仓库

嵌入模型、检索器、文本分割器和文档加载器#

向量数据库需要配合其他工具使用:

  • 文档加载器和文本分割器:文档加载器负责导入文档和数据,并为嵌入做准备。文档加载器可以使用文本分割器将文档分割成块。
  • 嵌入模型:这些工具负责将数据(文本、图像等)转换为向量,并将向量转换回原始数据。请注意,n8n 仅支持文本嵌入。
  • 检索器:检索器从向量数据库中获取文档。您需要将其与嵌入模型配对使用,将向量转换回数据。