Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Introducción a la búsqueda vectorial
En este documento, se proporciona una descripción general de la búsqueda vectorial en BigQuery. La búsqueda de vectores es una técnica para comparar objetos similares con incorporaciones y se usa para potenciar los productos de Google, como la Búsqueda de Google, YouTube y Google Play. Puedes usar la búsqueda de vectores para realizar
búsquedas a gran escala. Cuando usas índices de vectores con la búsqueda de vectores, puedes aprovechar tecnologías fundamentales, como el índice de archivos invertidos (IVF) y el algoritmo ScaNN.
La búsqueda vectorial se basa en embeddings. Las incorporaciones son vectores numéricos de alta dimensión que representan una entidad determinada, como un fragmento de texto o un archivo de audio.
Los modelos de aprendizaje automático (AA) usan incorporaciones para codificar la semántica de esas entidades a fin de facilitar el razonamiento y la comparación. Por ejemplo, una operación común en los modelos de agrupamiento en clústeres, clasificación y recomendación es medir la distancia entre vectores en un espacio de incorporaciones para encontrar elementos que sean más semánticamente similares.
Este concepto de similitud y distancia semánticas en un espacio de incorporación se demuestra visualmente cuando consideras cómo se pueden trazar diferentes elementos.
Por ejemplo, términos como gato, perro y león, que representan tipos de animales, se agrupan cerca en este espacio debido a sus características semánticas compartidas. Del mismo modo, términos como automóvil, camión y el término más genérico vehículo formarían otro clúster. Esto se muestra en la siguiente imagen:
Puedes ver que los clústeres de animales y vehículos están muy separados
entre sí. La separación entre los grupos ilustra el principio de que, cuanto más cerca estén los objetos en el espacio de incorporación, más similares serán semánticamente, y las distancias más grandes indican una mayor disimilitud semántica.
BigQuery proporciona una experiencia de extremo a extremo para generar incorporaciones, indexar contenido y realizar búsquedas de vectores. Puedes completar cada una de estas tareas de forma independiente o en un solo recorrido. Si quieres ver un instructivo que muestre cómo completar todas estas tareas, consulta Realiza búsquedas semánticas y generación de recuperación aumentada.
Para realizar una búsqueda vectorial con SQL, usa la función VECTOR_SEARCH.
De forma opcional, puedes crear un índice vectorial con la sentencia CREATE VECTOR INDEX.
Cuando se usa un índice vectorial, VECTOR_SEARCH usa la técnica de búsqueda vecino más cercano aproximado para mejorar el rendimiento de la búsqueda vectorial, con la compensación de reducir la recuperación y mostrar resultados más aproximados. Sin un índice de vectores, VECTOR_SEARCH usa la búsqueda de fuerza bruta para medir la distancia de cada registro. También puedes optar por usar la fuerza bruta para obtener resultados exactos, incluso cuando un índice vectorial está disponible.
La combinación de la generación de incorporaciones y la búsqueda vectorial habilita muchos casos de uso interesantes. Estos son algunos casos de uso posibles:
Recomendar productos sustitutos o similares: Mejora las aplicaciones de comercio electrónico sugiriendo alternativas de productos en función del comportamiento de los clientes y la similitud de los productos.
Análisis de registros: Ayuda a los equipos a priorizar de forma proactiva las anomalías en los registros y acelerar las investigaciones. También puedes usar esta función para enriquecer el contexto de los LLM, con el fin de mejorar la detección de amenazas, la investigación forense y los flujos de trabajo de solución de problemas. Para ver un notebook que ilustre esta situación, consulta Detección y análisis de anomalías de registros con embeddings de texto y búsqueda vectorial de BigQuery.
Agrupación y segmentación: Segmenta los públicos con precisión. Por ejemplo, una cadena de hospitales podría agrupar pacientes con notas en lenguaje natural y datos estructurados, o un especialista en marketing podría segmentar anuncios en función del intent de la búsqueda.
Para ver un notebook que ilustre esta situación, consulta Create-Campaign-Customer-Segmentation.
Anulación de la duplicación y resolución de entidades: Limpia y consolida los datos.
Por ejemplo, una empresa publicitaria podría anular los registros de información de identificación personal (PII), o una empresa de bienes raíces podría identificar las direcciones de correo que coincidan.
Función VECTOR_SEARCH: Se te cobra por la búsqueda de similitudes, con
precios según demanda o de ediciones.
Según demanda: Se te cobra por la cantidad de bytes analizados en la tabla base, el índice y la consulta de búsqueda.
Precios de las ediciones: Se te cobra por las ranuras necesarias para completar el trabajo dentro de la edición de tu reserva. Los cálculos de similitud más grandes y complejos generan más cargos.
Declaración de CREATE VECTOR INDEX: No se aplican cargos por el procesamiento necesario para compilar y actualizar tus índices vectoriales, siempre y cuando el tamaño total de los datos de tablas indexadas esté por debajo del límite por organización. Para admitir la indexación más allá de este límite, debes proporcionar tu propia reserva para controlar los trabajos de administración de índices.
El almacenamiento también es una consideración para las incorporaciones y los índices. La cantidad de bytes almacenados como incorporaciones e índices está sujeta a costos de almacenamiento activo.
Los índices vectoriales generan costos de almacenamiento cuando están activos.
Puedes encontrar el tamaño del almacenamiento de índices en la vista INFORMATION_SCHEMA.VECTOR_INDEXES.
Si el índice vectorial aún no tiene una cobertura del 100%, se te cobra por todo lo que se indexó. Puedes verificar la cobertura del índice con la vista INFORMATION_SCHEMA.VECTOR_INDEXES.
Obtén información para realizar una búsqueda vectorial con la función VECTOR_SEARCH.
Prueba el instructivo Busca incorporaciones con búsqueda vectorial
para aprender a crear un índice vectorial y, luego, realiza una búsqueda
vectorial para incorporaciones con y sin el índice.
Realizar una búsqueda vectorial con las incorporaciones para buscar texto similar.
Realizar la generación de aumento de recuperación (RAG) con los resultados de la
búsqueda vectorial para aumentar la entrada de instrucciones y mejorar los resultados.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]