你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

SearchResourceEncryptionKey

在 Azure Key Vault 中创建的加密密钥的说明。 当你希望完全保证任何人(甚至 Microsoft)都无法解密索引器时,此密钥用于为索引器定义(以及索引器执行状态)提供额外的静态加密级别。 加密索引器定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果要轮换加密密钥,可以根据需要更改此属性;索引器定义(和索引器执行状态)不受影响。 使用客户管理的密钥进行加密不适用于免费搜索服务,仅适用于 2019 年 1 月 1 日或之后创建的付费服务。

fieldMappings

FieldMapping[]

定义数据源中的字段与索引中相应目标字段之间的映射。

outputFieldMappings

FieldMapping[]

输出字段映射在扩充后和索引编制之前立即应用。

parameters

IndexingParameters

索引器执行的参数。

schedule

IndexingSchedule

此索引器的计划。

skillsetName

string

使用此索引器执行的技能组的名称。

响应

名称 类型 说明
201 Created

SearchIndexer

Other Status Codes

ErrorResponse

错误响应。

示例

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"
      }
    }
  ]
}

定义

名称 说明
AzureActiveDirectoryApplicationCredentials

为搜索服务创建的已注册应用程序的凭据,用于对存储在 Azure Key Vault 中的加密密钥进行身份验证访问。

BlobIndexerDataToExtract

指定要从 Azure Blob 存储中提取的数据,并告知索引器在将“imageAction”设置为“none”以外的值时要从图像内容中提取哪些数据。 这适用于 .PDF 或其他应用程序中的嵌入图像内容,或 Azure blob 中的图像文件(如 .jpg 和 .png)。

BlobIndexerImageAction

确定如何处理 Azure Blob 存储中的嵌入图像和图像文件。 将“imageAction”配置设置为“none”以外的任何值都需要将技能组附加到该索引器。

BlobIndexerParsingMode

表示从 Azure blob 数据源编制索引的分析模式。

BlobIndexerPDFTextRotationAlgorithm

确定从 Azure Blob 存储中的 PDF 文件提取文本的算法。

ErrorAdditionalInfo

资源管理错误附加信息。

ErrorDetail

错误详细信息。

ErrorResponse

错误响应

FieldMapping

定义数据源中的字段与索引中的目标字段之间的映射。

FieldMappingFunction

表示在编制索引之前从数据源转换值的函数。

IndexerExecutionEnvironment

指定应在其中执行索引器的环境。

IndexingParameters

表示索引器执行的参数。

IndexingParametersConfiguration

特定于索引器的配置属性的字典。 每个名称都是特定属性的名称。 每个值必须是基元类型。

IndexingSchedule

表示索引器执行的计划。

SearchIndexer

表示索引器。

SearchResourceEncryptionKey

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

ErrorAdditionalInfo[]

错误附加信息。

code

string

错误代码。

details

ErrorDetail[]

错误详细信息。

message

string

错误消息。

target

string

错误目标。

ErrorResponse

错误响应

名称 类型 说明
error

ErrorDetail

错误对象。

FieldMapping

定义数据源中的字段与索引中的目标字段之间的映射。

名称 类型 说明
mappingFunction

FieldMappingFunction

在编制索引之前应用于每个源字段值的函数。

sourceFieldName

string

数据源中字段的名称。

targetFieldName

string

索引中目标字段的名称。 默认情况下,与源字段名称相同。

FieldMappingFunction

表示在编制索引之前从数据源转换值的函数。

名称 类型 说明
name

string

字段映射函数的名称。

parameters

object

要传递给函数的参数名称/值对的字典。 每个值必须是基元类型。

IndexerExecutionEnvironment

指定应在其中执行索引器的环境。

说明
standard

指示搜索服务可以确定索引器应在何处执行。 这是未指定任何内容时的默认环境,并且是推荐值。

private

指示索引器应使用专门为搜索服务预配的环境运行。 仅当索引器需要通过共享专用链接资源安全地访问资源时,才应将其指定为执行环境。

