2017-08-10 14 views
0

Google App Engineを新しいアプリに使用しています。 Datastoreのインデックスの仕組みを理解しようとしているGoogleのDatastoreを使用したいと考えています。Google Cloud Datastoreのインデックス

インデックスにはいくつかの制限があることがわかりました。特にエンティティインデックスの制限に重点を置いています。

我々は

1.How多くのあらかじめ定義されたインデックスは、合計でContact種類のために作成され、

Main class 

Contact 
{ 
    @Indexed 
    private String name; 

    @Embedded 
    @Indexed 
    private CStatus cstatus; 
} 

Embedded class 

CStatus 
{ 
    private Long start_time = 0L; 

    public enum Status 
    { 
     ACTIVE, PAUSE, DELETED 
    }; 

    private String status = null; 
} 

は私が連絡先のインスタンスを保存していると、私たちのモデルの一つで財産が埋め込まれていますか?

2.合計でいくつのインデックスエントリが作成されますか?

3. Datastoreには、開発者の遊び場がありますか? Datastoreの統計情報を確認しましたが、インデックスエントリのリストを更新するのに24〜48時間かかります。

答えて

1

あなたのコードによれば、2つの単純なインデックスが作成されます。 1はnameであり、もう1つはstatusである。

他のインデックスを必要とするクエリを実行するコードの他の場所にもインデックスが作成されることに注意してください。

もう1つ注目すべきことは、インデックスの200制限は、1つの属性を使用するインデックスには適用されないことです。複数の属性を使用する複合インデックスに適用されます。

まだダミープロジェクトを作成してその上でコードをテストしない限り、私が知っている遊び場はありません。それ以外の場合は、Googleがその問題に対処するまで開発環境でプレーするだけです。

+0

cstatusは埋め込みオブジェクトであり、2つのプロパティを含んでいます。これらの2つのプロパティには、別々の事前定義されたインデックスもありますか? – Rams

+0

インデックスを作成するクラス 'Contact'は、そこに格納されているオブジェクトが複雑なインスタンスであっても、単一の属性を使用するためです。希望が役立ちます。 – Y2H

+0

ここで単一の属性は何ですか? cstatusの事前定義インデックスには、cstatusクラスのすべてのプロパティが含まれていますか。 – Rams

関連する問題