L'indice ScaNN utilizza l'indicizzazione basata sulla quantizzazione ad albero, in cui gli indici apprendono
un albero di ricerca insieme a una funzione di quantizzazione (o hashing). Quando esegui
una query, l'albero di ricerca viene utilizzato per ridurre lo
spazio di ricerca, mentre la quantizzazione viene utilizzata per comprimere le dimensioni dell'indice. Questa eliminazione
velocizza il calcolo del punteggio di somiglianza, ovvero della distanza, tra
il vettore della query e i vettori del database.
Per ottenere sia una frequenza di query al secondo (QPS) elevata
sia un richiamo elevato con le query dei vicini più prossimi, devi partizionare
l'albero dell'indice ScaNN nel modo più appropriato per i tuoi dati
e le tue query.
I modelli di incorporamento ad alta dimensionalità possono conservare gran parte delle informazioni con una dimensionalità molto
inferiore. Ad esempio, puoi conservare il 90% delle informazioni con
solo il 20% delle dimensioni dell'incorporamento. Per velocizzare questi set di dati,
l'indice ScaNN di AlloyDB AI esegue automaticamente la riduzione delle dimensioni
utilizzando l'analisi delle componenti principali
(PCA) sui vettori indicizzati, il che riduce ulteriormente l'utilizzo di CPU e memoria per
la ricerca vettoriale. Per ulteriori informazioni, vedi
scann.enable_pca.
Poiché la riduzione delle dimensioni causa una leggera perdita di richiamo nell'indice, l'indice
ScaNN di AlloyDB AI compensa la perdita di richiamo
eseguendo prima un passaggio di ranking
con un numero maggiore di candidati vettoriali PCAed dall'indice. Poi,
ScaNN riordina i candidati vettoriali PCA in base ai vettori originali.
Per ulteriori informazioni, vedi scann.pre_reordering_num_neighbors.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[[["\u003cp\u003eScaNN index employs tree-quantization to accelerate vector similarity scoring by pruning the search space and compressing index size.\u003c/p\u003e\n"],["\u003cp\u003eOptimal tree partitioning in ScaNN is crucial for achieving high query-per-second rates and recall in nearest-neighbor queries.\u003c/p\u003e\n"],["\u003cp\u003eAlloyDB ScaNN automatically reduces dimensionality using Principal Component Analysis (PCA) to enhance speed and minimize resource consumption for high-dimensional embedding datasets.\u003c/p\u003e\n"],["\u003cp\u003eAlloyDB ScaNN compensates for recall loss from PCA by initially ranking a larger pool of PCA'ed vector candidates and subsequently re-ranking them using the original vectors.\u003c/p\u003e\n"]]],[],null,["Select a documentation version: 15.7.1keyboard_arrow_down\n\n- [Current (16.8.0)](/alloydb/omni/current/docs/ai/scann-vector-query-perf-overview)\n- [16.8.0](/alloydb/omni/16.8.0/docs/ai/scann-vector-query-perf-overview)\n- [16.3.0](/alloydb/omni/16.3.0/docs/ai/scann-vector-query-perf-overview)\n- [15.12.0](/alloydb/omni/15.12.0/docs/ai/scann-vector-query-perf-overview)\n- [15.7.1](/alloydb/omni/15.7.1/docs/ai/scann-vector-query-perf-overview)\n- [15.7.0](/alloydb/omni/15.7.0/docs/ai/scann-vector-query-perf-overview)\n\n\u003cbr /\u003e\n\nThis page provides a conceptual overview of improving vector query performance using AlloyDB AI's Scalable Nearest Neighbor (ScaNN) index. For more information, see [Create indexes and query vectors](/alloydb/omni/15.7.1/docs/ai/store-index-query-vectors?resource=scann).\n\n\u003cbr /\u003e\n\nThe ScaNN index uses tree-quantization-based indexing, in which indexes learn\na search tree together with a quantization (or hashing) function. When you run\na query, the search tree is used to prune the\nsearch space, while quantization is used to compress the index size. This pruning\nspeeds up the scoring of the similarity---in other words, the distance---between\nthe query vector and the database vectors.\n\nTo achieve both a high query-per-second rate (QPS)\nand a high recall with your nearest-neighbor queries, you must partition\nthe tree of your ScaNN index in a way that is most appropriate to your data\nand your queries.\n\nHigh-dimensional embedding models can retain much of the information at much\nlower dimensionality. For example, you can retain 90% of the information with\nonly 20% of the embedding's dimensions. To help speed up such datasets,\nthe AlloyDB AI ScaNN index automatically performs dimension reduction\nusing [Principal Component Analysis](https://en.wikipedia.org/wiki/Principal_component_analysis)\n(PCA) on the indexed vectors, which further reduces CPU and memory usage for\nthe vector search. For more information, see\n[`scann.enable_pca`](/alloydb/omni/15.7.1/docs/reference/scann-index-reference).\n\nBecause dimension reduction causes minor recall loss in the index, the\nAlloyDB AI ScaNN index compensates for recall loss\nby first performing a ranking\nstep with a larger number of PCAed vector candidates from the index. Then,\nScaNN re-ranks the PCAed vector candidates by the original vectors.\nFor more information, see [`scann.pre_reordering_num_neighbors`](/alloydb/omni/15.7.1/docs/reference/scann-index-reference).\n\nWhat's next\n\n- Learn [best practices for tuning ScaNN indexes](/alloydb/omni/15.7.1/docs/ai/best-practices-tuning-scann).\n- [Get started with vector embeddings using AlloyDB AI](https://codelabs.developers.google.com/alloydb-ai-embedding#0).\n- Learn more about the [AlloyDB AI ScaNN index](https://cloud.google.com/blog/products/databases/understanding-the-scann-index-in-alloydb?e=48754805)."]]