似乎自2015年6月1日晚些时候创建的新实体缺少索引

时间:2015-06-02 06:09:30

标签: google-app-engine google-cloud-datastore

我们在google appengine上运行了一个应用程序,它运行良好,直到今天(2015年6月1日)。我们发现创建的新实体缺少索引,它们不在查询结果中。我不确定会发生什么,因为旧实体没有这个问题。单场指数似乎运作良好。我没有任何线索如何解决这个问题。如果有人能说清楚它,我感激不尽。

以下是一个例子:

我们有这样一个实体:

EntityA {
  String A;
  String B;
  Integer C;
}

我们在数据存储中有这样的记录:

A   B   C
123 bb  1  - old record
123 bb  2  - old record
123 bb  3  - new record

[A,B],[A,C],[A,B,C]指数

我们发现遵循GQL

Select * from EntityA where A='123' and B='bb';

将得到这样的结果,缺少新记录:

A   B   C
123 bb  1
123 bb  2

缺少新纪录。但是,如果我们用这样的单字段索引进行查询:

Select * from EntityA where A='123';

或者像这样:

Select * from EntityA where B='bb';

我们在结果中看到了新记录。

A   B   C
123 bb  1
123 bb  2
123 bb  3

此外,像这样的查询将得到空结果:

Select * from EntityA where C=3;

但是对前两条记录的查询会返回正确的结果:

Select * from EntityA where C=1;
Select * from EntityA where C=2;

所以我觉得没有为新记录创建索引。

1 个答案:

答案 0 :(得分:1)

我的身边没有任何改变,但问题似乎已经在6月2日早些时候消失了,我确实在查询结果中看到了新的记录。不知道是什么原因,不确定是否有其他人看到与我相同的问题。我仍然需要手动保存在此期间创建的所有记录,以重新创建索引。