我们在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;
所以我觉得没有为新记录创建索引。
答案 0 :(得分:1)
我的身边没有任何改变,但问题似乎已经在6月2日早些时候消失了,我确实在查询结果中看到了新的记录。不知道是什么原因,不确定是否有其他人看到与我相同的问题。我仍然需要手动保存在此期间创建的所有记录,以重新创建索引。