首页 > 解决方案 > 在 Azure 搜索上创建 CosmosDb 数据源

问题描述

我们正在尝试在 Azure 搜索中创建 CosmosDb 数据源,以便稍后使用索引器连接到它。

但是,在尝试创建数据源时,我收到一条没有代码的神秘错误消息:

{
    "error": {
        "code": "",
        "message": "The request is invalid. Details: dataSource : Cannot create an abstract class.\r\n"
    }
}

这是发送到 azure search 的 PUT 请求(api-key 和连接字符串已被验证为正确):

{
    "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

我在文档中找不到有关创建数据源响应的任何内容,欢迎提供一些指导。

问候

标签: azure-cognitive-search

解决方案


您需要包含OData type变更检测策略:

{
"@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName" : "[a row version or last_updated column name]"
}


推荐阅读