你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注意
Azure AI 搜索可通过Azure门户、REST API 和Azure SDK获取。 它也是 Foundry IQ 的基础;Foundry IQ 是一个托管式知识层,可将企业内容转化为供 Microsoft Foundry 门户中的智能体使用的、可复用且具备权限感知能力的知识库。
Azure AI 搜索提供信息检索和使用可选的 AI 集成从文本和矢量内容中提取更多价值。
下表按类别汇总了功能。 在所有 Azure 公共、私有和主权云中都有功能对等,但某些功能可能在特定区域或特定层不受支持。
代理检索
| 类别 | 特征 |
|---|---|
| 知识库 | 知识库 协调代理检索管道,连接到 LLM 并管理查询参数。 知识库引用一个或多个知识库并定义检索行为。 |
| 知识源 | 知识源 定义知识库可用的内容。 索引知识源由搜索索引提供支持,而远程知识源在查询时从外部平台检索内容。 |
| 查询规划(预览版) | 查询规划使用 LLM 分析聊天上下文,并将复杂问题分解为重点子查询。 这包括聊天历史记录处理、查询分解、同义词扩展和拼写更正。 |
| 并行查询执行 | 子查询在所有知识源中同时运行。 每个子查询都支持自动语义重排序的关键字搜索、矢量搜索和混合搜索。 |
| 检索推理强度(预览) | 检索推理强度 用于控制流水线中 LLM 处理的强度,从而在检索深度和相关性与延迟及 LLM 成本之间取得平衡。 |
| 响应输出 | 该管道返回两种结果之一:提取式依据内容,或者在启用答案合成(预览)时,返回由大语言模型生成且附带引文的答案。 可以选择包含源引用和执行详细信息。 |
索引和数据提取
| 类别 | 特征 |
|---|---|
| 数据源 | 搜索索引可以接受来自任何源的文本,前提是它作为 JSON 文档提交。
索引器 是一项功能,可自动从受支持的数据源导入数据,以提取主数据存储中的可搜索内容。 索引器为你处理 JSON 序列化,并且大多数都支持某种形式的更改和删除检测。 可以连接到各种数据源,包括Microsoft OneLake、Azure SQL 数据库、Azure Cosmos DB或Azure Blob 存储。 逻辑应用连接器 允许访问更广泛的数据源,包括其他云平台上的数据。 此索引和扩充管道是在Azure AI 搜索中创建的,但在Azure 逻辑应用中管理。 知识源 是代理检索的一项功能。 它们在索引编制期间和查询时用于支持 知识库。 |
| 分层和嵌套数据结构 | 复杂类型和 集合允许在搜索索引中对任何类型的 JSON 结构进行建模。 可以通过集合、复杂类型和复杂类型集合,以本机方式表示一对多和多对多基数。 |
| 语言分析 | 分析器是用于索引和搜索操作期间文本处理的经典搜索的组件。 默认情况下,可以使用通用标准 Lucene 分析器,或使用语言分析器、配置的自定义分析器或以所需格式生成令牌的另一个预定义分析器替代默认值。
语言分析器来自 Lucene 或 Microsoft,用于智能处理语言特定的语言学,包括动词时态、性别、不规则的复数名词(例如,“mouse”与“mice”)、单词分解、断字(对于没有空格的语言)等。 自定义词法分析器 用于复杂的查询形式,例如拼音匹配和正则表达式。 |
聊天模型和代理集成
| 类别 | 特征 |
|---|---|
| 索引期间使用的聊天完成模型 | GenAI 提示技能 是在索引编制过程中调用大型语言模型的技能,并提供确定任务的提示。 决定任务是什么。 它可能涉及描述图像、汇总或操作内容,或者模型可执行的任何任务。 输出被添加为可搜索索引的新字段。 |
| 查询时使用的聊天完成模型 |
代理检索 使用大型语言模型进行查询规划、分解和描述复杂查询,以便更好地覆盖索引的查询覆盖率。 代理检索的响应专为代理到代理工作流而设计。 可以将搜索结果作为单个大型字符串传递,从而简化专有内容的代理使用。 响应还包括引文和查询执行信息。
答案合成(预览版) 使用 LLM 从智能体检索返回的搜索结果中生成带引文的响应。 可以使用现有功能实现 RAG 模式。 优化 相关性 和构建混合查询的能力可提高发送到聊天机器人的内容的质量,以便生成答案。 |
应用人工智能和AI增强的内容
| 类别 | 特征 |
|---|---|
| 索引编制期间的 AI 处理 | AI 扩充是指索引器管道中的嵌入图像和自然语言处理,从无法为全文搜索编制索引的内容中提取文本和信息。 AI 处理是通过在技能集合中添加和组合技能来实现的,然后将其关联到索引器上。 AI 可以是来自Microsoft的内置技能,例如文本翻译或光学字符识别(OCR),也可以是你提供的 custom 技能。 集成的数据分块和向量化 将较大的段落拆分为可以向量化的较小区块,并将矢量路由到索引中的专用字段进行矢量和混合搜索。 |
| 查询执行期间的 AI 处理 | Vectorizer 用于将用户查询字符串编码为矢量搜索的向量。 可以对用于索引的查询使用相同的嵌入模型。 |
| 在非搜索方案中存储扩充内容以供分析和使用 | 知识存储 是 AI 扩充内容或 AI 生成的内容的持久存储,适用于知识挖掘和数据科学工作负载等非搜索方案。 知识存储在技能集中定义,但在Azure 存储中创建为对象或表格行集。 |
| 缓存的扩充内容(预览版) | 扩充缓存 是指可在技能集执行期间重复使用的缓存扩充。 缓存对于包括 OCR 和图像分析在内的技能集非常有用,这些技能集的处理成本很高。 |
矢量和混合检索
| 类别 | 特征 |
|---|---|
| 矢量索引 | 在搜索索引中,添加 矢量字段 以支持 矢量搜索 方案。 矢量字段可以与同一搜索文档中的非矢量字段共存。 |
| 矢量查询 | 构建单个和多个向量查询。 |
| 矢量搜索算法 | 使用 分层导航小世界(HNSW) 或 全范围 K-Nearest Neighbors(KNN) 在搜索索引中查找相似的向量。 |
| 矢量筛选器 | 在查询执行之前或之后应用筛选器 ,以便在信息检索期间提高精度。 |
| 混合信息检索 | 在单个 混合查询请求中搜索概念和关键字。 混合搜索 将矢量和文本搜索合并,并提供可选的语义排名和相关性优化,以获得最佳结果。 |
| 集成数据分块和矢量化 | 使用 文本拆分技能进行本地数据分块。 通过矢量化器以及嵌入技能(例如 Azure OpenAI Embedding、Azure Vision 多模态(预览)和 AML)实现原生矢量化,这些技能可用于连接到 Microsoft Foundry 模型目录中的终结点。 集成矢量化 提供从源文件到查询的端到端索引管道。 |
| 集成矢量压缩和量化 | 使用 内置的标量和二进制量化 来减少内存和磁盘上的矢量索引大小。 还可以放弃不需要的向量存储,或将窄数据类型分配给矢量字段,以降低存储要求。 |
经典全文和其他查询表单
| 类别 | 特征 |
|---|---|
| 自由格式文本搜索 |
全文搜索 是大多数基于搜索的应用的主要用例。 可以使用支持的语法来制定查询。
简单查询语法 提供逻辑运算符、短语搜索运算符、后缀运算符、优先运算符。 完整的 Lucene 查询语法 包括简单语法中的所有操作,以及模糊搜索、邻近搜索、字词提升和正则表达式的扩展。 |
| 关联 |
简单评分是 Azure AI 搜索 的主要优势。 使用评分配置文件根据文档本身的值对相关性进行建模。 例如,你可能希望较新的产品或折扣产品在搜索结果中显示更高。 你还可以使用标记,根据你单独跟踪并存储的客户搜索偏好,创建用于个性化评分的评分配置文件。
语义排名器 是一项高级功能,可根据查询的语义相关性重新计算结果。 根据内容和方案,它可以通过最少的配置或工作量显著提高搜索相关性。 |
| 地理空间搜索 | 地理空间函数 根据地理坐标进行筛选和匹配。 可以在 距离上匹配 ,也可以通过包含在多边形形状中来匹配。 |
| 筛选器和分面导航 |
分面导航是通过单个查询参数实现的。 Azure AI 搜索返回分面导航结构,你可以将其用作类别列表背后的代码,用于自我定向筛选(例如,按价格范围或品牌筛选目录项)。
筛选器 可用于将分面导航合并到应用程序的 UI 中,增强查询表述,并根据用户或开发人员指定的条件进行筛选。 使用 OData 语法创建筛选器。 |
| 用户体验 | 可以为搜索栏中的预键入查询启用自动完成。
搜索建议 还适用于搜索栏中的部分文本输入,但结果是索引中的实际文档,而不是查询词。 同义词 关联隐式扩展查询范围的等效术语,而无需用户提供备用术语。 命中项突出显示向搜索结果中的匹配关键字应用文本格式设置。 可以选择返回哪些字段突出显示的片段。索引架构支持多个字段的 排序,并在查询时使用单个搜索参数进行切换。Azure AI 搜索 提供对搜索结果的精细控制,让你可以轻松对搜索结果进行 分页和限制。 |
安全功能
| 类别 | 特征 |
|---|---|
| 网络安全 |
入站防火墙支持的 IP 规则 允许设置搜索服务接受请求的 IP 范围。
创建专用终结点使用Azure 专用链接通过虚拟网络强制所有请求。 网络安全边界支持允许你将 Azure AI 搜索 加入包含其他 Azure 资源的网络安全边界,使您能够整体管理网络访问。 |
| 数据加密 |
Microsoft托管的静态加密内置于内部存储层中,不可调用。
客户自管的加密密钥(CMK),您可以在 Azure 密钥保管库 创建和管理,用于对索引和同义词映射进行补充加密。 对于在 2020 年 8 月 1 日之后创建的服务,CMK 加密扩展到临时磁盘上的数据,以便对索引内容进行完全双重加密。 |
| 入站访问 |
基于Role 的访问控制将角色分配给Microsoft Entra ID中的用户和组,以便控制对搜索内容和操作的访问。 如果不想使用角色分配,也可以使用 基于密钥的身份验证 。
文档级访问控制 会筛选出用户无权查看的搜索结果。 对于多个数据源,如果数据源提供访问控制模型,则可以配置索引以继承用户权限元数据。 |
| 出站安全(索引器) |
数据连接通过专用终结点,允许索引器连接到通过 Azure 专用链接 保护的 Azure 资源。
通过托管标识进行数据连接使用Microsoft Entra安全主体对与Azure资源的连接进行身份验证, 这消除了硬编码 API 密钥的存储和传递。 使用受信任的标识进行数据访问意味着外部数据源的连接字符串可以省略用户名和密码。 当索引器连接到数据源时,如果搜索服务以前注册为受信任的服务(仅适用于Azure 存储),则资源允许连接。 |
门户功能
| 类别 | 特征 |
|---|---|
| 用于原型制作和检查的工具 |
Add index 是Azure门户中的索引设计器,可用于创建由属性字段和其他几个设置组成的基本架构。 保存索引后,可以使用 SDK 或 REST API 填充该索引以提供数据。
导入数据 是一个向导,用于生成用于关键字搜索和 RAG 方案的端到端索引管道,包括索引、索引器、技能集和数据源定义。 对于 RAG,它还处理数据分块和向量化。 如果数据存在于Azure中,则此向导可以节省大量时间和精力,尤其是用于概念证明调查和探索。 搜索资源管理器 用于测试查询和优化计分配置文件。 创建演示应用 用于生成可用于测试搜索体验的 HTML 页面。 调试会话 是一种可视化编辑器,可用于以交互方式调试技能集。 它显示依赖项、输出和转换。 |
| 监视和诊断 | 启用监视功能以超越在 Azure 门户中始终可查看的概览性指标。 每秒查询次数、延迟和节流的指标数据会在门户页面中自动捕获和展示,无需额外配置。 |
可编程性
| 类别 | 特征 |
|---|---|
| REST |
服务 REST API 适用于数据平面操作,包括与索引、查询、AI 扩充和代理检索相关的所有操作。 还可以使用此客户端库检索系统信息和统计信息。
Management 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 来管理密钥和容量。 |