在 Azure 搜索上创建 Cosmos Db 数据源
Creating CosmosDb DataSource on Azure Search
我们正在尝试在 Azure 搜索中创建一个 CosmosDb 数据源,以便稍后使用索引器连接到它。
但是,在尝试创建数据源时,我收到一条没有代码的神秘错误消息:
{
"error": {
"code": "",
"message": "The request is invalid. Details: dataSource : Cannot create an abstract class.\r\n"
}
}
这是发送到 azure search 的 PUT 请求(api-键和连接字符串已被验证为正确):
{
"name": "datasourceName",
"description": "Data source on CosmosDb collection x and partition y",
"type": "documentdb",
"credentials": {
"connectionString": "***"
},
"container": {
"name": "collectionName",
"query": "SELECT * FROM c WHERE c.Culture = 'y' AND c.Id LIKE 'prefix%'"
},
"dataChangeDetectionPolicy": {
"highWaterMarkColumnName": "_ts"
}
}
用于该请求的 URL 是:
https://<servicename>.windows.net/datasources/<datasourceName>?api-version=2017-11-11-Preview
我在文档中找不到有关创建数据源响应的任何内容,欢迎提供一些指导。
此致
您需要为更改检测策略包含 OData type
:
{
"@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName" : "[行版本或 last_updated 列名称]"
}
删除 post
请求中的 dataChangeDetectionPolicy,即 Abstract base class for data change detection policies
。
正如 Carey MacDonald 所说,在 connectionString 中,不要忘记添加 Database
部分。
这是快照:
感谢大家的回复。
为了与问题保持一致(PUT
而不是 POST
请求)我发布了答案,因为它结合了之前答案和评论的反馈。
所以添加后:
"@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy"
到 dataChangeDetectionPolicy
json 对象(将 PUT
请求发送到 Azure 搜索时)并在 connectionString 中添加 Database
部分后,它现在可以工作了。
此致
我们正在尝试在 Azure 搜索中创建一个 CosmosDb 数据源,以便稍后使用索引器连接到它。
但是,在尝试创建数据源时,我收到一条没有代码的神秘错误消息:
{
"error": {
"code": "",
"message": "The request is invalid. Details: dataSource : Cannot create an abstract class.\r\n"
}
}
这是发送到 azure search 的 PUT 请求(api-键和连接字符串已被验证为正确):
{
"name": "datasourceName",
"description": "Data source on CosmosDb collection x and partition y",
"type": "documentdb",
"credentials": {
"connectionString": "***"
},
"container": {
"name": "collectionName",
"query": "SELECT * FROM c WHERE c.Culture = 'y' AND c.Id LIKE 'prefix%'"
},
"dataChangeDetectionPolicy": {
"highWaterMarkColumnName": "_ts"
}
}
用于该请求的 URL 是:
https://<servicename>.windows.net/datasources/<datasourceName>?api-version=2017-11-11-Preview
我在文档中找不到有关创建数据源响应的任何内容,欢迎提供一些指导。
此致
您需要为更改检测策略包含 OData type
:
{
"@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName" : "[行版本或 last_updated 列名称]"
}
删除 post
请求中的 dataChangeDetectionPolicy,即 Abstract base class for data change detection policies
。
正如 Carey MacDonald 所说,在 connectionString 中,不要忘记添加 Database
部分。
这是快照:
感谢大家的回复。
为了与问题保持一致(PUT
而不是 POST
请求)我发布了答案,因为它结合了之前答案和评论的反馈。
所以添加后:
"@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy"
到 dataChangeDetectionPolicy
json 对象(将 PUT
请求发送到 Azure 搜索时)并在 connectionString 中添加 Database
部分后,它现在可以工作了。
此致