【问题标题】:Request probleme with Google Cloud Datastore and Filter使用 Google Cloud Datastore 和 Filter 请求问题
【发布时间】:2019-08-06 10:40:03
【问题描述】:

我目前正在对谷歌数据存储进行一些测试,但我的查询有问题。

如果我相信 https://cloud.google.com/datastore/docs/concepts/queries 文档,我们可以使用 EQUALS 指令实现多列上的过滤器。

但在测试时,我从 API 收到错误消息。 在 Datastore 的 github 上搜索时,我发现了这个参考:https://github.com/GoogleCloudPlatform/google-cloud-dotnet/issues/304,这与我的问题相对应,除了对于我的情况,查询看起来不错。

这是发送的请求:

{
  {
    "kind": [{
      "name": "talk.message"
    }],
    "filter": {
      "compositeFilter": {
        "op": "AND",
        "filters": [{
            "propertyFilter": {
              "property": {
                "name": "Conversation"
              },
              "op": "EQUAL",
              "value": {
                "stringValue": "2f16c14f6939464ea687d316438ad4cb"
              }
            }
          },
          {
            "propertyFilter": {
              "property": {
                "name": "CreatedOn"
              },
              "op": "LESS_THAN_OR_EQUAL",
              "value": {
                "timestampValue": "2019-03-15T10:43:31.474166300Z"
              }
            }
          },
          {
            "propertyFilter": {
              "property": {
                "name": "CreatedOn"
              },
              "op": "GREATER_THAN_OR_EQUAL",
              "value": {
                "timestampValue": "2019-03-14T10:43:31.474175100Z"
              }
            }
          }
        ]
      }
    }
  }
}

这是来自 API 的答案:

{Grpc.Core.RpcException: Status(
      StatusCode=FailedPrecondition, 
      Detail="no matching index found. recommended index is:
              - kind: talk.message
                properties:
                - name: Conversation
                - name: CreatedOn"
     )

根据文档,这应该很好……但事实并非如此! 我错过了什么?

【问题讨论】:

    标签: google-cloud-datastore


    【解决方案1】:

    您的查询同时包含一个 EQUALS(在 Conversation 上)和一个非 EQUALS 过滤器(在 CreatedOn 上),因此您需要一个复合索引来完成查询。所以你的查询是有效的,但它需要一个复合索引才能运行查询。

    【讨论】:

    • 您好吉姆,感谢您的回答。我来看看综合指数。
    猜你喜欢
    • 1970-01-01
    • 2020-12-30
    • 2011-05-09
    • 2016-12-11
    • 2023-03-05
    • 2018-02-14
    • 2023-01-28
    • 1970-01-01
    • 2022-09-30
    相关资源
    最近更新 更多