Cette page décrit les fonctionnalités de recherche et des index secondaires.
Lorsque vous choisissez entre des index de recherche et des index secondaires, gardez à l'esprit que les index de recherche doivent être le choix par défaut pour les cas d'utilisation en texte intégral, et que les index secondaires doivent être l'option par défaut pour tout le reste. Le tableau suivant décrit quand utiliser chaque type d'index.
Caractéristique | Index secondaire | index de recherche |
---|---|---|
Ordre de tri | L'index est trié en fonction de toutes les colonnes de clé d'index | L'index de recherche ne peut être trié que sur deux colonnes INT64 contrôlées par l'utilisateur au maximum |
Tableaux | Les tableaux ne sont pas acceptés comme clés d'index secondaires. | Les index de recherche acceptent l'indexation par tableau. Tous les jetons d'un document sont colocalisés dans la même division. Par conséquent, les transactions qui modifient une ligne n'écrivent que dans une seule partition d'index. |
Recherches | La recherche par clé d'index n'a besoin d'accéder qu'à une seule répartition. | Les requêtes qui utilisent l'index de recherche doivent généralement lire à partir de tous les fractionnements d'une partition donnée. La seule exception concerne la mise en correspondance des formats top-k. |
Indexation multicolonne | Les index secondaires peuvent inclure plusieurs colonnes de clés. Pour une exécution efficace, les requêtes doivent rechercher les données par préfixe de colonnes de clé d'index. | Les index de recherche peuvent indexer plusieurs colonnes. Les requêtes peuvent spécifier des expressions logiques complexes (conjonctions, disjonctions, négations) sur n'importe quel sous-ensemble des colonnes indexées, tout en s'exécutant efficacement. |
Intersection d'index | Les utilisateurs peuvent réécrire leur requête pour joindre plusieurs index secondaires. | L'intersection de plusieurs colonnes indexées est implémentée en tant que jointure en zig-zag locale efficace, suivie d'une union de fusion distribuée (qui combine les résultats de toutes les divisions pertinentes). |
Lire des données | API de requête ou de lecture SQL | Requête SQL |
Outre la sémantique, la syntaxe de l'instruction LDD pour créer un index de recherche est la suivante : différente de la syntaxe LDD pour créer un index secondaire:
- Les colonnes indexées sont définies séparément de l'ordre de tri dans le dans l'index de recherche Google.
- L'ordre des colonnes
TOKENLIST
dans la clauseON
de l'instructionCREATE SEARCH INDEX
n'a pas d'importance.
Étape suivante
- En savoir plus sur les index de recherche
- En savoir plus sur les index secondaires