什么是 Azure AI 搜索?

Azure AI 搜索(以前称为“Azure 认知搜索”)可在传统和生成式 AI 搜索应用程序中针对用户拥有的内容提供大规模的安全信息检索。

信息检索是任何显示文本和矢量的应用程序的基础。 常见场景包括基于你的专有基础数据进行目录或文档搜索、数据探索,并将查询结果作为提示逐步馈送给对话和 Copilot 搜索。 创建搜索服务时,你会使用以下功能:

从体系结构方面来讲,搜索服务位于外部数据存储(包含未编入索引的数据)与客户端应用(向搜索索引发送查询请求并处理响应)之间。

Azure AI 搜索体系结构

在客户端应用中,搜索体验是使用 Azure AI 搜索中的 API 定义的,可能包括相关性调整、自动完成、同义词匹配、模糊匹配、模式匹配、筛选和排序。

在整个 Azure 平台上,Azure AI 搜索可以以以下方式与其他 Azure 服务集成:以“索引器”(自动从 Azure 数据源引入/检索数据)和“技能组”(引入 Azure AI 服务(例如图像和自然语言处理)中的可消耗 AI)的形式,或者以引入你在 Azure 机器学习中创建的或在 Azure Functions 内包装的自定义 AI 的形式

在搜索服务中

在搜索服务本身,两个主要工作负荷是索引编制和查询 。

  • 编制索引是将内容加载到搜索服务中并使其可供搜索的引入过程。 在内部,入站文本处理为令牌并存储在倒排索引中,入站矢量存储在矢量索引中。 Azure AI 搜索可以编制索引的文档格式为 JSON。 可以上传已汇编的 JSON 文档,或使用索引器检索数据并将其序列化为 JSON。

    应用 AI 通过技能组扩展图像和语言模型的索引。 如果源文档中有图像或大型非结构化文本,你可以附加执行 OCR、分析和描述图像、推理结构、翻译文本等操作的技能。 输出是可以序列化为 JSON 并引入搜索索引的文本。

    技能组也可以在索引编制期间进行数据分块和矢量化。 可以使用附加到 Azure OpenAI 的技能、Azure AI Studio 中的模型目录或附加到任何外部分块和嵌入模型的自定义技能在索引编制期间创建矢量数据。 输出是可以引入搜索索引的分块矢量内容。

  • 当客户端应用将查询请求发送到搜索服务并处理响应时,索引中填充了可搜索的内容后,就会发生查询。 所有查询均在控制的搜索索引上执行。

    集成矢量化还是查询执行的扩展。 如果搜索索引中有矢量字段,则可以提交原始矢量查询或在查询时进行矢量化的文本。

Azure AI 搜索非常适合以下应用方案:

  • 将其用于传统的全文搜索和下一代矢量相似性搜索。 使用利用关键字和相似性搜索强度的信息检索来支持生成式 AI 应用。 使用这两种形式检索最相关的结果。

  • 将异构内容整合到由矢量和文本组成的用户定义索引和填充的搜索索引中。 你可以保持所有权并控制可搜索的内容。

  • 为生成式 AI 和 RAG 应用集成数据分块和矢量化

  • 在文档级别应用精细访问控制

  • 将索引编制和查询工作负荷分散到专用的搜索服务。

  • 轻松实现搜索相关的功能:相关性优化、分面导航、筛选器(包括地理空间搜索)、同义词映射和自动完成。

  • 将 Azure Blob 存储或 Azure Cosmos DB 中存储的大型无差别文本、图像文件或应用程序文件转换为可搜索的区块。 这是通过从 Azure AI 添加外部处理的 AI 技能在编制索引期间实现的。

  • 添加语言或自定义文本分析。 如果使用非英语内容,Azure AI 搜索支持 Lucene 分析器和 Azure 的自然语言处理器。 还可以配置分析器以实现原始内容的专业处理,例如筛选出标注字符,或识别并保留字符串中的模式。

有关特定功能的详细信息,请参阅 Azure AI 搜索的功能

如何开始使用

在 Azure 门户中使用:功能通过简单的 REST API 或 Azure SDK(如 Azure SDK for .NET)公开。 Azure 门户支持通过用于原型制作以及查询索引和技能组的工具进行服务管理和内容管理。

使用 Azure 门户

可以通过以下四个步骤来实现核心搜索功能的端到端探索:

  1. 确定层和区域。 每个订阅只允许一个免费搜索服务。 所有快速入门都可以在免费层级完成。 如需更多容量和功能,则需要有计费层级

  2. 在 Azure 门户中创建搜索服务

  3. 从“导入数据”向导开始。 选择内置示例或受支持的数据源,以迅速创建、加载和查询索引。

  4. 使用搜索浏览器作为结束,使用门户客户端来查询刚创建的搜索索引。

使用 API

或者,也可以以原子步骤创建、加载和查询搜索索引:

  1. 使用门户、REST API.NET SDK 或其他 SDK创建搜索索引。 索引架构决定了可搜索内容的结构。

  2. 使用“推送”模型上传内容,以从任意源推送 JSON 文档,或者,如果源数据是受支持的类型,则使用“拉取”模型(索引器)

  3. 使用门户 REST API.NET SDK 或其他 SDK 中的搜索资源管理器查询索引

使用加速器

或者,尝试解决方案加速器:

提示

若要获取有关复杂或自定义解决方案的帮助,请与在 Azure AI 搜索技术方面具有深厚专业知识的合作伙伴联系

比较各个搜索选项

客户常常询问 Azure AI 搜索与其他搜索相关解决方案有何不同。 下表总结主要区别。

比较对象 主要区别
Azure 搜索 Microsoft 搜索适用于需要在 SharePoint 中查询内容的经过 Microsoft 365 身份验证的用户。 Azure AI 搜索会跨 Azure 和任何 JSON 数据集拉取内容。
必应 Bing API 针对 Bing.com 查询索引以查找匹配字词。 Azure AI 搜索功能搜索使用内容填充的索引。 控制数据引入和架构。
数据库搜索 Azure SQL 具有全文搜索矢量搜索功能。 Azure Cosmos DB 还具有文本搜索矢量搜索功能。 如果需要相关性优化等功能或异类源中的内容,Azure AI 搜索将成为一种有吸引力的替代方法。 资源利用率是另一个转折点。 编制索引和查询属于计算密集型操作。 从 DBMS 卸载搜索会保留用于事务处理的系统资源。
专用搜索解决方案 假设你已决定使用全光谱功能的专用搜索,则需要在搜索技术之间进行最终分类比较。 在所有云提供程序中,对于主要依赖于信息检索搜索和内容导航的应用,Azure AI 搜索在处理 Azure 上内容的矢量、关键字和混合工作负荷方面最为强大。

主要优势包括:

  • 支持矢量和非矢量(文本)索引和查询。 使用矢量相似性搜索,即使不完全匹配搜索词,也可以找到语义上近似于搜索查询内容的信息。 使用混合搜索来获得最佳关键字和矢量搜索。
  • 通过语义排名和计分概要文件进行排名和相关性调整。 查询语法支持术语提升和字段优先级。
  • 在索引层的 Azure 数据集成(爬网程序)。
  • 用于使内容文本和矢量可搜索的转换的 Azure AI 集成。
  • 受信任连接的 Microsoft Entra 安全性,以及无 Internet 方案中专用连接的 Azure 专用链接。
  • 完整搜索体验:采用 56 种语言的语言和自定义文本分析。 分面、自动完成查询和建议的结果以及同义词。
  • Azure 规模、可靠性和全球影响力。