Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Introduzione alla ricerca vettoriale
Questo documento fornisce una panoramica della
ricerca vettoriale in BigQuery. La ricerca vettoriale è una tecnica per confrontare oggetti simili utilizzando gli incorporamenti e viene utilizzata per potenziare i prodotti Google, tra cui la Ricerca Google, YouTube e Google Play. Puoi utilizzare la ricerca vettoriale per eseguire ricerche su larga scala. Quando utilizzi gli indici vettoriali con la ricerca vettoriale, puoi sfruttare tecnologie di base come l'indice di file invertito (IVF) e l'algoritmo ScaNN.
La ricerca vettoriale si basa sugli embedding. Gli incorporamenti sono vettori numerici di alta dimensione che rappresentano una determinata entità, ad esempio un testo o un file audio.
I modelli di machine learning (ML) utilizzano gli embedding per codificare la semantica di queste entità in modo da facilitare il ragionamento e il confronto. Ad esempio, un'operazione comune nei modelli di clustering, classificazione e consigli è misurare la distanza tra i vettori in uno spazio di embedding per trovare gli elementi più semanticamente simili.
Questo concetto di similarità e distanza semantica in uno spazio di embedding viene dimostrato visivamente se si considera come potrebbero essere tracciati elementi diversi.
Ad esempio, termini come gatto, cane e leone, che rappresentano tutti tipi di animali, sono raggruppati in questo spazio a causa delle loro caratteristiche semantiche condivise. Analogamente, termini come auto, camion e il termine più generico
veicolo formerebbero un altro cluster. Come mostrato nell'immagine seguente:
Puoi vedere che i cluster di animali e veicoli sono molto distanti tra loro. La separazione tra i gruppi illustra il principio
per cui più gli oggetti sono vicini nello spazio di embedding, più sono semanticamente
simili e distanze maggiori indicano una maggiore dissimmetria semantica.
BigQuery offre un'esperienza end-to-end per la generazione di embedding, l'indicizzazione dei contenuti ed l'esecuzione di ricerche vettoriali. Puoi completare ciascuna di queste attività indipendentemente o in un unico percorso. Per un tutorial
che mostra come completare tutte queste attività, consulta
Eseguire la ricerca semantica e la generazione basata sul recupero.
Per eseguire una ricerca vettoriale utilizzando SQL, utilizza la
funzione VECTOR_SEARCH.
Facoltativamente, puoi creare un indice di vettori utilizzando
la
istruzione CREATE VECTOR INDEX.
Quando viene utilizzato un indice vettoriale, VECTOR_SEARCH utilizza la tecnica di ricerca del vicino più prossimo approssimativo per migliorare il rendimento della ricerca vettoriale, con il compromesso della riduzione del ricovero e, di conseguenza, la restituzione di risultati più approssimativi. Senza un indice di vettori,
VECTOR_SEARCH utilizza la
ricerca bruta
per misurare la distanza per ogni record. Puoi anche scegliere di utilizzare la ricerca di brute force per ottenere risultati esatti anche quando è disponibile un indice di vettore.
Consigli di prodotti sostituti o corrispondenti: migliora le applicazioni di e-commerce suggerendo alternative ai prodotti in base al comportamento dei clienti e alla somiglianza dei prodotti.
Analisi dei log: aiuta i team a gestire in modo proattivo le anomalie nei log e
accelera le indagini. Puoi anche utilizzare questa funzionalità per arricchire il contesto per gli LLM, in modo da migliorare il rilevamento delle minacce, la forensistica e i flussi di lavoro per la risoluzione dei problemi. Per un notebook che illustra questo scenario, consulta Rilevamento e indagine di anomalie nei log con embedding di testo e ricerca vettoriale di BigQuery.
Clustering e targeting:segmenta i segmenti di pubblico con precisione. Ad esempio, una catena di ospedali potrebbe raggruppare i pazienti utilizzando note in linguaggio naturale e dati strutturati oppure un professionista del marketing potrebbe scegliere come target gli annunci in base all'intenzione di query.
Per un notebook che illustra questo scenario, consulta Create-Campaign-Customer-Segmentation.
Risoluzione delle entità e deduplica:ripulisci e consolida i dati.
Ad esempio, un'azienda pubblicitaria potrebbe deduplicare i record contenenti informazioni che consentono l'identificazione personale (PII) o un'azienda immobiliare potrebbe identificare gli indirizzi postali corrispondenti.
VECTOR_SEARCH: ti viene addebitato il costo della ricerca di immagini simili utilizzando i prezzi on demand o delle versioni.
On demand: ti viene addebitato il numero di byte scansionati nella tabella di base, nell'indice e nella query di ricerca.
Prezzi delle versioni: ti vengono addebitati gli slot necessari per completare il job all'interno della versione della prenotazione. I calcoli di somiglianza più grandi e complessi comportano costi maggiori.
Dichiarazione CREATE VECTOR INDEX: non è previsto alcun addebito per l'elaborazione necessaria per creare e aggiornare gli indici di vettori, a condizione che la dimensione totale dei dati della tabella indicizzata sia inferiore al limite per organizzazione. Per supportare l'indicizzazione oltre questo limite, devi fornire la tua prenotazione per la gestione dei job di gestione dell'indice.
Lo spazio di archiviazione è un fattore da considerare anche per gli embedding e gli indici. La quantità di byte memorizzati come embedding e indici è soggetta ai costi di archiviazione attiva.
Gli indici di vettori comportano costi di archiviazione quando sono attivi.
Puoi trovare le dimensioni dello spazio di archiviazione dell'indice utilizzando la visualizzazione INFORMATION_SCHEMA.VECTOR_INDEXES.
Se l'indice di vettori non ha ancora raggiunto la copertura del 100%, ti verrà comunque addebitato il costo di tutto ciò che è stato indicizzato. Puoi controllare la copertura dell'indice utilizzando la visualizzazione INFORMATION_SCHEMA.VECTOR_INDEXES.
Prova il tutorial Cercare gli embedding con la ricerca vettoriale per scoprire come creare un indice vettoriale e poi eseguire una ricerca vettoriale per gli embedding sia con che senza l'indice.
Esegui una ricerca vettoriale con gli embedding per cercare testo simile.
Esegui la generazione RAG (Retrieval Augmented Generation) utilizzando i risultati di ricerca vettoriali per aumentare l'input del prompt e migliorare i risultati.
[[["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\u003eVector search in BigQuery allows searching embeddings to identify semantically similar entities, using high-dimensional numerical vectors that represent data like text or audio.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eVECTOR_SEARCH\u003c/code\u003e function, optionally enhanced by a vector index, enables this search, with the index improving performance through Approximate Nearest Neighbor search, and brute force offering an alternative to get exact results.\u003c/p\u003e\n"],["\u003cp\u003eEmbedding generation combined with vector search powers use cases like retrieval-augmented generation (RAG), resolving similar support cases, patient profile matching, and analyzing sensor data.\u003c/p\u003e\n"],["\u003cp\u003ePricing for \u003ccode\u003eCREATE VECTOR INDEX\u003c/code\u003e and \u003ccode\u003eVECTOR_SEARCH\u003c/code\u003e falls under BigQuery compute pricing, with free indexing up to a per-organization limit, after which users need to use their own reservations to index.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eVECTOR_SEARCH\u003c/code\u003e queries aren't supported by BigQuery BI Engine, and BigQuery's data security and governance rules apply to its use.\u003c/p\u003e\n"]]],[],null,["# Introduction to vector search\n=============================\n\nThis document provides an overview of\n[vector search](/bigquery/docs/vector-search) in BigQuery. Vector\nsearch is a technique to compare similar objects using embeddings, and it\nis used to power Google products, including Google Search,\nYouTube, and Google Play. You can use vector search to perform\nsearches at scale. When you use [vector indexes](/bigquery/docs/vector-index)\nwith vector search, you can take advantage of foundational technologies like\ninverted file indexing (IVF) and the\n[ScaNN algorithm](https://research.google/blog/announcing-scann-efficient-vector-similarity-search/).\n\nVector search is built on embeddings. Embeddings are high-dimensional numerical\nvectors that represent a given entity, like a piece of text or an audio file.\nMachine learning (ML) models use embeddings to encode semantics about such\nentities to make it easier to reason about and compare them. For example, a\ncommon operation in clustering, classification, and recommendation models is to\nmeasure the distance between vectors in an\n[embedding space](https://en.wikipedia.org/wiki/Latent_space) to find items\nthat are most semantically similar.\n\nThis concept of semantic similarity and distance in an embedding space is\nvisually demonstrated when you consider how different items might be plotted.\nFor example, terms like *cat* , *dog* , and *lion* , which all represent types of\nanimals, are grouped close together in this space due to their shared semantic\ncharacteristics. Similarly, terms like *car* , *truck* , and the more generic term\n*vehicle* would form another cluster. This is shown in the following image:\n\nYou can see that the animal and vehicle clusters are positioned far apart\nfrom each other. The separation between the groups illustrates the principle\nthat the closer objects are in the embedding space, the more semantically\nsimilar they are, and greater distances indicate greater semantic dissimilarity.\n\nBigQuery provides an end-to-end experience for generating\nembeddings, indexing content, and performing vector searches. You can complete\neach of these tasks independently, or in a single journey. For a tutorial\nthat shows how to complete all of these tasks, see\n[Perform semantic search and retrieval-augmented generation](/bigquery/docs/vector-index-text-search-tutorial).\n\nTo perform a vector search by using SQL, you use the\n[`VECTOR_SEARCH` function](/bigquery/docs/reference/standard-sql/search_functions#vector_search).\nYou can optionally create a [vector index](/bigquery/docs/vector-index) by\nusing the\n[`CREATE VECTOR INDEX` statement](/bigquery/docs/reference/standard-sql/data-definition-language#create_vector_index_statement).\nWhen a vector index is used, `VECTOR_SEARCH` uses the\n[Approximate Nearest Neighbor](https://en.wikipedia.org/wiki/Nearest_neighbor_search#Approximation_methods)\nsearch technique to improve vector search performance, with the\ntrade-off of reducing\n[recall](https://developers.google.com/machine-learning/crash-course/classification/precision-and-recall#recallsearch_term_rules)\nand so returning more approximate results. Without a vector index,\n`VECTOR_SEARCH` uses\n[brute force search](https://en.wikipedia.org/wiki/Brute-force_search)\nto measure distance for every record. You can also choose to use brute\nforce to get exact results even when a vector index is available.\n\nThis document focuses on the SQL approach, but you can also perform\nvector searches by using BigQuery DataFrames in Python. For a notebook\nthat illustrates the Python approach, see\n[Build a Vector Search application using BigQuery DataFrames](https://github.com/googleapis/python-bigquery-dataframes/blob/main/notebooks/generative_ai/bq_dataframes_llm_vector_search.ipynb).\n\nUse cases\n---------\n\nThe combination of embedding generation and vector search enables many\ninteresting use cases. Some possible use cases are as follows:\n\n- **[Retrieval-augmented generation (RAG)](/use-cases/retrieval-augmented-generation):** Parse documents, perform vector search on content, and generate summarized answers to natural language questions using Gemini models, all within BigQuery. For a notebook that illustrates this scenario, see [Build a Vector Search application using BigQuery DataFrames](https://github.com/googleapis/python-bigquery-dataframes/blob/main/notebooks/generative_ai/bq_dataframes_llm_vector_search.ipynb).\n- **Recommending product substitutes or matching products:** Enhance ecommerce applications by suggesting product alternatives based on customer behavior and product similarity.\n- **Log analytics:** Help teams proactively triage anomalies in logs and accelerate investigations. You can also use this capability to enrich context for LLMs, in order to improve threat detection, forensics, and troubleshooting workflows. For a notebook that illustrates this scenario, see [Log Anomaly Detection \\& Investigation with Text Embeddings + BigQuery Vector Search](https://github.com/GoogleCloudPlatform/generative-ai/blob/main/embeddings/use-cases/outlier-detection/bq-vector-search-outlier-detection-audit-logs.ipynb).\n- **Clustering and targeting:** Segment audiences with precision. For example, a hospital chain could cluster patients using natural language notes and structured data, or a marketer could target ads based on query intent. For a notebook that illustrates this scenario, see [Create-Campaign-Customer-Segmentation](https://github.com/GoogleCloudPlatform/chocolate-ai/blob/main/colab-enterprise/Create-Campaign-Customer-Segmentation.ipynb).\n- **Entity resolution and deduplication:** Cleanse and consolidate data. For example, an advertising company could deduplicate personally identifiable information (PII) records, or a real estate company could identify matching mailing addresses.\n\nPricing\n-------\n\nThe `VECTOR_SEARCH` function and the `CREATE VECTOR INDEX` statement use\n[BigQuery compute pricing](/bigquery/pricing#analysis_pricing_models).\n\n- `VECTOR_SEARCH` function: You are charged for similarity search, using\n on-demand or editions pricing.\n\n - On-demand: You are charged for the amount of bytes scanned in the base table, the index, and the search query.\n - Editions pricing: You are charged for the slots required to complete\n the job within your reservation edition. Larger, more complex\n similarity calculations incur more charges.\n\n | **Note:** Using an index isn't supported in [Standard editions](/bigquery/docs/editions-intro).\n- `CREATE VECTOR INDEX` statement: There is no charge for the processing\n required to build and refresh your vector indexes as long as the total\n size of the indexed table data is below your per-organization\n [limit](/bigquery/quotas#vector_index_maximum_table_size). To\n support indexing beyond this limit, you must\n [provide your own reservation](/bigquery/docs/vector-index#use_your_own_reservation)\n for handling the index management jobs.\n\nStorage is also a consideration for embeddings and indexes. The amount of bytes\nstored as embeddings and indexes are subject to\n[active storage costs](/bigquery/pricing#storage).\n\n- Vector indexes incur storage costs when they are active.\n- You can find the index storage size by using the [`INFORMATION_SCHEMA.VECTOR_INDEXES` view](/bigquery/docs/information-schema-vector-indexes). If the vector index is not yet at 100% coverage, you are still charged for whatever has been indexed. You can check index coverage by using the `INFORMATION_SCHEMA.VECTOR_INDEXES` view.\n\nQuotas and limits\n-----------------\n\nFor more information, see\n[Vector index limits](/bigquery/quotas#vector_index_limits).\n\nLimitations\n-----------\n\nQueries that contain the `VECTOR_SEARCH` function aren't accelerated by\n[BigQuery BI Engine](/bigquery/docs/bi-engine-intro).\n\nWhat's next\n-----------\n\n- Learn more about [creating a vector index](/bigquery/docs/vector-index).\n- Learn how to perform a vector search using the [`VECTOR_SEARCH`\n function](/bigquery/docs/reference/standard-sql/search_functions#vector_search).\n- Try the [Search embeddings with vector search](/bigquery/docs/vector-search) tutorial to learn how to create a vector index, and then do a vector search for embeddings both with and without the index.\n- Try the [Perform semantic search and retrieval-augmented generation](/bigquery/docs/vector-index-text-search-tutorial)\n tutorial to learn how to do the following tasks:\n\n - Generate text embeddings.\n - Create a vector index on the embeddings.\n - Perform a vector search with the embeddings to search for similar text.\n - Perform retrieval-augmented generation (RAG) by using vector search results to augment the prompt input and improve results.\n- Try the [Parse PDFs in a retrieval-augmented generation pipeline](/bigquery/docs/rag-pipeline-pdf)\n tutorial to learn how to create a RAG pipeline based on parsed PDF content."]]