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.
Fonctionnalité | Index secondaire | index de recherche |
---|---|---|
Ordre de tri | L'index est trié par 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 en tant que 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 des données par préfixe des 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 sous la forme d'une jointure en zigzag 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 |
En plus de la sémantique, la syntaxe de l'instruction DDL permettant de créer un indice de recherche est différente de celle de l'instruction DDL permettant de créer un indice secondaire:
- Les colonnes indexées sont définies séparément de l'ordre de tri dans l'index de recherche.
- 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