什么是矢量搜索?

已完成

矢量搜索是 AI 搜索中提供的一项功能,用于索引、存储矢量嵌入项,以及从搜索索引中检索这些嵌入项。 可以使用它来为实现检索增强生成 (RAG) 体系结构、相似性和多模态搜索或推荐引擎的应用程序助力。

下面演示了矢量搜索的索引编制和查询工作流。

索引编制和查询工作流的示意图。

矢量查询提供机器学习模型生成的内容的数学表示形式,可用于匹配不同类型源数据的条件。 这消除了基于文本的搜索使用查询意向返回相关结果所存在的限制。

下面是矢量搜索的一些使用场景:

  • 使用 OpenAI 或开源模型对文本进行编码,并使用编码为矢量的查询来检索文档。
  • 对编码图像、文本、视频和音频或这些内容的组合(多模态)进行相似性搜索。
  • 使用多语言嵌入式模型表示不同语言的文档,以查找任何语言的文档。
  • 由于矢量搜索是在字段级别实现的,因此可以从矢量和可搜索文本字段构建混合搜索。 结果将会合并以返回单个响应。
  • 将筛选器应用于文本和数字字段并将其包含在查询中,以减少矢量搜索需要处理的数据。
  • 创建矢量数据库以提供外部知识库或用作长期存储机制。

限制

使用矢量搜索时存在一些限制,应该注意:

  • 需要使用 Azure OpenAI 或类似的开源解决方案提供嵌入项,因为 Azure AI 搜索不会为内容生成这些嵌入项。
  • 不支持客户管理的密钥 (CMK)。
  • 由于存在存储限制,你应该检查服务配额提供的存储量。

注意

如果文档很大,可以考虑将其分块。 若要了解详细信息,请参阅在 AI 搜索中针对矢量搜索解决方案对大型文档进行分块文档。