【发布时间】:2015-01-09 17:08:26
【问题描述】:
我有一个应用程序在 Google Datastore 中存储和索引数字字段。在内部,这些是使用 Java/Objectify 创建和索引的,实体被持久化,并为我们希望搜索的字段添加了 @Index 注释......
@Index
private Long fieldOne;
@Index
private Long fieldTwo;
在我尝试使用这些索引字段搜索实体之前,一切正常。 fieldOne 的值为 5709068098338816 并使用 GQL 进行搜索:
SELECT *
FROM MyEntity
WHERE fieldOne = 5709068098338816
但是,fieldTwo 的值为3572054303678568400,这就是我的问题开始的地方。出于某种原因,我无法在 GQL 中使用此值或使用 objectify 进行搜索。即使我可以在 google 数据存储中看到该值,以下 GQL 也不会返回任何结果:
SELECT *
FROM MyEntity
WHERE fieldTwo = 3572054303678568400
我可以看到它在 Google 数据存储中存储和索引。
我的问题是,Google 数据存储区中索引数字的大小是否有限制?这个值是否可能以某种方式太大而无法正确索引,或者我可能完全错过了其他东西?这个值低于最大的 Long 值,所以我不确定发生了什么。
任何帮助将不胜感激。 干杯!
【问题讨论】:
标签: google-app-engine objectify google-cloud-datastore gql