你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Indexers - Create Or Update
创建新的索引器或更新索引器(如果已存在)。
PUT {endpoint}/indexers('{indexerName}')?api-version=2024-09-01-preview
PUT {endpoint}/indexers('{indexerName}')?api-version=2024-09-01-preview&ignoreResetRequirements={ignoreResetRequirements}&disableCacheReprocessingChangeDetection={disableCacheReprocessingChangeDetection}
URI 参数
名称 | 在 | 必需 | 类型 | 说明 |
---|---|---|---|---|
endpoint
|
path | True |
string |
搜索服务的终结点 URL。 |
indexer
|
path | True |
string |
要创建或更新的索引器的名称。 |
api-version
|
query | True |
string |
客户端 API 版本。 |
disable
|
query |
boolean |
禁用缓存重新处理更改检测。 |
|
ignore
|
query |
boolean |
忽略缓存重置要求。 |
请求头
名称 | 必需 | 类型 | 说明 |
---|---|---|---|
x-ms-client-request-id |
string uuid |
随请求一起发送的跟踪 ID,以帮助进行调试。 |
|
If-Match |
string |
定义 If-Match 条件。 仅当服务器上的 ETag 与此值匹配时,才会执行该操作。 |
|
If-None-Match |
string |
定义 If-None-Match 条件。 仅当服务器上的 ETag 与此值不匹配时,才会执行该操作。 |
|
Prefer | True |
string |
对于 HTTP PUT 请求,指示服务在成功时返回已创建/更新的资源。 |
请求正文
名称 | 必需 | 类型 | 说明 |
---|---|---|---|
dataSourceName | True |
string |
此索引器从中读取数据的数据源的名称。 |
name | True |
string |
索引器的名称。 |
targetIndexName | True |
string |
此索引器向其写入数据的索引的名称。 |
@odata.etag |
string |
索引器的 ETag。 |
|
cache |
将缓存添加到扩充管道,以允许增量修改步骤,而无需每次重新生成索引。 |
||
description |
string |
索引器的说明。 |
|
disabled |
boolean |
一个值,该值指示是否禁用索引器。 默认值为 false。 |
|
encryptionKey |
描述在 Azure Key Vault 中创建的加密密钥。 当你希望完全保证没有人(甚至Microsoft)可以解密时,此密钥用于为索引器定义(以及索引器执行状态)提供额外的静态加密级别。 加密索引器定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果需要轮换加密密钥,可以根据需要更改此属性;索引器定义(和索引器执行状态)将不受影响。 使用客户管理的密钥加密不适用于免费搜索服务,并且仅适用于在 2019 年 1 月 1 日或之后创建的付费服务。 |
||
fieldMappings |
定义数据源中的字段与索引中相应目标字段之间的映射。 |
||
outputFieldMappings |
输出字段映射在扩充后应用,并在编制索引之前立即应用。 |
||
parameters |
索引器执行的参数。 |
||
schedule |
此索引器的计划。 |
||
skillsetName |
string |
使用此索引器执行的技能集的名称。 |
响应
名称 | 类型 | 说明 |
---|---|---|
200 OK | ||
201 Created | ||
Other Status Codes |
错误响应。 |
示例
SearchServiceCreateOrUpdateIndexer
示例请求
PUT https://previewexampleservice.search.windows.net/indexers('myindexer')?api-version=2024-09-01-preview&ignoreResetRequirements=&disableCacheReprocessingChangeDetection=
{
"name": "myindexer",
"description": "Description of the indexer",
"dataSourceName": "mydocdbdatasource",
"skillsetName": "myskillset",
"targetIndexName": "preview-test",
"schedule": {
"interval": "P1D"
},
"parameters": {
"maxFailedItems": 10,
"maxFailedItemsPerBatch": 5
},
"fieldMappings": [],
"outputFieldMappings": [],
"disabled": false,
"encryptionKey": {
"keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault",
"keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString",
"keyVaultUri": "https://myKeyVault.vault.azure.net",
"accessCredentials": {
"applicationId": "00000000-0000-0000-0000-000000000000",
"applicationSecret": "<applicationSecret>"
}
}
}
示例响应
{
"@odata.etag": "0x1234568AE7E58A1",
"name": "myindexer",
"description": "Description of the indexer",
"dataSourceName": "mydocdbdatasource",
"skillsetName": "myskillset",
"targetIndexName": "preview-test",
"disabled": false,
"schedule": {
"interval": "P1D",
"startTime": "2024-06-06T00:01:50.265Z"
},
"parameters": {
"maxFailedItems": 10,
"maxFailedItemsPerBatch": 5,
"configuration": {}
},
"fieldMappings": [],
"outputFieldMappings": [],
"encryptionKey": {
"keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault",
"keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString",
"keyVaultUri": "https://myKeyVault.vault.azure.net",
"accessCredentials": {
"applicationId": "00000000-0000-0000-0000-000000000000",
"applicationSecret": "<applicationSecret>"
}
}
}
{
"@odata.etag": "0x1234568AE7E58A1",
"name": "myindexer",
"description": "Description of the indexer",
"dataSourceName": "mydocdbdatasource",
"skillsetName": "myskillset",
"targetIndexName": "preview-test",
"disabled": false,
"schedule": {
"interval": "P1D",
"startTime": "2024-06-06T00:01:50.265Z"
},
"parameters": {
"maxFailedItems": 10,
"maxFailedItemsPerBatch": 5,
"configuration": {}
},
"fieldMappings": [],
"outputFieldMappings": [],
"encryptionKey": {
"keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault",
"keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString",
"keyVaultUri": "https://myKeyVault.vault.azure.net",
"accessCredentials": {
"applicationId": "00000000-0000-0000-0000-000000000000",
"applicationSecret": "<applicationSecret>"
}
}
}
定义
名称 | 说明 |
---|---|
Azure |
为搜索服务创建的已注册应用程序的凭据,用于对 Azure Key Vault 中存储的加密密钥进行身份验证的访问权限。 |
Blob |
指定要从 Azure Blob 存储中提取的数据,并在“imageAction”设置为“none”以外的值时告知索引器从映像内容中提取的数据。 这适用于.PDF或其他应用程序中的嵌入图像内容,或者 Azure blob 中的 .jpg 和 .png等图像文件。 |
Blob |
确定如何在 Azure Blob 存储中处理嵌入的图像和图像文件。 将“imageAction”配置设置为“none”以外的任何值需要技能集也附加到该索引器。 |
Blob |
表示用于从 Azure Blob 数据源编制索引的分析模式。 |
Blob |
确定用于从 Azure Blob 存储中的 PDF 文件提取文本的算法。 |
Error |
资源管理错误附加信息。 |
Error |
错误详细信息。 |
Error |
错误响应 |
Field |
定义数据源中的字段与索引中目标字段之间的映射。 |
Field |
表示在编制索引之前从数据源转换值的函数。 |
Indexer |
指定索引器应在其中执行的环境。 |
Indexing |
表示索引器执行的参数。 |
Indexing |
特定于索引器的配置属性的字典。 每个名称都是特定属性的名称。 每个值都必须是基元类型。 |
Indexing |
表示索引器执行的计划。 |
Search |
表示索引器。 |
Search |
|
Search |
清除数据源的标识属性。 |
Search |
指定要使用的数据源的标识。 |
Search |
Azure Key Vault 中的客户管理的加密密钥。 创建和管理的密钥可用于加密或解密静态数据,例如索引和同义词映射。 |
AzureActiveDirectoryApplicationCredentials
为搜索服务创建的已注册应用程序的凭据,用于对 Azure Key Vault 中存储的加密密钥进行身份验证的访问权限。
名称 | 类型 | 说明 |
---|---|---|
applicationId |
string |
向 AAD 应用程序 ID 授予对静态数据加密时要使用的 Azure Key Vault 所需的访问权限。 应用程序 ID 不应与 AAD 应用程序的对象 ID 混淆。 |
applicationSecret |
string |
指定的 AAD 应用程序的身份验证密钥。 |
BlobIndexerDataToExtract
指定要从 Azure Blob 存储中提取的数据,并在“imageAction”设置为“none”以外的值时告知索引器从映像内容中提取的数据。 这适用于.PDF或其他应用程序中的嵌入图像内容,或者 Azure blob 中的 .jpg 和 .png等图像文件。
名称 | 类型 | 说明 |
---|---|---|
allMetadata |
string |
提取 Azure Blob 存储子系统提供的元数据和内容类型特定的元数据(例如,只为 .png 文件创建唯一的元数据编制索引)。 |
contentAndMetadata |
string |
从每个 Blob 中提取所有元数据和文本内容。 |
storageMetadata |
string |
仅对标准 Blob 属性和用户指定的元数据编制索引。 |
BlobIndexerImageAction
确定如何在 Azure Blob 存储中处理嵌入的图像和图像文件。 将“imageAction”配置设置为“none”以外的任何值需要技能集也附加到该索引器。
名称 | 类型 | 说明 |
---|---|---|
generateNormalizedImagePerPage |
string |
从图像中提取文本(例如,从流量停止标志中提取“STOP”一词),并将其嵌入内容字段中,但以不同的方式将 PDF 文件呈现为图像并相应地规范化,而不是提取嵌入的图像。 将像设置“generateNormalizedImages”一样对待非 PDF 文件类型。 |
generateNormalizedImages |
string |
从图像中提取文本(例如,从流量停止标志中提取“STOP”一词),并将其嵌入内容字段中。 此操作要求“dataToExtract”设置为“contentAndMetadata”。 规范化图像是指在视觉搜索结果中包含图像时生成统一图像输出、调整大小和旋转的其他处理,以提升一致的呈现。 使用此选项时,会为每个图像生成此信息。 |
none |
string |
忽略数据集中的嵌入图像或图像文件。 这是默认值。 |
BlobIndexerParsingMode
表示用于从 Azure Blob 数据源编制索引的分析模式。
名称 | 类型 | 说明 |
---|---|---|
default |
string |
设置为正常文件处理的默认值。 |
delimitedText |
string |
当 blob 是纯 CSV 文件时,设置为 delimitedText。 |
json |
string |
设置为 json 以从 JSON 文件中提取结构化内容。 |
jsonArray |
string |
设置为 jsonArray 以将 JSON 数组的各个元素提取为单独的文档。 |
jsonLines |
string |
设置为 jsonLines 以提取由新行分隔的单个 JSON 实体,作为单独的文档。 |
text |
string |
设置为文本以提高 Blob 存储中纯文本文件的索引性能。 |
BlobIndexerPDFTextRotationAlgorithm
确定用于从 Azure Blob 存储中的 PDF 文件提取文本的算法。
名称 | 类型 | 说明 |
---|---|---|
detectAngles |
string |
从 PDF 文件中旋转文本的 PDF 文件中,可能会生成更好、更易读的文本提取。 请注意,使用此参数时,性能速度可能会产生较小的影响。 此参数仅适用于 PDF 文件,仅适用于具有嵌入文本的 PDF。 如果旋转的文本显示在 PDF 中的嵌入图像中,则此参数不适用。 |
none |
string |
利用普通文本提取。 这是默认值。 |
ErrorAdditionalInfo
资源管理错误附加信息。
名称 | 类型 | 说明 |
---|---|---|
info |
object |
其他信息。 |
type |
string |
其他信息类型。 |
ErrorDetail
错误详细信息。
名称 | 类型 | 说明 |
---|---|---|
additionalInfo |
错误附加信息。 |
|
code |
string |
错误代码。 |
details |
错误详细信息。 |
|
message |
string |
错误消息。 |
target |
string |
错误目标。 |
ErrorResponse
错误响应
名称 | 类型 | 说明 |
---|---|---|
error |
错误对象。 |
FieldMapping
定义数据源中的字段与索引中目标字段之间的映射。
名称 | 类型 | 说明 |
---|---|---|
mappingFunction |
一个函数,用于在编制索引之前应用于每个源字段值。 |
|
sourceFieldName |
string |
数据源中字段的名称。 |
targetFieldName |
string |
索引中目标字段的名称。 与默认的源字段名称相同。 |
FieldMappingFunction
表示在编制索引之前从数据源转换值的函数。
名称 | 类型 | 说明 |
---|---|---|
name |
string |
字段映射函数的名称。 |
parameters |
object |
要传递给函数的参数名称/值对的字典。 每个值都必须是基元类型。 |
IndexerExecutionEnvironment
指定索引器应在其中执行的环境。
名称 | 类型 | 说明 |
---|---|---|
private |
string |
指示索引器应使用专门为搜索服务预配的环境运行。 仅当索引器需要通过共享的专用链接资源安全地访问资源时,才应将其指定为执行环境。 |
standard |
string |
指示搜索服务可以确定索引器应执行的位置。 如果未指定任何内容并且是建议的值,则这是默认环境。 |
IndexingParameters
表示索引器执行的参数。
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
batchSize |
integer |
从数据源读取并作为单个批处理编制索引的项数,以提高性能。 默认值取决于数据源类型。 |
|
configuration |
特定于索引器的配置属性的字典。 每个名称都是特定属性的名称。 每个值都必须是基元类型。 |
||
maxFailedItems |
integer |
0 |
索引器执行索引失败的最大项数仍被视为成功。 -1 表示没有限制。 默认值为 0。 |
maxFailedItemsPerBatch |
integer |
0 |
单个批中的最大项数,这些项可能会使批处理的索引失败,但仍被视为成功。 -1 表示没有限制。 默认值为 0。 |
IndexingParametersConfiguration
特定于索引器的配置属性的字典。 每个名称都是特定属性的名称。 每个值都必须是基元类型。
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
allowSkillsetToReadFileData |
boolean |
False |
如果为 true,将创建一个路径 //document//file_data,该路径表示从 Blob 数据源下载的原始文件数据。 这样,就可以将原始文件数据传递到自定义技能,以便在扩充管道中进行处理,或传递到文档提取技能。 |
dataToExtract | contentAndMetadata |
指定要从 Azure Blob 存储中提取的数据,并在“imageAction”设置为“none”以外的值时告知索引器从映像内容中提取的数据。 这适用于.PDF或其他应用程序中的嵌入图像内容,或者 Azure blob 中的 .jpg 和 .png等图像文件。 |
|
delimitedTextDelimiter |
string |
对于 CSV Blob,为 CSV 文件指定行尾单字符分隔符,其中每行都启动一个新文档(例如“|”)。 |
|
delimitedTextHeaders |
string |
对于 CSV Blob,指定以逗号分隔的列标题列表,可用于将源字段映射到索引中的目标字段。 |
|
documentRoot |
string |
对于 JSON 数组,给定结构化或半结构化文档,可以使用此属性指定数组的路径。 |
|
excludedFileNameExtensions |
string |
从 Azure Blob 存储进行处理时要忽略的文件扩展名的逗号分隔列表。 例如,可以在索引期间排除“.png,.mp4”跳过这些文件。 |
|
executionEnvironment | standard |
指定索引器应在其中执行的环境。 |
|
failOnUnprocessableDocument |
boolean |
False |
对于 Azure Blob,如果要在文档索引失败时继续编制索引,则设置为 false。 |
failOnUnsupportedContentType |
boolean |
False |
对于 Azure Blob,如果想要在遇到不受支持的内容类型时继续编制索引,并且事先不知道所有内容类型(文件扩展名),则设置为 false。 |
firstLineContainsHeaders |
boolean |
True |
对于 CSV Blob,指示每个 Blob 的第一行(非空白)行包含标头。 |
imageAction | none |
确定如何在 Azure Blob 存储中处理嵌入的图像和图像文件。 将“imageAction”配置设置为“none”以外的任何值需要技能集也附加到该索引器。 |
|
indexStorageMetadataOnlyForOversizedDocuments |
boolean |
False |
对于 Azure Blob,请将此属性设置为 true,以仍为 Blob 内容的存储元数据编制索引,这些元数据太大而无法处理。 默认情况下,超大 Blob 被视为错误。 有关 blob 大小限制,请参阅 https://learn.microsoft.com/azure/search/search-limits-quotas-capacity。 |
indexedFileNameExtensions |
string |
从 Azure Blob 存储进行处理时要选择的文件扩展名的逗号分隔列表。 例如,可以将索引集中在特定应用程序文件“.docx、.pptx、.msg”上,以专门包括这些文件类型。 |
|
parsingMode | default |
表示用于从 Azure Blob 数据源编制索引的分析模式。 |
|
pdfTextRotationAlgorithm | none |
确定用于从 Azure Blob 存储中的 PDF 文件提取文本的算法。 |
|
queryTimeout |
string |
00:05:00 |
为 Azure SQL 数据库数据源增加超过 5 分钟默认值的超时,格式为“hh:mm:ss”。 |
IndexingSchedule
表示索引器执行的计划。
名称 | 类型 | 说明 |
---|---|---|
interval |
string |
索引器执行之间的时间间隔。 |
startTime |
string |
索引器应开始运行的时间。 |
SearchIndexer
表示索引器。
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
@odata.etag |
string |
索引器的 ETag。 |
|
cache |
将缓存添加到扩充管道,以允许增量修改步骤,而无需每次重新生成索引。 |
||
dataSourceName |
string |
此索引器从中读取数据的数据源的名称。 |
|
description |
string |
索引器的说明。 |
|
disabled |
boolean |
False |
一个值,该值指示是否禁用索引器。 默认值为 false。 |
encryptionKey |
描述在 Azure Key Vault 中创建的加密密钥。 当你希望完全保证没有人(甚至Microsoft)可以解密时,此密钥用于为索引器定义(以及索引器执行状态)提供额外的静态加密级别。 加密索引器定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果需要轮换加密密钥,可以根据需要更改此属性;索引器定义(和索引器执行状态)将不受影响。 使用客户管理的密钥加密不适用于免费搜索服务,并且仅适用于在 2019 年 1 月 1 日或之后创建的付费服务。 |
||
fieldMappings |
定义数据源中的字段与索引中相应目标字段之间的映射。 |
||
name |
string |
索引器的名称。 |
|
outputFieldMappings |
输出字段映射在扩充后应用,并在编制索引之前立即应用。 |
||
parameters |
索引器执行的参数。 |
||
schedule |
此索引器的计划。 |
||
skillsetName |
string |
使用此索引器执行的技能集的名称。 |
|
targetIndexName |
string |
此索引器向其写入数据的索引的名称。 |
SearchIndexerCache
名称 | 类型 | 说明 |
---|---|---|
enableReprocessing |
boolean |
指定是否启用增量重新处理。 |
identity | SearchIndexerDataIdentity: |
用于连接到扩充缓存的用户分配托管标识。 如果连接字符串指示标识(ResourceId),并且未指定,则使用系统分配的托管标识。 对索引器的更新(如果未指定标识)时,该值保持不变。 如果设置为“none”,则会清除此属性的值。 |
storageConnectionString |
string |
将保留缓存数据的存储帐户的连接字符串。 |
SearchIndexerDataNoneIdentity
清除数据源的标识属性。
名称 | 类型 | 说明 |
---|---|---|
@odata.type |
string:
#Microsoft. |
指定标识类型的 URI 片段。 |
SearchIndexerDataUserAssignedIdentity
指定要使用的数据源的标识。
名称 | 类型 | 说明 |
---|---|---|
@odata.type |
string:
#Microsoft. |
指定标识类型的 URI 片段。 |
userAssignedIdentity |
string |
用户分配的托管标识的完全限定的 Azure 资源 ID 通常以“/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentity/myId”的形式分配给搜索服务。 |
SearchResourceEncryptionKey
Azure Key Vault 中的客户管理的加密密钥。 创建和管理的密钥可用于加密或解密静态数据,例如索引和同义词映射。
名称 | 类型 | 说明 |
---|---|---|
accessCredentials |
用于访问 Azure Key Vault 的可选 Azure Active Directory 凭据。 如果改用托管标识,则不需要。 |
|
identity | SearchIndexerDataIdentity: |
用于此加密密钥的显式托管标识。 如果未指定并且访问凭据属性为 null,则使用系统分配的托管标识。 更新资源时,如果未指定显式标识,则保持不变。 如果指定了“none”,则清除此属性的值。 |
keyVaultKeyName |
string |
用于加密静态数据的 Azure Key Vault 密钥的名称。 |
keyVaultKeyVersion |
string |
用于加密静态数据的 Azure Key Vault 密钥的版本。 |
keyVaultUri |
string |
Azure Key Vault 的 URI(也称为 DNS 名称),其中包含用于加密静态数据的密钥。 示例 URI 可能是 |