Azure 认知搜索的功能

Azure 认知搜索提供了全文搜索引擎、持久的搜索索引存储、在编制索引期间用来提取更多文本和结构的集成 AI,以及 API 和工具。

下表按类别汇总了功能。 若要详细了解认知搜索与其他搜索技术的对比情况,请参阅搜索选项

索引编制功能

类别 功能
数据源 搜索索引可以接受来自任何源的文本,只要该文本是以 JSON 文档格式提交的。

索引器是一项功能,可自动从支持的数据源导入数据,以便在主数据存储中提取可搜索的内容。 索引器会为你处理 JSON 序列化。 你可以连接到各种数据源,包括 Azure SQL 数据库Azure Cosmos DBAzure Blob 存储
分层的嵌套数据结构 使用复杂类型和集合,几乎可以在搜索索引中对任何类型的 JSON 结构建模。 可以通过集合、复杂类型和复杂类型集合,以本机方式表示一对多和多对多基数。
语言分析 分析器是在编制索引和搜索操作期间用于处理文本的组件。 默认情况下,你可以使用常规用途标准 Lucene 分析器,也可以将其替代为某个语言分析器、你配置的自定义分析器或以所需格式生成令牌的其他预定义分析器。

Lucene 或 Azure 的语言分析器用于智能地处理特定于语言的语言学,包括谓词时态、词性、不规则复数名词(例如“mouse”与“mice”)、词取消合成、词拆分(针对不带空格的语言)等。

自定义词汇分析器用于复杂查询形式,例如拼音匹配和正则表达式。

AI 扩充和知识挖掘

类别 功能
在编制索引期间进行 AI 处理 AI 扩充是指索引器管道中的嵌入图像和自然语言处理,从无法为全文搜索编制索引的内容中提取文本和信息。 AI 处理是通过在技能集中添加和组合技能实现的,技能集随后会附加到索引器。 AI 可以是内置技能,例如文本翻译或光学字符识别 (OCR),也可以是你提供的自定义技能
存储丰富的内容以供在非搜索场景中分析和使用 知识存储是扩充内容的持久存储,适用于非搜索场景,如知识挖掘和数据科学处理。 知识存储在技能集内定义,但在 Azure 存储中创建为对象或表格行集。
缓存的扩充 增量扩充(预览)是指可在技能集执行期间重复使用的缓存扩充。 缓存在包括 OCR 和图像分析的技能组(处理成本很高)中尤其有用。

查询和用户体验

类别 功能
自由格式文本搜索 全文搜索是大多数基于搜索的应用的主要用例。 查询可以使用支持的语法进行陈述。

简单查询语法提供逻辑运算符、短语搜索运算符、后缀运算符和优先运算符。

完整的 Lucene 查询语法包括简单语法中的所有操作,以及模糊搜索、邻近搜索、术语提升和正则表达式的扩展。
相关性 简单计分是 Azure 认知搜索的主要优势。 计分配置文件用于在文档中自行将相关性建模为值的函数。 例如,你可能希望较新产品或打折产品显示在搜索结果的顶部位置。 也可以基于已跟踪和单独存储的客户搜索首选项将标记用于个性化计分,来生成计分配置文件。
地理空间搜索 地理空间函数筛选并匹配地理坐标。 可以按距离匹配,也可以按是否位于多边形内部进行匹配。
筛选器和分面导航 通过单个查询参数实现分面导航。 Azure 认知搜索返回一个分面导航结构,可以将该结构用作类别列表背后的代码,用于自定向筛选(例如,按价格范围或品牌来筛选目录项)。

可以使用筛选器将分面导航纳入到应用程序的 UI 中,改进查询表述,以及基于用户或开发人员指定的条件进行筛选。 可以使用 OData 语法创建筛选器。
用户体验 可以为搜索栏中预先键入的查询启用自动完成

搜索建议也基于搜索栏中的部分文本输入开始工作,但结果是索引中的实际文档而不是查询术语。

同义词功能无需用户提供替换术语,便可关联隐式扩展查询范围的等效术语。

命中项突出显示向搜索结果中的匹配关键字应用文本格式设置。 可以选择哪些字段返回突出显示的片段。

排序通过索引架构覆盖多个字段,可以使用一个搜索参数在查询时进行切换。

通过 Azure 认知搜索所提供的对搜索结果的优化控制,分页和限制搜索结果将变得更简单。

安全功能

类别 功能
数据加密 Azure 托管的静态加密内置在内部存储层中,它是不可撤消的。

你在 Azure Key Vault 中创建和管理的客户管理的加密密钥可以用于索引和同义词映射的补充加密。 对于 2020 年 8 月 1 日后创建的服务,CMK 加密延伸到临时磁盘上的数据,以对索引内容进行完全双重加密。
Endpoint Protection 利用用于入站防火墙的 IP 规则支持,可以设置搜索服务将接受其中请求的 IP 范围。

使用 Azure 专用链接创建专用终结点以强制所有请求通过虚拟网络。

门户功能

类别 功能
用于原型制作和检查的工具 添加索引是门户中的一个索引设计器,可用于创建包含特性化字段和一些其他设置的基本架构。 保存索引后,可以使用 SDK 或 REST API 填充索引以提供数据。

导入数据向导创建索引、索引器、技能组和数据源定义。 如果你的数据存在于 Azure 中,则此向导可以节省大量时间和精力,特别是对于概念证明调查和探索。

搜索浏览器用来测试查询和优化计分概要文件。

创建演示应用用来生成可用来测试搜索体验的 HTML 页面。

调试会话是一种可视化编辑器,可用于以交互方式调试技能组。 它显示依赖项、输出和转换。
监视和诊断 启用监视功能可查看除门户中始终可见的一目了然指标外的其他指标。 可在门户页面中捕获并报告关于每秒查询数、延迟和限制的指标,无需额外进行配置。

可编程性

类别 功能
REST 服务 REST API 用于数据平面操作,包括与索引编制、查询和 AI 扩充相关的所有操作。 你还可以使用此客户端库来检索系统信息和统计信息。

管理 REST API 用于通过 Azure 资源管理器创建和配置服务。 你还可以使用此 API 来管理密钥和容量。
用于 .NET 的 Azure SDK Azure.Search.Documents 用于数据平面操作,包括与索引编制、查询和 AI 扩充相关的所有操作。 你还可以使用此客户端库来检索系统信息和统计信息。

Microsoft.Azure.Management.Search 用于通过 Azure 资源管理器创建和预配服务。 你还可以使用此 API 来管理密钥和容量。
用于 Java 的 Azure SDK com.azure.search.documents 用于数据平面操作,包括与索引编制、查询和 AI 扩充相关的所有操作。 你还可以使用此客户端库来检索系统信息和统计信息。

com.microsoft.azure.management.search 用于通过 Azure 资源管理器创建和预配服务。 你还可以使用此 API 来管理密钥和容量。
用于 Python 的 Azure SDK azure-search-documents 用于数据平面操作,包括与索引编制、查询和 AI 扩充相关的所有操作。 你还可以使用此客户端库来检索系统信息和统计信息。

azure-mgmt-search 用于通过 Azure 资源管理器创建和预配服务。 你还可以使用此 API 来管理密钥和容量。
用于 JavaScript/TypeScript 的 Azure SDK azure/search-documents 用于数据平面操作,包括与索引编制、查询和 AI 扩充相关的所有操作。 你还可以使用此客户端库来检索系统信息和统计信息。

azure/arm-search 用于通过 Azure 资源管理器创建和清理服务。 你还可以使用此 API 来管理密钥和预配服务。

另请参阅