我从golang-appengine项目中将一些实体存储在数据存储区中。 我用'noindex'注释了一些字段,所以它没有为某些列创建简单的索引。
现在我删除了noindex-annotation但我不知道如何重建索引。我试过了:
gcloud datastore create-indexes ../path/to/file/index.yaml
但它没有重建索引。所以我只能搜索最近添加的值,但不能搜索旧值。
如何重建索引?
由于
答案 0 :(得分:2)
不幸的是,索引属性的唯一方法是将实体更新/重写为数据存储区,该属性以前是未编入索引的。
来自https://cloud.google.com/appengine/docs/java/datastore/indexes的文档:
...将属性从未索引更改为索引不会影响在更改之前可能已创建的任何现有实体。对属性进行查询过滤将不会返回此类现有实体,因为实体在创建时未写入查询索引。要使实体可以通过将来的查询访问,您必须将它们重写为数据存储区,以便将它们输入到适当的索引中。