什么是 Azure AI 搜索?
Azure AI 搜索(以前称为“Azure 认知搜索”)是一个企业就绪的搜索和检索系统,拥有一套全面的高级搜索技术,专为任何规模的高性能应用程序构建。
Azure AI 搜索在 Azure OpenAI 服务和 Azure 机器学习之间提供本机 LLM 集成,在 Azure 上生成基于 RAG 的应用程序时,它是建议使用的首选检索系统。
Azure AI 搜索可用于传统方案和 GenAI 方案。 常见用例包括知识库见解(目录或文档搜索)、信息发现(数据探索)、检索扩充生成 (RAG) 和自动化。
创建搜索服务时,你会使用以下功能:
- 用于 矢量搜索的搜索引擎 和 全文 和 混合搜索 搜索索引
- 丰富的索引,集成了数据分块和矢量化、针对文本的词法分析,以及用于内容提取和转换的可选应用 AI
- 用于矢量查询、文本搜索、混合查询、模糊搜索、自动完成、异地搜索等功能的丰富查询语法
- 使用计分概要文件、矢量查询的量化以及用于控制运行时查询行为的参数进行相关性和查询性能优化
- Azure 规模、安全性和覆盖范围
- 数据层、机器学习层、Azure AI 服务和 Azure OpenAI 级别的 Azure 集成
从体系结构方面来讲,搜索服务位于外部数据存储(包含未编入索引的数据)与客户端应用(向搜索索引发送查询请求并处理响应)之间。
在客户端应用中,搜索体验是使用 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 搜索?
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 门户
可以通过以下四个步骤来实现核心搜索功能的端到端探索:
确定层和区域。 每个订阅只允许一个免费搜索服务。 所有快速入门都可以在免费层级完成。 如需更多容量和功能,则需要有计费层级。
在 Azure 门户中创建搜索服务。
从“导入数据”向导开始。 选择内置示例或受支持的数据源,以迅速创建、加载和查询索引。
使用搜索浏览器作为结束,使用门户客户端来查询刚创建的搜索索引。
使用 API
或者,也可以以原子步骤创建、加载和查询搜索索引:
使用“推送”模型上传内容,以从任意源推送 JSON 文档,或者,如果源数据是受支持的类型,则使用“拉取”模型(索引器)。
使用加速器
或者,尝试解决方案加速器:
“与数据聊天”解决方案加速器可帮助你基于内容创建自定义 RAG 解决方案。
“对话知识挖掘”解决方案加速器可帮助你创建交互式解决方案,以从后期联系中心脚本中提取可操作的见解。
构建自己的 Copilot 解决方案加速器,利用 Azure OpenAI 服务、Azure AI 搜索和 Azure Fabric 创建自定义 Copilot 解决方案。
提示
若要获取有关复杂或自定义解决方案的帮助,请与在 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 规模、可靠性和全球影响力。