什么是矢量搜索?
矢量搜索是 AI 搜索中提供的一项功能,用于索引、存储矢量嵌入项,以及从搜索索引中检索这些嵌入项。 可以使用它来为实现检索增强生成 (RAG) 体系结构、相似性和多模态搜索或推荐引擎的应用程序助力。
下面演示了矢量搜索的索引编制和查询工作流。
矢量查询提供机器学习模型生成的内容的数学表示形式,可用于匹配不同类型源数据的条件。 这消除了基于文本的搜索使用查询意向返回相关结果所存在的限制。
何时使用矢量搜索
下面是矢量搜索的一些使用场景:
- 使用 OpenAI 或开源模型对文本进行编码,并使用编码为矢量的查询来检索文档。
- 对编码图像、文本、视频和音频或这些内容的组合(多模态)进行相似性搜索。
- 使用多语言嵌入式模型表示不同语言的文档,以查找任何语言的文档。
- 由于矢量搜索是在字段级别实现的,因此可以从矢量和可搜索文本字段构建混合搜索。 结果将会合并以返回单个响应。
- 将筛选器应用于文本和数字字段并将其包含在查询中,以减少矢量搜索需要处理的数据。
- 创建矢量数据库以提供外部知识库或用作长期存储机制。
限制
使用矢量搜索时存在一些限制,应该注意:
- 需要使用 Azure OpenAI 或类似的开源解决方案提供嵌入项,因为 Azure AI 搜索不会为内容生成这些嵌入项。
- 不支持客户管理的密钥 (CMK)。
- 由于存在存储限制,你应该检查服务配额提供的存储量。
注意
如果文档很大,可以考虑将其分块。 若要了解详细信息,请参阅在 AI 搜索中针对矢量搜索解决方案对大型文档进行分块文档。