Google app engine 安全地删除字段索引

Google app engine 安全地删除字段索引,google-app-engine,objectify,Google App Engine,Objectify,我正在将应用程序引擎应用程序的数据模型移动到Objectify,我注意到Objectify for it's entities在默认情况下将实体的所有属性指定为未索引,这对我来说是有意义的,因为它会更快地写入,并且占用更少的空间 但GAE的默认设置(至少在我编写应用程序时)是在默认情况下在所有字段上创建字段endex,因此我的所有字段都被索引。还有数十万行 我真的只需要索引这些字段的一小部分,我想将它们设置为未索引。我想在objectify中将这些字段设置为@Unindex,但如何删除数据存储中

我正在将应用程序引擎应用程序的数据模型移动到Objectify,我注意到Objectify for it's entities在默认情况下将实体的所有属性指定为未索引,这对我来说是有意义的,因为它会更快地写入,并且占用更少的空间

但GAE的默认设置(至少在我编写应用程序时)是在默认情况下在所有字段上创建字段endex,因此我的所有字段都被索引。还有数十万行


我真的只需要索引这些字段的一小部分,我想将它们设置为未索引。我想在objectify中将这些字段设置为@Unindex,但如何删除数据存储中已有的索引数据?

要添加或删除单个属性索引,请更改元数据(添加/删除@Index和@Unindex),然后加载并保存实体。为此,您可能希望使用map/reduce。

因此,没有办法“真空”这些索引?除了加载/保存每个单独的实体之外,没有。这太痛苦了。如果在每个索引上都有一个删除按钮,那就太好了!但我想不管什么原因都不会发生。抽真空自定义索引非常容易。遗憾的是,属性索引很难做到这一点……因此,如果我在没有指定之前的属性之后,现在将属性指定为@Unindexed,然后保留一个新行。。该新行属性值是否未编制索引?或者,由于所有现有行都已编制索引,它是否仍将编制索引?单个属性索引(即@Index/@Unindex)是基于每个实体的。如果用索引保存,则它有一个索引。注释仅控制实体保存时的行为。有关Entity.setProperty()和Entity.setUnindexedProperty()的信息,请参见GAE javadocs