App Engine では、エンティティの各プロパティに単純なインデックスが事前定義されています。さらに、App Engine アプリケーションでは、カスタム インデックスを index.yaml
というインデックス構成ファイルで定義することもできます。インデックスを手動で調整するには、アプリケーションをアップロードする前に index.yaml
ファイルを編集します。
例
index.yaml
ファイルの例を次に示します。
indexes:
- kind: Cat
ancestor: no
properties:
- name: name
- name: age
direction: desc
- kind: Cat
properties:
- name: name
direction: asc
- name: whiskers
direction: desc
# This pound sign is the syntax for a comment.
- kind: Store
ancestor: yes
properties:
- name: business
direction: asc
- name: owner
direction: asc
構文
index.yaml
の構文は YAML 形式です。index.yaml
ファイルには、indexes
という名前のリスト要素が 1 つだけあります。このリストに含まれる各要素で、アプリケーションのインデックスを表します。
個々のインデックスは、次の要素を持つことができます。
要素 | 説明 |
---|---|
kind |
必須です。クエリに対応するエンティティの種類です。 |
properties |
インデックスの列として並べ替え順で指定したプロパティのリストです。まず、等式フィルタで使用するプロパティ、次に、不等式フィルタで使用するプロパティ、そして並べ替え順序とその方向を指定します。 このリスト内の各要素には、次の要素を指定します。
|
ancestor |
クエリに祖先句がある場合は yes です。デフォルトは no です。
|
インデックス構成ファイルのデプロイ
index.yaml
ファイルは、ソースコード ディレクトリ内であればどこに配置しても構いません。
現在使用中のバージョンを変更せずにディスパッチ構成ファイルをデプロイするには、お使いの環境に応じて、ディスパッチ ファイルを含むディレクトリで次のいずれかのコマンドを使用します。
gcloud
gcloud app deploy index.yaml
Maven
mvn appengine:deployIndex index.yaml
Gradle
gradle appengineDeployIndex index.yaml
IDE
IntelliJ または Eclipse を使用する場合は、デプロイメント フォームを使用して、デプロイ対象の個々の構成ファイルを選択します。
使用されていないインデックスの削除
インデックス構成でインデックスを変更または削除しても、元のインデックスは App Engine から自動的に削除されません。これにより、新しいインデックスを作成しながらアプリの古いバージョンを実行したり、新しいバージョンで問題が発見されたらすぐに古いバージョンを復元したりできます。
古いインデックスが不要になったことが確実な場合は、次のコマンドを実行して、App Engine から削除できます。
gcloud datastore cleanup-indexes index.yaml