Indexers - Create
创建新的索引器。
POST {endpoint}/indexers?api-version=2025-09-01
URI 参数
| 名称 | 在 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
endpoint
|
path | True |
string |
搜索服务的终结点 URL。 |
|
api-version
|
query | True |
string |
客户端 API 版本。 |
请求头
| 名称 | 必需 | 类型 | 说明 |
|---|---|---|---|
| x-ms-client-request-id |
string (uuid) |
随请求一起发送的跟踪 ID,以帮助调试。 |
请求正文
| 名称 | 必需 | 类型 | 说明 |
|---|---|---|---|
| dataSourceName | True |
string |
此索引器从中读取数据的数据源的名称。 |
| name | True |
string |
索引器的名称。 |
| targetIndexName | True |
string |
此索引器将数据写入的索引的名称。 |
| @odata.etag |
string |
索引器的 ETag。 |
|
| description |
string |
索引器的说明。 |
|
| disabled |
boolean |
指示索引器是否已禁用的值。 默认值为 false。 |
|
| encryptionKey |
在 Azure Key Vault 中创建的加密密钥的说明。 当你希望完全保证任何人(甚至 Microsoft)都无法解密索引器时,此密钥用于为索引器定义(以及索引器执行状态)提供额外的静态加密级别。 加密索引器定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果要轮换加密密钥,可以根据需要更改此属性;索引器定义(和索引器执行状态)不受影响。 使用客户管理的密钥进行加密不适用于免费搜索服务,仅适用于 2019 年 1 月 1 日或之后创建的付费服务。 |
||
| fieldMappings |
定义数据源中的字段与索引中相应目标字段之间的映射。 |
||
| outputFieldMappings |
输出字段映射在扩充后和索引编制之前立即应用。 |
||
| parameters |
索引器执行的参数。 |
||
| schedule |
此索引器的计划。 |
||
| skillsetName |
string |
使用此索引器执行的技能组的名称。 |
响应
| 名称 | 类型 | 说明 |
|---|---|---|
| 201 Created | ||
| Other Status Codes |
错误响应。 |
示例
SearchServiceCreateIndexer
示例请求
POST https://stableexampleservice.search.windows.net/indexers?api-version=2025-09-01
{
"name": "myindexer",
"description": "Description of the indexer",
"dataSourceName": "mydocdbdatasource",
"skillsetName": "myskillset",
"targetIndexName": "stable-test",
"schedule": {
"interval": "P1D",
"startTime": "2025-01-07T19:30:00Z"
},
"parameters": {
"batchSize": 10,
"maxFailedItems": 10,
"maxFailedItemsPerBatch": 5,
"configuration": {
"excludedFileNameExtensions": ".png,.mp4",
"indexedFileNameExtensions": ".docx,.pptx",
"failOnUnsupportedContentType": true,
"failOnUnprocessableDocument": false,
"indexStorageMetadataOnlyForOversizedDocuments": true,
"delimitedTextHeaders": "Header1,Header2",
"delimitedTextDelimiter": "|",
"firstLineContainsHeaders": true,
"documentRoot": "/root",
"dataToExtract": "storageMetadata",
"imageAction": "none",
"allowSkillsetToReadFileData": false,
"pdfTextRotationAlgorithm": "none",
"executionEnvironment": "standard"
}
},
"fieldMappings": [
{
"sourceFieldName": "/document",
"targetFieldName": "name",
"mappingFunction": {
"name": "base64Encode"
}
}
],
"outputFieldMappings": [
{
"sourceFieldName": "/document",
"targetFieldName": "name",
"mappingFunction": {
"name": "base64Encode"
}
}
],
"disabled": false,
"@odata.etag": "0x1234568AE7E58A1"
}
示例响应
{
"@odata.etag": "0x1234568AE7E58A1",
"name": "myindexer",
"description": "Description of the indexer",
"dataSourceName": "mydocdbdatasource",
"skillsetName": "myskillset",
"targetIndexName": "stable-test",
"disabled": false,
"schedule": {
"interval": "P1D",
"startTime": "2024-06-06T00:01:50.265Z"
},
"parameters": {
"batchSize": 10,
"maxFailedItems": 10,
"maxFailedItemsPerBatch": 5,
"configuration": {
"excludedFileNameExtensions": ".png,.mp4",
"indexedFileNameExtensions": ".docx,.pptx",
"failOnUnsupportedContentType": true,
"failOnUnprocessableDocument": false,
"indexStorageMetadataOnlyForOversizedDocuments": true,
"delimitedTextHeaders": "Header1,Header2",
"delimitedTextDelimiter": "|",
"firstLineContainsHeaders": true,
"documentRoot": "/root",
"dataToExtract": "storageMetadata",
"imageAction": "none",
"allowSkillsetToReadFileData": false,
"pdfTextRotationAlgorithm": "none",
"executionEnvironment": "standard"
}
},
"fieldMappings": [
{
"sourceFieldName": "/document",
"targetFieldName": "name",
"mappingFunction": {
"name": "base64Encode"
}
}
],
"outputFieldMappings": [
{
"sourceFieldName": "/document",
"targetFieldName": "name",
"mappingFunction": {
"name": "base64Encode"
}
}
]
}
定义
| 名称 | 说明 |
|---|---|
|
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 |
Azure Key Vault 中的客户管理的加密密钥。 创建和管理的密钥可用于加密或解密静态数据,例如索引和同义词映射。 |
AzureActiveDirectoryApplicationCredentials
为搜索服务创建的已注册应用程序的凭据,用于对存储在 Azure Key Vault 中的加密密钥进行身份验证访问。
| 名称 | 类型 | 说明 |
|---|---|---|
| applicationId |
string |
向 Azure Key Vault 授予所需的访问权限的 AAD 应用程序 ID,该权限将在加密静态数据时使用。 应用程序 ID 不应与 AAD 应用程序的对象 ID 混淆。 |
| applicationSecret |
string |
指定 AAD 应用程序的身份验证密钥。 |
BlobIndexerDataToExtract
指定要从 Azure Blob 存储中提取的数据,并告知索引器在将“imageAction”设置为“none”以外的值时要从图像内容中提取哪些数据。 这适用于 .PDF 或其他应用程序中的嵌入图像内容,或 Azure blob 中的图像文件(如 .jpg 和 .png)。
| 值 | 说明 |
|---|---|
| storageMetadata |
仅为标准 blob 属性和用户指定的元数据编制索引。 |
| allMetadata |
提取 Azure Blob 存储子系统提供的元数据和特定于内容类型的元数据(例如,仅对 .png 文件进行索引)。 |
| contentAndMetadata |
从每个 blob 中提取所有元数据和文本内容。 |
BlobIndexerImageAction
确定如何处理 Azure Blob 存储中的嵌入图像和图像文件。 将“imageAction”配置设置为“none”以外的任何值都需要将技能组附加到该索引器。
| 值 | 说明 |
|---|---|
| none |
忽略数据集中的嵌入图像或图像文件。 这是默认情况。 |
| generateNormalizedImages |
从图像中提取文本(例如,交通停止标志中的单词“STOP”),并将其嵌入到内容字段中。 此作要求将“dataToExtract”设置为“contentAndMetadata”。 规范化图像是指在视觉搜索结果中包含图像时,产生统一的图像输出、大小和旋转的附加处理,以促进一致的呈现。 当使用此选项时,将为每个图像生成此信息。 |
| generateNormalizedImagePerPage |
从图像中提取文本(例如,交通停车标志中的单词“STOP”),并将其嵌入到内容字段中,但对 PDF 文件的处理方式不同,因为每个页面都将呈现为图像并相应地进行规范化,而不是提取嵌入的图像。 非 PDF 文件类型的处理方式与设置了“generateNormalizedImages”相同。 |
BlobIndexerParsingMode
表示从 Azure blob 数据源编制索引的分析模式。
| 值 | 说明 |
|---|---|
| default |
设置为正常文件处理的默认值。 |
| text |
设置为文本可提高 Blob 存储中纯文本文件的索引性能。 |
| delimitedText |
当 blob 是纯 CSV 文件时,设置为 delimitedText。 |
| json |
设置为 json 以从 JSON 文件中提取结构化内容。 |
| jsonArray |
设置为 jsonArray 以将 JSON 数组的各个元素提取为单独的文档。 |
| jsonLines |
设置为 jsonLines 以提取由换行符分隔的单个 JSON 实体作为单独的文档。 |
BlobIndexerPDFTextRotationAlgorithm
确定从 Azure Blob 存储中的 PDF 文件提取文本的算法。
| 值 | 说明 |
|---|---|
| none |
利用普通文本提取。 这是默认情况。 |
| detectAngles |
可以从具有旋转文本的 PDF 文件中生成更好、更易读的文本提取。 请注意,使用此参数时,可能会对性能速度产生较小的影响。 此参数仅适用于 PDF 文件,并且仅适用于嵌入文本的 PDF。 如果旋转的文本出现在 PDF 的嵌入图像中,则此参数不适用。 |
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
指定应在其中执行索引器的环境。
| 值 | 说明 |
|---|---|
| standard |
指示搜索服务可以确定索引器应在何处执行。 这是未指定任何内容时的默认环境,并且是推荐值。 |
| private |
指示索引器应使用专门为搜索服务预配的环境运行。 仅当索引器需要通过共享专用链接资源安全地访问资源时,才应将其指定为执行环境。 |
IndexingParameters
表示索引器执行的参数。
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| batchSize |
integer (int32) |
从数据源读取并作为单个批处理编制索引以提高性能的项数。 默认值取决于数据源类型。 |
|
| configuration |
特定于索引器的配置属性的字典。 每个名称都是特定属性的名称。 每个值必须是基元类型。 |
||
| maxFailedItems |
integer (int32) |
0 |
索引器执行可能无法编制索引的最大项数仍被视为成功。 -1 表示没有限制。 默认为 0。 |
| maxFailedItemsPerBatch |
integer (int32) |
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://free.blessedness.top/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 (duration) |
索引器执行之间的时间间隔。 |
| startTime |
string (date-time) |
索引器应开始运行的时间。 |
SearchIndexer
表示索引器。
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| @odata.etag |
string |
索引器的 ETag。 |
|
| 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 |
此索引器将数据写入的索引的名称。 |
SearchResourceEncryptionKey
Azure Key Vault 中的客户管理的加密密钥。 创建和管理的密钥可用于加密或解密静态数据,例如索引和同义词映射。
| 名称 | 类型 | 说明 |
|---|---|---|
| accessCredentials |
用于访问 Azure Key Vault 的可选 Azure Active Directory 凭据。 如果改用托管标识,则不需要。 |
|
| keyVaultKeyName |
string |
用于加密静态数据的 Azure Key Vault 密钥的名称。 |
| keyVaultKeyVersion |
string |
用于加密静态数据的 Azure Key Vault 密钥版本。 |
| keyVaultUri |
string |
Azure 密钥保管库的 URI(也称为 DNS 名称),其中包含用于加密静态数据的密钥。 一个示例 URI 可能是 |