Il richiamo misura l'efficacia con cui una ricerca recupera tutti gli elementi pertinenti per una determinata query. Ad esempio, immagina di avere 100 embedding, ognuno dei quali rappresenta un'entità nel tuo database. Esegui una query sugli embedding con un vettore target e la limiti a 10 risultati. Una Vector Search KNN trova i 10 vettori più vicini esatti utilizzando un metodo di calcolo di forza bruta, che genera un richiamo del 100%. AlloyDB AI utilizza questo metodo per impostazione predefinita se non viene creato o scelto un indice di ricerca vettoriale. Quando crei un indice vettoriale in AlloyDB Omni, in genere viene utilizzato l'ANN, che potrebbe partizionare i vettori in base alla somiglianza per facilitare un recupero più rapido. Di conseguenza, utilizzando l'ANN, i 10 vettori restituiti nell'esempio precedente potrebbero non essere esattamente i 10 vettori più vicini. Se 9 dei 10 vettori recuperati sono i più vicini nello spazio al vettore della query, il recall è del 90%. Per saperne di più, consulta Misura il recall delle query vettoriali.
La latenza delle query definisce la velocità con cui vengono generati i risultati di ricerca. Ad esempio, la latenza viene calcolata in base al tempo impiegato da una ricerca per restituire i vettori dopo l'invio di una query.
Scegli la tua strategia di ricerca
Quando esegui la ricerca vettoriale in AlloyDB Omni, scegli una delle seguenti strategie di ricerca:
| Strategia di ricerca | Descrizione | Casi d'uso |
| K-nearest neighbors (KNN) |
Un algoritmo che trova i punti dati dei k-nearest neighbor rispetto a un punto dati di una determinata query. Quando esegui una ricerca vettoriale senza creare un indice, per impostazione predefinita viene eseguita una ricerca KNN. Per migliorare ulteriormente le prestazioni della ricerca KNN, aggiungi la colonna di embedding e altre colonne correlate alla query all'archivio di colonne nel motore colonnare. Puoi aggiungere le colonne manualmente o utilizzando l'auto-colonnarizzazione. |
|
| Approximate Nearest Neighbors (ANN) | Un algoritmo che trova approssimativamente i punti dati più vicini. La rete neurale artificiale divide i punti dati dei clienti esistenti in piccoli gruppi in base alle somiglianze. |
|
I due tipi di indici vettoriali basati su ANN più comuni per AlloyDB Omni sono ScaNN e HNSW. Utilizza le seguenti linee guida per decidere quale tipo di indice è più adatto al tuo caso d'uso:
| Tipo di indice | Scopo dell'utilizzo | Vantaggi | Accelerazione del motore colonnare |
| ScaNN |
In genere è adatto per dati a bassa dimensionalità o set di dati di grandi dimensioni che superano la memoria. Scalabilità fino a 10 miliardi di vettori. |
Offre diversi vantaggi rispetto a HNSW su PostgreSQL standard:
|
La ricerca vettoriale con l'indice ScaNN può essere accelerata dal motore colonnare AlloyDB Omni. Per saperne di più, consulta Accelera la Vector Search con il motore colonnare. |
| HNSW |
In genere sono adatti per dati con dimensioni più elevate che rientrano in gran parte nella memoria cache. Scalabilità ottimale fino a 10-20 milioni di vettori. |
L'indice HNSW accelerato dal motore colonnare pgvector in AlloyDB Omni offre query vettoriali fino a 5 volte più veloci rispetto a PostgreSQL standard | La ricerca vettoriale con l'indice HNSW può essere accelerata dal motore colonnare AlloyDB Omni. Per saperne di più, consulta Accelera la Vector Search con il motore colonnare. |
Google consiglia di creare un indice vettoriale per ottimizzare le prestazioni delle query di ricerca vettoriale. Per saperne di più su come viene utilizzato l'indice ANN per le ricerche di similarità, consulta Crea indici utilizzando ScaNN.
Per accelerare la ricerca KNN filtrata, utilizza il motore colonnare.
Passaggi successivi
- Crea indici e vettori di query utilizzando ScaNN
- Crea indici utilizzando HNSW
- Ottimizza le prestazioni delle query vettoriali