Ricerca e indici secondari

Questa pagina descrive le funzionalità per la ricerca e gli indici secondari.

Quando decidi tra indici di ricerca e indici secondari, tieni presente che gli indici di ricerca dovrebbero essere la scelta predefinita per i casi d'uso di testo completo e gli indici secondari dovrebbero essere l'opzione predefinita per tutto il resto. La la seguente tabella descrive quando utilizzare ciascun tipo di indice.

Funzionalità Indice secondario Indice della Ricerca
Ordinamento L'indice viene ordinato in base a tutte le colonne chiave dell'indice L'indice di ricerca può essere ordinato solo in base a un massimo di due colonne INT64 controllate dall'utente
Array Gli array non sono supportati come chiavi degli indici secondari. Gli indici di ricerca supportano l'indicizzazione di array. Tutti i token di un documento sono collocati nella stessa suddivisione. Di conseguenza, le transazioni che modificano una riga scrivono solo in una suddivisione dell'indice.
Le ricerche La ricerca per chiave dell'indice deve accedere a una sola suddivisione Le query che utilizzano l'indice di ricerca in genere devono leggere da tutte le suddivisioni di una determinata partizione. L'unica eccezione è la corrispondenza del pattern top-k.
Indicizzazione a più colonne Gli indici secondari possono includere più colonne chiave. Per un'esecuzione efficiente, le query devono cercare i dati in base al prefisso delle colonne delle chiavi di indice. Gli indici di ricerca possono indicizzare più colonne. Le query possono specificare espressioni logiche complesse (congiunzioni, disgiunzioni, negazioni) su qualsiasi sottoinsieme delle colonne indicizzate ed essere comunque eseguite in modo efficiente
Intersezione dell'indice Gli utenti possono riscrivere la query per unire più indici secondari. L'intersezione di più colonne indicizzate è implementata come un join a zig zag locale efficiente, seguito da un'unione per unione distribuita (che combina i risultati di tutte le suddivisioni pertinenti).
Lettura dei dati SQL Query o API Read Query SQL

Oltre alla semantica, la sintassi dell'istruzione DDL per creare un indice di ricerca è diversa dalla sintassi DDL per creare un indice secondario:

  • Le colonne indicizzate vengono definite separatamente dall'ordinamento nell'indice di ricerca.
  • L'ordine delle colonne TOKENLIST nella clausola ON dell'istruzione CREATE SEARCH INDEX è irrilevante.

Passaggi successivi