本文介绍如何将缓存添加到技能组管道,以便每次都无需完全重新生成即可修改下游扩充步骤。 默认情况下,技能集是无状态的,更改其任何构成部分都要从头到尾地重新运行索引器。 使用 扩充缓存时,索引器会根据技能集或索引器定义更改来确定必须刷新文档树的哪些部分。 保留并重复使用现有的已处理输出(如果可能)。
缓存的内容使用提供的连接字符串放置在 Azure 存储中。 这些对象是在运行索引器时创建的。 应将此容器视为搜索服务管理的内部组件,不得对它进行修改。
- 名为
ms-az-search-indexercache-<alpha-numeric-string>的容器
- 命名的表
MsAzSearchIndexerCacheIndex<alpha-numeric-string>
先决条件
你应该熟悉如何设置索引器和技能集。 从索引器概述着手,然后继续学习技能集来了解扩充管道。
局限性
注意
如果使用 SharePoint Online 索引器,应避免增量扩充。 在某些情况下,如果选择重新加载索引器,缓存将变为无效,需要 索引器重置和完全重新生成。
Permissions
Azure AI 搜索标识需要对 Azure 存储进行写入访问:
连接字符串语法确定是使用系统分配的还是用户分配的标识。 有关详细信息,请参阅 使用托管标识连接到 Azure 存储。
设置缓存属性
对新索引器和现有索引器使用此过程。
在索引器定义中,使用以下命令进行设置 cache :
- (必需)
storageConnectionString 设置为 Azure 存储连接字符串。
- (可选)
enableReprocessing (true 默认情况下)。 将其设置为false以暂时暂停增量扩充,然后稍后切换回true。
在左侧,选择 “索引器”。
选择 “添加索引器 ”以创建新的索引器,或在 JSON 编辑模式下打开现有索引器。
启用增量扩充,设置扩充缓存存储帐户,并保存索引器。
如果索引器已存在,则重置它。
运行索引器。 此一次性完整重建会初始化缓存。 加载后,增量重用将应用于后续运行。
如果要编辑现有索引器,我们建议你执行 GET 索引器 。
使用最新的预览 API 创建 或更新索引器。
PUT https://[YOUR-SEARCH-SERVICE].search.azure.cn/indexers/[YOUR-INDEXER-NAME]?api-version=2025-11-01-preview
Content-Type: application/json
api-key: [YOUR-ADMIN-KEY]
{
"name": "<YOUR-INDEXER-NAME>",
"targetIndexName": "<YOUR-INDEX-NAME>",
"dataSourceName": "<YOUR-DATASOURCE-NAME>",
"skillsetName": "<YOUR-SKILLSET-NAME>",
"cache": {
"storageConnectionString": "<YOUR-STORAGE-ACCOUNT-CONNECTION-STRING>",
"enableReprocessing": true
},
"fieldMappings": [],
"outputFieldMappings": [],
"parameters": []
}
如果索引器已存在,请重置索引器 。
运行索引器。 此一次性完整重建会初始化缓存。 加载后,增量重用将应用于后续运行。
POST https://[YOUR-SEARCH-SERVICE].search.azure.cn/indexers/[YOUR-INDEXER-NAME]/run?api-version=2025-11-01-preview
Content-Type: application/json
api-key: [YOUR-ADMIN-KEY]
如果现在针对索引器发出另一个 GET 请求,服务的响应包含缓存对象中的 ID 属性。 将字符串追加到容器的名称,该容器包含此索引器处理的每个文档的所有缓存结果和中间状态。 ID 用于唯一命名 Blob 存储中的缓存。
"cache": {
"ID": "<ALPHA-NUMERIC STRING>",
"enableReprocessing": true,
"storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-STORAGE-ACCOUNT>;AccountKey=<YOUR-STORAGE-KEY>;EndpointSuffix=core.chinacloudapi.cn"
}
检查缓存的输出
登录到 Azure 门户并找到 Azure 存储帐户。
使用存储浏览器查看容器和表。
缓存由索引器创建和使用。 缓存内容不具有用户可读性。
若要验证缓存是否正常运行,请修改技能集并运行索引器,然后比较执行时间和文档计数的前后指标。
包括扫描文档的图像分析和光学字符识别 (OCR) 在内的技能集是很好的测试用例。 如果修改下游文本技能或任何与图像无关的技能,索引器可以从缓存中检索以前处理的图像和 OCR 内容,并仅处理与文本相关的编辑更改。 预期索引器执行计数中的文档减少,执行时间缩短,成本降低。
cog-search-demo 教程中使用的文件集是一个有用的测试用例,因为它包含 14 个各种格式的文件,JPG、PNG、HTML、DOCX、PPTX 和其他类型。 在文本翻译技能中,将 en 更改为 es 或另一种语言,以对增量扩充进行概念证明测试。
常见错误
如果忘记在请求中指定预览 API 版本,则会发生以下错误:
"The request is invalid. Details: indexer : A resource without a type name was found, but no expected type was specified. To allow entries without type information, the expected type must also be specified when the model is specified."
如果缺少索引器要求,也会出现“400 错误请求”错误。 错误消息会具体说明任何缺少的依赖项。
后续步骤
增量扩充为索引和知识存储提供可重用的内容,适用于包含技能集的索引器。 以下链接提供有关缓存管理的详细信息。