Referenz für index.yaml

App Engine gibt für jedes Attribut einer Entität einen einfachen Index vor. Eine App Engine-Anwendung kann weitere benutzerdefinierte Indexe in der Indexkonfigurationsdatei index.yaml definieren. Der Entwicklungsserver kann die von der Anwendung benötigte Indexkonfiguration generieren, wenn er diese Abfragen beim Testen Ihrer Anwendung ausführt. Sie können Indexe vor dem Hochladen der Anwendung manuell anpassen, wenn Sie die Datei index.yaml bearbeiten. Unter Datenspeicherindexe konfigurieren finden Sie weitere Informationen zum Bereitstellen und Verwalten von Indexkonfigurationen.

Beispiel

Es folgt ein Beispiel für eine Datei 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

Syntax

Für die Syntax der Datei index.yaml wird das YAML-Format verwendet. Die Datei index.yaml hat ein einzelnes Listenelement mit dem Namen indexes. Jedes Element in der Liste steht für einen Index in der Anwendung.

Der Index kann die folgenden Elemente enthalten:

Element Beschreibung
kind Erforderlich. Die Art der Entität für die Abfrage. In der Regel ist dies der Name der Model-Klasse, die das Modell für die Entitäten definiert.
properties

Eine Liste der Properties, die als Spalten des Index in der folgenden Reihenfolge hinzugefügt werden sollen: Properties in Gleichheitsfiltern, Properties in Ungleichheitsfiltern und zum Schluss die Sortierreihenfolge und ihre Richtungen.

Jedes Element in dieser Liste weist folgende Elemente auf:

name
Name des Datenspeichers der Property
direction
Sortierrichtung, entweder asc für aufsteigend oder desc für absteigend. Diese muss nur für Properties angegeben werden, die in Sortierreihenfolgen der Abfrage verwendet werden, und muss mit der Richtung in der Abfrage übereinstimmen. Die Standardeinstellung ist asc.
ancestor yes, wenn die Abfrage eine Ancestor-Klausel hat. Dies kann entweder Query.ancestor() oder eine GQL ANCESTOR IS-Klausel sein. Der Standardwert ist no.

Automatische und manuelle Indexe

Wenn der Entwicklungs-Webserver eine generierte Indexdefinition zur Datei index.yaml hinzufügt, erfolgt dies unterhalb der folgenden Zeile. Falls diese Zeile noch nicht vorhanden ist, wird sie eingefügt:

# AUTOGENERATED

Der Entwicklungs-Webserver behandelt alle Indexdefinitionen unter dieser Zeile als automatische Einträge und kann vorhandene Definitionen unter dieser Zeile aktualisieren, wenn in der Anwendung Abfragen durchgeführt werden.

Alle Indexdefinitionen oberhalb dieser Zeile werden als manuell kontrollierte Einträge angesehen und nicht vom Entwicklungs-Webserver aktualisiert. Der Webserver nimmt Änderungen nur unterhalb der Zeile vor und zwar nur dann, wenn in der Datei index.yaml kein Index für eine von der Anwendung ausgeführte Abfrage beschrieben wird. Verschieben Sie automatische Indexdefinitionen an eine Stelle vor dieser Zeile, um diese manuell zu verwalten.

Indexkonfigurationsdatei bereitstellen

Führen Sie den folgenden Befehl aus, um die Indexkonfigurationsdatei bereitzustellen:

gcloud

gcloud app deploy index.yaml

appcfg

Wenn Sie das ursprüngliche App Engine SDK installiert haben, können Sie Folgendes ausführen:

appcfg.py update_indexes [YOUR_APP_DIR]

Nicht verwendete Indexe löschen

Wenn Sie einen Index in der Indexkonfiguration ändern oder aus ihr entfernen, wird der ursprüngliche Index nicht automatisch aus App Engine gelöscht. Dadurch haben Sie die Möglichkeit, weiterhin eine ältere Version der Anwendung auszuführen, während neue Indexe aufgebaut werden. Außerdem können Sie die ältere Version sofort wiederherstellen, wenn bei einer neueren Version ein Problem festgestellt wird.

Wenn Sie sich sicher sind, dass alte Indexe nicht mehr benötigt werden, können Sie sie so aus App Engine löschen:

gcloud datastore cleanup-indexes index.yaml
Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

App Engine-Standardumgebung für Python 2