Azure AI 搜索(以前称为“Azure 认知搜索”)在传统和对话式搜索应用程序中针对用户拥有的内容提供大规模的安全信息检索。
关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。
一、什么是Azure AI搜索
信息检索是任何显示文本和矢量的应用程序的基础。 常见方案包括目录或文档搜索、数据浏览,以及越来越多的基于专有基础数据的聊天式搜索形式。 创建搜索服务时,将使用以下功能:
- 通过搜索索引进行[全文]和[矢量搜索]的搜索引擎
- 丰富的索引,[集成了数据分块和矢量化(预览版)]、针对文本的[词法分析],以及用于内容提取和转换的[可选 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、描述图像、推理结构、翻译文本等操作的技能。 还可以附加执行[数据分块和矢量化]的技能。
-
当客户端应用将查询请求发送到搜索服务并处理响应时,索引中填充了可搜索的内容后,就会发生[查询]。 所有查询均在控制的搜索索引上执行。
[语义排名]是查询执行的扩展。 语义搜索对搜索结果处理增加了语言理解,将在语义上最相关的结果提升至顶部。
三、为什么使用 Azure AI 搜索?
Azure AI 搜索非常适合以下应用方案:
-
搜索与 Internet 隔离的矢量和文本内容。
-
将异构内容整合到由矢量和文本组成的用户定义索引和填充的搜索索引中。
-
为生成式 AI 和 RAG 应用[集成数据分块和矢量化]
-
在文档级别[应用精细访问控制]
-
将索引编制和查询工作负载分散到专用的搜索服务。
-
轻松实现搜索相关的功能:相关性优化、分面导航、筛选器(包括地理空间搜索)、同义词映射和自动完成。
-
将 Azure Blob 存储或 Azure Cosmos DB 中存储的大型无差别文本、图像文件或应用程序文件转换为可搜索的区块。 这是通过[认知技能] (可从 Azure AI 添加外部处理) 在编制索引期间实现的。
-
添加语言或自定义文本分析。 如果你使用非英语内容,则 Azure AI 搜索支持 Lucene 分析器和 Microsoft 的自然语言处理器。 还可以配置分析器以实现原始内容的专业处理,例如筛选出标注字符,或识别并保留字符串中的模式。
有关特定功能的详细信息,请参阅 [Azure AI 搜索的功能]
四、如何开始使用
在 Azure 门户中使用:功能通过简单的 [REST API]或 Azure SDK(如 [Azure SDK for .NET])公开。 Azure 门户支持通过用于原型制作以及查询索引和技能组的工具进行服务管理和内容管理。
可以通过以下四个步骤来实现核心搜索功能的端到端探索:
-
[确定层]和区域。 每个订阅只允许一个免费搜索服务。 所有快速入门都可以在免费层级完成。 如需更多容量和功能,则需要有计费层级。
-
在 Azure 门户中[创建搜索服务]。
-
[从“导入数据”向导开始]。 选择内置示例或受支持的数据源,以迅速创建、加载和查询索引。
-
[使用搜索浏览器作为结束],使用门户客户端来查询刚创建的搜索索引。
或者,也可以以原子步骤创建、加载和查询搜索索引:
-
使用门户、[REST API]、[.NET SDK]或其他 SDK[创建搜索索引]。 索引架构决定了可搜索内容的结构。
-
使用[“推送”模型]上传内容,以从任意源推送 JSON 文档,或者,如果源数据是[受支持的类型],则使用[“拉取”模型(索引器)]。
-
使用门户 [REST API]、[.NET SDK]或其他 SDK 中的[搜索资源管理器][查询索引]。
五、比较各个搜索选项
客户常常询问 Azure AI 搜索与其他搜索相关解决方案有何不同。 下表总结主要区别。
比较对象 | 主要区别 |
---|---|
Microsoft Search | [Microsoft 搜索]适用于需要在 SharePoint 中查询内容的经过 Microsoft 365 身份验证的用户。 它是现成可用的搜索体验,由管理员进行启用和配置,能够通过连接器接受来自 Microsoft 和其他来源的外部内容。 |
相对地,Azure AI 搜索对你定义的索引执行查询,填充你拥有的数据和文档(常常来自多个不同的源)。 Azure AI 搜索具有通过[索引器]取一些 Azure 数据源的功能,但你也可将符合你的索引架构的所有 JSON 文档推送到单个统一的可搜索资源。 你还可自定义索引管道,将机器学习和词法分析器纳入其中。 由于 Azure AI 搜索构建为更大型的解决方案中的一个插件组件,因此你可通过任意平台在几乎任意应用中集成搜索功能。 |
|
| 必应 | [必应系列的搜索 API]在 Bing.com 上搜索索引,以匹配你提交的搜索词。 索引从 HTML、XML 和公共网站上的其他 Web 内容生成。 [必应自定义搜索]构建于同一基础之上,针对 Web 内容类型提供相同的爬网技术,范围覆盖单个网站。
在 Azure AI 搜索中,定义搜索索引并使用你的内容填充此索引。 可以使用[索引器]或将任何符合索引的 JSON 文档推送到搜索服务来控制数据引入。
|
| 数据库搜索 | 许多数据库平台都包含内置的搜索体验。 SQL Server 具有[全文搜索]。 Azure Cosmos DB 及类似技术具有可查询的索引。 在评估结合使用搜索和存储的产品时,确定要采用哪种方式可能颇具挑战性。 许多解决方案同时使用两种:使用 DBMS 进行存储,使用 Azure AI 搜索获取专业搜索功能。
与 DBMS 搜索相比,Azure AI 搜索存储来自不同来源的内容,并提供专用文本处理功能,例如 [56 种语言]中的语言感知文本处理(词干化、词元化、词形式)。 它还支持拼写错误单词的自动更正、[同义词]、[建议]、[评分控制]、[Facet] 和[自定义词汇切分]。 Azure AI 搜索中的[全文搜索引擎]基于 Apache Lucene,它是信息检索方面的行业标准。 虽然 Azure AI 搜索以倒排索引的形式持久存储数据,但它不能替代真正的数据存储,建议不要在该容量中使用它。 有关详细信息,请参阅此论坛帖子。
资源利用是这个类别的另一个转折点。 索引和一些查询操作通常是计算密集型的。 将搜索从 DBMS 卸载到云中的专用解决方案可以节省用于事务处理的系统资源。 此外,通过将搜索外部化,可以根据查询量轻松调整规模。
|
| 专用搜索解决方案 | 假设已决定使用全频谱功能进行专用搜索,则需要在本地解决方案或云服务之间进行最终的分类比较。 许多搜索技术提供对索引和查询管道的控制、对更丰富查询和筛选语法的访问、对设置级别和相关性的控制以及自导智能搜索功能。
如果想要获得一个开销和维护工作量极少且规模可调的统包解决方案,则云服务是适当的选择。
在云范式内,多个提供程序会提供相当的基线功能,以及全文搜索、地理空间搜索,并且能够处理搜索输入中一定程度的模糊性。 通常,它是一项[专用功能],或者是 API、工具以及用于确定最匹配项的管理功能的易化和总体简化。
|
在所有云提供程序中,对于主要依赖于信息检索搜索和内容导航的应用,Azure AI 搜索在处理 Azure 上的内容存储和数据库的全文搜索工作负荷方面最为强大。
主要优势包括:
- 索引层的数据集成(爬网程序)。
- AI 和机器学习与 Azure AI 服务集成,如果需要使非可搜索内容成为全文可搜索,则会很有帮助。
- 与 Microsoft Entra ID 的安全集成以实现受信任的连接,并与 Azure 专用链接集成以支持非 Internet 方案中到搜索索引的专用连接。
- 56 种语言的语言和自定义文本分析。
- [完整的搜索体验]:丰富的查询语言、相关性优化和语义排名、分面、自动完成查询和建议的结果以及同义词。
- Azure 可伸缩性、可靠性和世界一流的可用性。
在我们的所有客户中,能够运用 Azure AI 搜索中最广泛功能的客户包括在线目录、业务线程序以及文档发现应用程序。
关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。