Documentation de référence sur le fichier index.yaml

App Engine prédéfinit un index simple sur chaque propriété d'une entité. Une application App Engine peut définir d'autres index personnalisés dans un fichier de configuration d'index appelé index.yaml. Le serveur de développement peut générer la configuration d'index requise par votre application lorsqu'il effectue ces requêtes pendant que vous testez votre application. Vous pouvez ajuster les index manuellement en modifiant le fichier index.yaml avant d'importer l'application. Consultez la section Configurer des index Datastore pour en savoir plus sur le déploiement et la gestion des configurations d'index.

Exemple

Voici un exemple de fichier 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

Syntaxe

La syntaxe utilisée dans index.yaml est au format YAML. Le fichier index.yaml comporte un seul élément de liste appelé indexes. Chaque élément de la liste représente un index lié à l'application.

Les éléments d'index peuvent comporter les éléments suivants :

Élément Description
kind Obligatoire. Genre de l'entité pour la requête. Il s'agit généralement du nom de la classe Model qui définit le modèle des entités.
properties

Liste des propriétés à inclure sous forme de colonnes de l'index, classée par ordre de tri : les propriétés utilisées dans les filtres d'égalité en premier, puis la propriété utilisée dans les filtres d'inégalité, et enfin les ordres de tri et leurs sens.

Chaque élément de la liste comporte les éléments suivants :

name
Nom de datastore de la propriété.
direction
L'ordre du tri, soit asc pour l'ordre croissant, soit desc pour l'ordre décroissant. Cet élément n'est obligatoire que pour les propriétés utilisées dans l'ordre de tri de la requête. Il doit correspondre à l'ordre utilisé par la requête. La valeur par défaut est asc.
ancestor yes si la requête comporte une clause ascendante (une clause Query.ancestor() ou GQL ANCESTOR IS). La valeur par défaut est no.

Index automatiques et index manuels

Lorsque le serveur Web de développement ajoute une définition d'index générée au fichier index.yaml, il effectue cette opération sous la ligne suivante, en l'insérant si nécessaire :

# AUTOGENERATED

Le serveur Web de développement considère toutes les définitions d'index situées en dessous de cette ligne comme étant automatiques. Il est susceptible de mettre à jour les définitions figurant sous cette ligne lorsque l'application génère des requêtes.

Toutes les définitions d'index situées au-dessus de cette ligne sont considérées comme étant contrôlées manuellement, et ne sont pas mises à jour par le serveur Web de développement. Ce dernier ne modifiera que les éléments situés sous la ligne, à condition que le fichier index.yaml complet ne décrive pas un index qui rend compte d'une requête exécutée par l'application. Pour prendre le contrôle d'une définition d'index automatique, déplacez-la au-dessus de cette ligne.

Déployer le fichier de configuration d'index

Pour déployer le fichier de configuration d'index, exécutez la commande suivante :

gcloud

gcloud app deploy index.yaml

appcfg

Si vous installez le SDK App Engine d'origine, exécutez la commande suivante :

appcfg.py update_indexes [YOUR_APP_DIR]

Supprimer des index inutilisés

Lorsque vous modifiez ou supprimez un index dans la configuration d'index, l'index d'origine n'est pas automatiquement supprimé d'App Engine. Cela vous donne la possibilité d'utiliser une ancienne version de l'application pendant la création des index ou de revenir immédiatement à l'ancienne version si un problème est détecté dans une version plus récente.

Lorsque vous êtes certain de ne plus avoir besoin des anciens index, vous pouvez les supprimer d'App Engine comme suit :

gcloud datastore cleanup-indexes index.yaml
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement standard App Engine pour Python 2