Recherche par rapport aux index secondaires

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 clause ON de l'instruction CREATE SEARCH INDEX n'a pas d'importance.

Étape suivante