Data Sources - Create
创建新的数据源。
POST {endpoint}/datasources?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,以帮助调试。 |
请求正文
| 名称 | 必需 | 类型 | 说明 |
|---|---|---|---|
| container | True |
数据源的数据容器。 |
|
| credentials | True |
数据源的凭据。 |
|
| name | True |
string |
数据源的名称。 |
| type | True |
数据源的类型。 |
|
| @odata.etag |
string |
数据源的 ETag。 |
|
| dataChangeDetectionPolicy | DataChangeDetectionPolicy: |
数据源的数据更改检测策略。 |
|
| dataDeletionDetectionPolicy | DataDeletionDetectionPolicy: |
数据源的数据删除检测策略。 |
|
| description |
string |
数据源的描述。 |
|
| encryptionKey |
在 Azure Key Vault 中创建的加密密钥的说明。 当想要完全保证没有人(甚至 Microsoft)无法解密数据源定义时,此密钥用于为数据源定义提供额外的静态加密级别。 加密数据源定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果要轮换加密密钥,可以根据需要更改此属性;您的数据源定义将不受影响。 使用客户管理的密钥进行加密不适用于免费搜索服务,仅适用于 2019 年 1 月 1 日或之后创建的付费服务。 |
响应
| 名称 | 类型 | 说明 |
|---|---|---|
| 201 Created | ||
| Other Status Codes |
错误响应。 |
示例
SearchServiceCreateDataSource
示例请求
POST https://stableexampleservice.search.windows.net/datasources?api-version=2025-09-01
{
"name": "tempdatasource",
"description": "My Azure Blob data source.",
"type": "azureblob",
"credentials": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net "
},
"container": {
"name": "doc-extraction-skillset",
"query": "E2E_Dsat"
},
"dataChangeDetectionPolicy": {
"highWaterMarkColumnName": "metadata_storage_last_modified",
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy"
},
"dataDeletionDetectionPolicy": {
"softDeleteColumnName": "isDeleted",
"softDeleteMarkerValue": "true",
"@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy"
},
"@odata.etag": "0x1234568AE7E58A1"
}
示例响应
{
"@odata.etag": "0x1234568AE7E58A1",
"name": "tempdatasource",
"description": "My Azure Blob data source.",
"type": "azureblob",
"credentials": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net "
},
"container": {
"name": "doc-extraction-skillset",
"query": "E2E_Dsat"
},
"dataChangeDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName": "metadata_storage_last_modified"
},
"dataDeletionDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
"softDeleteColumnName": "isDeleted",
"softDeleteMarkerValue": "true"
}
}
定义
| 名称 | 说明 |
|---|---|
|
Azure |
为搜索服务创建的已注册应用程序的凭据,用于对存储在 Azure Key Vault 中的加密密钥进行身份验证访问。 |
|
Data |
表示可用于连接到数据源的凭据。 |
|
Error |
资源管理错误附加信息。 |
|
Error |
错误详细信息。 |
|
Error |
错误响应 |
|
High |
定义数据更改检测策略,该策略根据高水位线列的值捕获更改。 |
|
Search |
表示有关将编制索引的实体(例如 Azure SQL 表或 CosmosDB 集合)的信息。 |
|
Search |
表示可用于配置索引器的数据源定义。 |
|
Search |
定义数据源的类型。 |
|
Search |
Azure Key Vault 中的客户管理的加密密钥。 创建和管理的密钥可用于加密或解密静态数据,例如索引和同义词映射。 |
|
Soft |
定义实现软删除策略的数据删除检测策略。 它根据指定的“软删除”列的值确定是否应删除项。 |
|
Sql |
定义数据更改检测策略,该策略使用 Azure SQL 数据库的集成更改跟踪功能捕获更改。 |
AzureActiveDirectoryApplicationCredentials
为搜索服务创建的已注册应用程序的凭据,用于对存储在 Azure Key Vault 中的加密密钥进行身份验证访问。
| 名称 | 类型 | 说明 |
|---|---|---|
| applicationId |
string |
向 Azure Key Vault 授予所需的访问权限的 AAD 应用程序 ID,该权限将在加密静态数据时使用。 应用程序 ID 不应与 AAD 应用程序的对象 ID 混淆。 |
| applicationSecret |
string |
指定 AAD 应用程序的身份验证密钥。 |
DataSourceCredentials
表示可用于连接到数据源的凭据。
| 名称 | 类型 | 说明 |
|---|---|---|
| connectionString |
string |
数据源的连接字符串。 对于 Azure SQL、Azure Blob、ADLS Gen 2 和 Azure 表,如果使用托管标识,这将是连接字符串或资源 ID。 对于 CosmosDB,这将是一个格式化的连接字符串,用于指定托管标识的 ApiKind 或资源 ID。 对于 Onelake 文件,连接字符串将是工作区 guid 或工作区 FQDN;Onelake 仅支持托管标识连接。 如果不想更新连接字符串,请设置为 |
ErrorAdditionalInfo
资源管理错误附加信息。
| 名称 | 类型 | 说明 |
|---|---|---|
| info |
object |
其他信息。 |
| type |
string |
其他信息类型。 |
ErrorDetail
错误详细信息。
| 名称 | 类型 | 说明 |
|---|---|---|
| additionalInfo |
错误附加信息。 |
|
| code |
string |
错误代码。 |
| details |
错误详细信息。 |
|
| message |
string |
错误消息。 |
| target |
string |
错误目标。 |
ErrorResponse
错误响应
| 名称 | 类型 | 说明 |
|---|---|---|
| error |
错误对象。 |
HighWaterMarkChangeDetectionPolicy
定义数据更改检测策略,该策略根据高水位线列的值捕获更改。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定数据更改检测策略类型的 URI 片段。 |
| highWaterMarkColumnName |
string |
高水位线列的名称。 |
SearchIndexerDataContainer
表示有关将编制索引的实体(例如 Azure SQL 表或 CosmosDB 集合)的信息。
| 名称 | 类型 | 说明 |
|---|---|---|
| name |
string |
将编制索引的表或视图(对于 Azure SQL 数据源)、集合(对于 CosmosDB 数据源)、容器(对于 Azure Blob 和 ADLS Gen 2 数据源)、Azure 表(对于 Azure 表数据源)或湖屋(对于 Onelake 数据源)的名称。 |
| query |
string |
应用于此数据容器的查询。 对于 CosmosDB,数据源查询可以平展和筛选数据。 对于 Azure Blob 和 ADLS Gen 2 查询可以按文件夹进行筛选。 对于 Azure 表查询,可以按行数据进行筛选。 对于 Onelake,查询可以按文件夹或快捷方式进行筛选。 Azure SQL 数据源不支持。 |
SearchIndexerDataSource
表示可用于配置索引器的数据源定义。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.etag |
string |
数据源的 ETag。 |
| container |
数据源的数据容器。 |
|
| credentials |
数据源的凭据。 |
|
| dataChangeDetectionPolicy | DataChangeDetectionPolicy: |
数据源的数据更改检测策略。 |
| dataDeletionDetectionPolicy | DataDeletionDetectionPolicy: |
数据源的数据删除检测策略。 |
| description |
string |
数据源的描述。 |
| encryptionKey |
在 Azure Key Vault 中创建的加密密钥的说明。 当想要完全保证没有人(甚至 Microsoft)无法解密数据源定义时,此密钥用于为数据源定义提供额外的静态加密级别。 加密数据源定义后,它将始终保持加密状态。 搜索服务将忽略将此属性设置为 null 的尝试。 如果要轮换加密密钥,可以根据需要更改此属性;您的数据源定义将不受影响。 使用客户管理的密钥进行加密不适用于免费搜索服务,仅适用于 2019 年 1 月 1 日或之后创建的付费服务。 |
|
| name |
string |
数据源的名称。 |
| type |
数据源的类型。 |
SearchIndexerDataSourceType
定义数据源的类型。
| 值 | 说明 |
|---|---|
| azuresql |
Azure SQL 数据源的定义,其凭据可以是标准 SQL 连接字符串或 SQL 资源的 ResourceId。 容器属性是指要编制索引的表或视图。 此数据源不支持查询参数。 |
| cosmosdb |
CosmosDB 数据源的定义,其凭据可以是格式化的连接字符串,其中包含基于密钥的连接的 AccountEndpoint、AccountKey 和 Database 的详细信息,也可以是无密钥连接的 ResourceID 和 ApiKind 的详细信息。 container 属性引用要编制索引的 cosmosdb 集合,可选查询属性引用集合上的 SQL 查询。 |
| azureblob |
Azure Blob 数据源的定义,其凭据可以是存储连接字符串或存储帐户的 ResourceId。 容器属性引用要编制索引的 blob 容器,可选查询属性引用容器中的特定子文件夹。 |
| azuretable |
Azure 表数据源的定义,其凭据可以是表连接字符串或存储帐户的 ResourceId。 容器属性是指要编制索引的 blob 容器,可选的查询属性可用于筛选行。 |
| mysql |
Azure SQL 数据源的定义,其凭据可以是标准 ADO.NET 格式化的 SQL 连接字符串或 SQL 资源的 ResourceId。 容器属性是指要编制索引的表或视图。 此数据源不支持查询参数。 |
| adlsgen2 |
Azure ADLS Gen 2 数据源的定义,其凭据可以是存储连接字符串或存储帐户的 ResourceId。 容器属性引用要编制索引的 blob 容器,可选查询属性引用容器中的特定子文件夹。 |
| onelake |
Microsoft Fabric Onelake 数据源的定义,其凭据可以是 Fabric 工作区 GUID 或工作区 FQDN。 容器属性引用湖屋 GUID,可选查询属性引用湖屋中的文件夹或快捷方式。 |
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 可能是 |
SoftDeleteColumnDeletionDetectionPolicy
定义实现软删除策略的数据删除检测策略。 它根据指定的“软删除”列的值确定是否应删除项。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定数据删除检测策略类型的 URI 片段。 |
| softDeleteColumnName |
string |
用于软删除检测的列的名称。 |
| softDeleteMarkerValue |
string |
标识已删除项的标记值。 |
SqlIntegratedChangeTrackingPolicy
定义数据更改检测策略,该策略使用 Azure SQL 数据库的集成更改跟踪功能捕获更改。
| 名称 | 类型 | 说明 |
|---|---|---|
| @odata.type |
string:
#Microsoft. |
指定数据更改检测策略类型的 URI 片段。 |