Google Cloud Datastore:综合指数:排序似乎不起作用

时间:2016-11-21 11:44:22

标签: c# google-app-engine google-cloud-datastore gql composite-index

我正在使用带有(C#).NET代码的Google Cloud数据存储区,我在数据存储区中有一个名为Audit的表,其中包含以下列

ID /名称(长),ID(长),ActionType(字符串),GroupType(字符串),DateTime(TimeStamp),CompanyID(长),UserID(长),ObjectID(长),IsDeleted(布尔)< / p>

仅供参考,ID /名称和ID都包含相同的信息

我想像这样运行GQL查询

  

SELECT * FROM审计WHERE GroupType ='XYZ'AND ActionType ='CREATED'AND CompanyID = 152738292和IsDeleted = false按ID排序

我似乎没有得到正确的复合键并继续获得“您的数据存储区没有此查询所需的复合索引(开发人员提供)”

这是使用index.yaml创建的复合索引。

- kind: Audit

  properties:
  - name: ID
    direction: desc
  - name: IsDeleted
  - name: CompanyID
    direction: desc
  - name: GroupType
  - name: ActionType

欢迎任何有关此主题的帮助!!

如果您需要其他信息,请告诉我

1 个答案:

答案 0 :(得分:2)

对于此查询,您需要一个复合索引,其中ID是最后一个元素,其排序顺序与查询中的排序顺序相匹配。例如:

- kind: Audit
  properties:
  - name: IsDeleted
  - name: CompanyID
    direction: desc
  - name: GroupType
  - name: ActionType
  - name: ID

(ID在此索引定义中以升序方式隐式排序。)