我正在尝试在azure ai搜索服务中创建一个指向cosmosdb容器的数据源,但我总是收到错误容器名称xxx对于cosmosdb类型无效。 cosmodb 容器名为“suppliers_clients_projections”。
我尝试使用 REST API 和 Azure 门户,但两种情况下都出现相同的错误。
REST Api 请求示例:
POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
"name": "<my-datasource-name>",
"container": {
"name": "suppliers_clients_projections",
"query": "select c.id, c.name, c.isDeleted, c._ts FROM c WHERE c._ts >=
@HighWaterMark ORDER BY c._ts"
},
"type": "cosmosdb",
"credentials": {
"connectionString": "<my-cosmosdb-cs>"
},
"dataChangeDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName": "_ts"
},
"dataDeletionDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
"softDeleteColumnName": "isDeleted",
"softDeleteMarkerValue": "true"
}
}
奇怪的是,使用相同的方法我成功地为名为“products”的容器创建了一个数据源。 第一个容器可能有什么问题?
同意@amit_g,当名称包含空格和下划线时,我还重现了集合的问题,它引发了错误,但对于连字符( - )它有效,因此命名约定就像字母,数字,破折号( - )。
这可能是 Azure AI 搜索的限制,但要获得更多进一步支持,您可以在此处向 Microsoft 提出支持请求。
如果有限制,您需要更改 cosmos db 中容器的名称。但不幸的是,无法重命名容器,您需要使用其他名称重新创建容器并在其中添加项目,您可以使用其他 azure 服务,例如 Azure 数据工厂,您可以使用
Copy activity
从一个容器传输所有项目容器到另一个容器。