Azure AI 搜索的功能
Azure AI 搜索提供信息检索功能,并使用可选的 AI 集成来提取更多文本和结构内容。
下表按类别汇总了功能。 若要详细了解 Azure AI 搜索与其他搜索技术的对比情况,请参阅比较搜索选项。
所有 Azure 公共云、专用云和主权云中都有功能奇偶一致性,但特定区域不支持某些功能。 若要了解详细信息,请参阅选择地区。
注意
是否在查找预览功能? 请参阅预览功能列表。
索引编制功能
类别 | 功能 |
---|---|
数据源 | 搜索索引可以接受来自任何源的文本,只要该文本是以 JSON 文档格式提交的。 索引器是一项功能,可自动从支持的数据源导入数据,以便在主数据存储中提取可搜索的内容。 索引器会为你处理 JSON 序列化。 你可以连接到各种数据源,包括 Azure SQL 数据库、Azure Cosmos DB 或 Azure Blob 存储。 |
分层的嵌套数据结构 | 使用复杂类型和集合,几乎可以在搜索索引中对任何类型的 JSON 结构建模。 可以通过集合、复杂类型和复杂类型集合,以本机方式表示一对多和多对多基数。 |
语言分析 | 分析器是在编制索引和搜索操作期间用于处理文本的组件。 默认情况下,你可以使用常规用途标准 Lucene 分析器,也可以将其替代为某个语言分析器、你配置的自定义分析器或以所需格式生成令牌的其他预定义分析器。 Lucene 或 Azure 的语言分析器用于智能地处理特定于语言的语言学,包括谓词时态、词性、不规则复数名词(例如“mouse”与“mice”)、词取消合成、词拆分(针对不带空格的语言)等。 自定义词汇分析器用于复杂查询形式,例如拼音匹配和正则表达式。 |
矢量和混合搜索
类别 | 功能 |
---|---|
向量索引 | 在搜索索引中,添加矢量字段以支持矢量搜索方案。 矢量字段可以与同一搜索文档中的非矢量字段共存。 |
矢量查询 | 生成单个矢量查询和多个矢量查询。 |
矢量搜索算法 | 使用分层可导航小世界 (HNSW) 或详尽的 K 最近的邻域 (KNN) 在搜索索引中查找类似的矢量。 |
矢量筛选器 | 在查询执行前后应用筛选器,以便在信息检索期间提高精度。 |
混合信息检索 | 在单个混合查询请求中搜索概念和关键字。 混合搜索合并矢量和文本搜索,并提供可选的语义排名和相关性优化,以获得最佳结果。 |
集成数据分块和矢量化(预览版) | 通过文本拆分技能进行原生数据分块,通过向量化器和嵌入技能(如 AzureOpenAIEmbeddingModel)进行原生向量化。 集成矢量化(预览版)提供从源文件到查询的端到端索引管道。 |
集成矢量压缩和量化 | 使用内置标量量化来减少内存和磁盘上的矢量索引大小。 还可放弃不需要的矢量存储,或者将窄数据类型分配给矢量字段,以满足减少存储要求。 |
应用的 AI 和知识挖掘
类别 | 功能 |
---|---|
在编制索引期间进行 AI 处理 | AI 扩充是指索引器管道中的嵌入图像和自然语言处理,从无法为全文搜索编制索引的内容中提取文本和信息。 AI 处理是通过在技能集中添加和组合技能实现的,技能集随后会附加到索引器。 AI 可以是 Microsoft 提供的内置技能,例如文本翻译或光学字符识别 (OCR) 或你提供的自定义技能。 |
存储丰富的内容以供在非搜索场景中分析和使用 | 知识存储是扩充内容的持久存储,适用于非搜索场景,如知识挖掘和数据科学处理。 知识存储在技能集内定义,但在 Azure 存储中创建为对象或表格行集。 |
缓存的扩充 | 增量扩充(预览)是指可在技能集执行期间重复使用的缓存扩充。 缓存在包括 OCR 和图像分析的技能组(处理成本很高)中尤其有用。 |
全文和其他查询表单
类别 | 功能 |
---|---|
自由格式文本搜索 | 全文搜索是大多数基于搜索的应用的主要用例。 查询可以使用支持的语法进行陈述。 简单查询语法提供逻辑运算符、短语搜索运算符、后缀运算符和优先运算符。 完整的 Lucene 查询语法包括简单语法中的所有操作,以及模糊搜索、邻近搜索、术语提升和正则表达式的扩展。 |
相关性 | 简单计分是 Azure AI 搜索的主要优势。 计分配置文件用于在文档中自行将相关性建模为值的函数。 例如,你可能希望较新产品或打折产品显示在搜索结果的顶部位置。 也可以基于已跟踪和单独存储的客户搜索首选项将标记用于个性化计分,来生成计分配置文件。 |
地理空间搜索 | 地理空间函数筛选并匹配地理坐标。 可以按距离匹配,也可以按是否位于多边形内部进行匹配。 |
筛选器和分面导航 | 通过单个查询参数实现分面导航。 Azure AI 搜索返回一个分面导航结构,可以将该结构用作类别列表背后的代码,用于自定向筛选(例如,按价格范围或品牌来筛选目录项)。 可以使用筛选器将分面导航纳入到应用程序的 UI 中,改进查询表述,以及基于用户或开发人员指定的条件进行筛选。 可以使用 OData 语法创建筛选器。 |
用户体验 | 可以为搜索栏中预先键入的查询启用自动完成。 搜索建议也基于搜索栏中的部分文本输入开始工作,但结果是索引中的实际文档而不是查询术语。 同义词功能无需用户提供替换术语,便可关联隐式扩展查询范围的等效术语。 命中项突出显示向搜索结果中的匹配关键字应用文本格式设置。 可以选择哪些字段返回突出显示的片段。 排序通过索引架构覆盖多个字段,可以使用一个搜索参数在查询时进行切换。 通过 Azure AI 搜索所提供的对搜索结果的优化控制,分页和限制搜索结果将变得更简单。 |
安全功能
类别 | 功能 |
---|---|
数据加密 | Azure 托管的静态加密内置在内部存储层中,它是不可撤消的。 你在 Azure Key Vault 中创建和管理的客户管理的加密密钥可以用于索引和同义词映射的补充加密。 对于 2020 年 8 月 1 日后创建的服务,CMK 加密延伸到临时磁盘上的数据,以对索引内容进行完全双重加密。 |
Endpoint Protection | 利用用于入站防火墙的 IP 规则支持,可以设置搜索服务将接受其中请求的 IP 范围。 使用 Azure 专用链接创建专用终结点以强制所有请求通过虚拟网络。 |
入站访问 | 基于角色的访问控制将角色分配给 Microsoft Entra ID 中的用户和组,以控制对搜索内容和操作的访问。 如果没有角色分配,也可以使用基于密钥的身份验证。 |
出站安全(索引器) | 利用通过专用终结点的数据访问,索引器可以连接到通过 Azure 专用链接保护的 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 来管理密钥和预配服务。 |