2016-08-31 5 views
1

私はgolang-appengine-projectからデータストアにいくつかのエンティティを保存しました。 いくつかのフィールドに 'noindex'と注釈を付けたので、いくつかの列に対して単純なインデックスを作成しませんでした。データストアインデックスを再作成

ここでnoindexアノテーションを削除しましたが、インデックスを再構築する方法がわかりません。私は試しました:

gcloud datastore create-indexes ../path/to/file/index.yaml 

しかし、インデックスを再構築しませんでした。だから私は最近追加された値だけを検索できますが、古い値は検索できません。

インデックスを再構築するにはどうすればよいですか?

おかげ

+1

インデックスに存在しないすべてのエンティティをフェッチして配置する必要があります。 –

+1

[GAE Datastoreでの遡及的インデックス作成]の可能な複製(http://stackoverflow.com/questions/21008580/retroactive-indexing-in-gae-datastore) –

答えて

2

は残念ながら、インデックスへの唯一の道以前にインデックスなしだっプロパティは、データストアにエンティティを書き換え/更新することです。インデックス付きのインデックス付けされていないからプロパティを変更すると、変更前に作成されている可能性があり、既存のエンティティには影響を与えません

...:https://cloud.google.com/appengine/docs/java/datastore/indexesでドキュメントから

。エンティティが作成されたときにクエリのインデックスに書き込まれなかったため、プロパティのフィルタリングではそのような既存のエンティティが返されません。エンティティを将来のクエリでアクセス可能にするには、それらを適切なインデックスに入力するようにDatastoreに書き直す必要があります。

関連する問題