IndexingParameters

表示索引器执行的参数。

名称 类型 默认值 说明
batchSize

integer (int32)

从数据源读取并作为单个批处理编制索引以提高性能的项数。 默认值取决于数据源类型。

configuration

IndexingParametersConfiguration

特定于索引器的配置属性的字典。 每个名称都是特定属性的名称。 每个值必须是基元类型。

maxFailedItems

integer (int32)

0

索引器执行可能无法编制索引的最大项数仍被视为成功。 -1 表示没有限制。 默认为 0。

maxFailedItemsPerBatch

integer (int32)

0

单个批次中可能无法编制索引的最大项数,以便该批处理仍被视为成功。 -1 表示没有限制。 默认为 0。

IndexingParametersConfiguration

特定于索引器的配置属性的字典。 每个名称都是特定属性的名称。 每个值必须是基元类型。

名称 类型 默认值 说明
allowSkillsetToReadFileData

boolean

False

如果为 true,将创建一个路径 //document//file_data,该路径是一个对象,表示从 blob 数据源下载的原始文件数据。 这允许您将原始文件数据传递到自定义技能以在扩充管道中进行处理,或传递到文档提取技能。

dataToExtract

BlobIndexerDataToExtract

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

IndexerExecutionEnvironment

standard

指定应在其中执行索引器的环境。

failOnUnprocessableDocument

boolean

False

对于 Azure Blob,如果要在文档编制索引失败时继续编制索引,请设置为 false。

failOnUnsupportedContentType

boolean

False

对于 Azure Blob,如果要在遇到不受支持的内容类型时继续编制索引,并且事先不知道所有内容类型(文件扩展名),请设置为 false。

firstLineContainsHeaders

boolean

True

对于 CSV blob,指示每个 blob 的第一行(非空白)包含标头。

imageAction

BlobIndexerImageAction

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

BlobIndexerParsingMode

default

表示从 Azure blob 数据源编制索引的分析模式。

pdfTextRotationAlgorithm

BlobIndexerPDFTextRotationAlgorithm

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

SearchResourceEncryptionKey

在 Azure Key Vault 中创建的加密密钥的说明。 当你希望完全保证任何人(甚至 Microsoft)都无法解密索引器时,此密钥用于为索引器定义(以及索引器执行状态)提供额外的静态加密级别。 加密索引器定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果要轮换加密密钥,可以根据需要更改此属性;索引器定义(和索引器执行状态)不受影响。 使用客户管理的密钥进行加密不适用于免费搜索服务,仅适用于 2019 年 1 月 1 日或之后创建的付费服务。

fieldMappings

FieldMapping[]

定义数据源中的字段与索引中相应目标字段之间的映射。

name

string

索引器的名称。

outputFieldMappings

FieldMapping[]

输出字段映射在扩充后和索引编制之前立即应用。

parameters

IndexingParameters

索引器执行的参数。

schedule

IndexingSchedule

此索引器的计划。

skillsetName

string

使用此索引器执行的技能组的名称。

targetIndexName

string

此索引器将数据写入的索引的名称。

SearchResourceEncryptionKey

Azure Key Vault 中的客户管理的加密密钥。 创建和管理的密钥可用于加密或解密静态数据,例如索引和同义词映射。

名称 类型 说明
accessCredentials

AzureActiveDirectoryApplicationCredentials

用于访问 Azure Key Vault 的可选 Azure Active Directory 凭据。 如果改用托管标识,则不需要。

keyVaultKeyName

string

用于加密静态数据的 Azure Key Vault 密钥的名称。

keyVaultKeyVersion

string

用于加密静态数据的 Azure Key Vault 密钥版本。

keyVaultUri

string

Azure 密钥保管库的 URI(也称为 DNS 名称),其中包含用于加密静态数据的密钥。 一个示例 URI 可能是 https://my-keyvault-name.vault.azure.net