什么是 Azure 认知搜索?

Azure 认知搜索(以前称为“Azure 搜索”)是一个云搜索服务,它为开发人员提供基础结构、API 和工具,用于基于 Web、移动和企业应用程序中的专用异类内容构建丰富的搜索体验。

搜索是将文本呈现给用户的应用的基础,其中常见的场景包括目录或文档搜索,在线零售应用程序,基于专属内容进行数据探索。 创建搜索服务时,将使用以下功能:

  • 一个搜索引擎,用于根据包含用户自有内容的搜索索引进行全文搜索
  • 丰富索引编制、词汇分析以及用于提取和转换内容的可选 AI 扩充
  • 用于文本搜索、模糊搜索、自动完成、地理搜索等的丰富查询语法
  • 通过 REST API 和 Azure SDK 中的客户端库实现的可编程性
  • 数据层、机器学习层和 AI(认知服务)级别的 Azure 集成

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

Azure 认知搜索体系结构

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

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

在搜索服务中

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

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

  • 将异构内容整合成专用的用户定义的搜索索引。

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

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

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

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

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

如何开始使用

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

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

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

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

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

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

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

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

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

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

提示

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

比较搜索选项

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

比较对象 主要区别
Azure 搜索 Microsoft 搜索适用于需要在 SharePoint 中查询内容的经过 Microsoft 365 身份验证的用户。 它作为现成可用的搜索体验提供,由管理员进行启用和配置,能够通过连接器接受来自 Azure 和其他源的外部内容。 如果这描述的是你的场景,则使用 Microsoft 365 的 Azure 搜索是一个值得探索的诱人选项。

相对地,Azure 认知搜索对你定义的索引执行查询,填充你拥有的数据和文档(常常来自多个不同的源)。 Azure 认知搜索具有通过索引器爬取一些 Azure 数据源的功能,但你也可将符合你的索引架构的所有 JSON 文档推送到单个统一的可搜索资源。 你还可自定义索引管道,将机器学习和词法分析器纳入其中。 由于认知搜索被构建为更大型的解决方案中的一个插件组件,因此你可通过任意平台在几乎任意应用中集成搜索功能。
数据库搜索 许多数据库平台都包含内置的搜索体验。 SQL Server 具有全文搜索。 Cosmos DB 及类似技术具有可查询的索引。 在评估结合使用搜索和存储的产品时,确定要采用哪种方式可能颇具挑战性。 许多解决方案同时使用两种:使用 DBMS 进行存储,使用 Azure 认知搜索获取专业搜索功能。

与 DBMS 搜索相比,Azure 认知搜索存储来自不同来源的内容,并提供专用文本处理功能,例如 56 种语言中的语言感知文本处理(词干化、词元化、词形式)。 它还支持拼写错误单词的自动更正、同义词建议评分控制Facet自定义词汇切分。 Azure 认知搜索中的全文搜索引擎基于 Apache Lucene,它是信息检索方面的行业标准。 虽然 Azure 认知搜索以倒排索引的形式持久存储数据,但它不能替代真正的数据存储,建议不要在该容量中使用它。 有关详细信息,请参阅此论坛帖子

资源利用是这个类别的另一个转折点。 索引和一些查询操作通常是计算密集型的。 将搜索从 DBMS 卸载到云中的专用解决方案可以节省用于事务处理的系统资源。 此外,通过将搜索外部化,可以根据查询量轻松调整规模。
专用搜索解决方案 假设已决定使用全频谱功能进行专用搜索,则需要在本地解决方案或云服务之间进行最终的分类比较。 许多搜索技术提供对索引和查询管道的控制、对更丰富查询和筛选语法的访问、对设置级别和相关性的控制以及自导智能搜索功能。

如果想要获得一个开销和维护工作量极少且规模可调的统包解决方案,则云服务是适当的选择。

在云范式内,多个提供程序会提供相当的基线功能,以及全文搜索、地理空间搜索,并且能够处理搜索输入中一定程度的模糊性。 通常,它是一项专用功能,或者是 API、工具以及用于确定最匹配项的管理功能的易化和总体简化。

在所有云提供程序中,对于主要依赖于信息检索搜索和内容导航的应用,Azure 认知搜索在处理 Azure 上的内容存储和数据库的全文搜索工作负荷方面最为强大。

主要优势包括:

  • 索引层的数据集成(爬网程序)。
  • 机器学习和 AI 与 Azure 认知服务集成,如果需要使非可搜索内容成为全文可搜索,则会很有帮助。
  • 与 Azure Active Directory 的安全集成,以获得信任连接,并且与 Azure 专用链接集成,以支持无 Internet 方案中搜索索引的专用连接。
  • 56 种语言的语言和自定义文本分析。
  • 完整搜索体验:丰富的查询语言、相关性优化、分面、自动完成查询和建议的结果,以及同义词。
  • Azure 可伸缩性、可靠性和世界一流的可用性。

在我们的所有客户中,能够运用 Azure 认知搜索中最广泛功能的客户包括在线目录、业务线程序以及文档发现应用程序。