0

[OK]を、Googleクラウドにこの写真を見る:複合インデックスを強制的にGoogle Cloudに表示するにはどうすればよいですか?

enter image description here

をそれは言っ

以下は、このアプリケーションのための複合インデックスであるこれらのインデックスは、アプリケーションのインデックス設定ファイルで管理されている。。」

public static long getPropertyMaxIDStronglyConsistent(String entityName, String propertyName, Key parentKey){ 
      // Order alphabetically by property name: 
      //Key parentKey=KeyFactory.createKey(parentEntityName, parentName); 
      Query q = new Query(entityName, parentKey).setAncestor(parentKey) 
          .addSort(propertyName, SortDirection.DESCENDING); 

      //List<Entity> results = datastore.prepare(q).asList(FetchOptions.Builder.withDefaults()); 
      List<Entity> results = datastore.prepare(q) 
          .asList(FetchOptions.Builder.withLimit(5));   
      if(results.size()>0){ 
       Entity e=results.get(0); 
       long maxID=(Long)e.getProperty(propertyName); 


       return maxID; 

      } 
      else{ 
       return 0; 
      } 

    } 

我々はこのfunctioを実行していることを仮定しますと、この次のコードを参照してくださいn1getPropertyMaxIDStronglyConsistent("EnglishClass", "ClassNo", KeyFactory.createKey("EnglishClassParent", "EnglishClassParentName"))。私は「EnglishClassは」「提供」状態でインデックス表に表示されていない種類の場合は、はfunction1つもりな作業ではないことが判明何

私は何をしたのか分かりませんでしたが、数時間苦労した後、突然インデックス「EnglishClass」が登場しました。 「EnglishClass」のステータスが「」と表示された場合、問題なく正常に動作します。

私の質問は

複合インデックスどのようなものがありますか。

なぜ機能1を実行した直後に表示されませんでしたか?

ステータスは「表示」とは何ですか?

強制的に複合インデックスをGoogle Cloudに表示する方法

エクストラ:私は

<datastore-indexes autoGenerate="true"> 
    <datastore-index kind="EnglishClass" ancestor="true" source="auto"> 
     <property name="ClassNo" direction="desc"/> 

    </datastore-index> 
</datastore-indexes> 

を持っている。しかし、それはまだApp Engineデータストア用

答えて

2

インデックスが(these docsthese docsに記述されている動作しませんでしたデータストア・インデックス・auto.xmlで Java 7の原則はJava 8でも同じです)。

  1. 複合インデックスは、モデルの複数のプロパティで構成されるインデックスです。たとえば、Model.name、次にModel.creationDateでモデルをソートするインデックスです。複合インデックスは、クエリによって記述された順序でデータストアレコードにアクセスする必要があるクエリで使用されます。
  2. 一部のインデックスは、datastore-indexes.xmlファイルで宣言する必要があります。 - see here
  3. ステータスは、インデックスを使用できる状態にすることを意味します。インデックスが最初にアップロードされるとき、App Engineはインデックスを構築しなければならず、インデックスがビルドされるまで、ビルドインデックスを使用するクエリは例外をスローします。したがって、それらを必要とするコードをデプロイする前にupdate indexesに役立つことがあります。
  4. アプリをautomatically configure indexesに設定します。
+0

インデックスを手動で追加しましたが、「英語クラス」インデックスは表示されましたが、それでも機能しませんでした。なぜだか分からない? – Tum

+0

質問のインデックスに手動で加えた変更を表示して、クエリに一致するかどうかを確認します。 – snakecharmerb

+0

こんにちは、私は私の質問を更新しました。それはまだまだ働いていない!なぜだか分からない? – Tum

関連する問題