Al usar MongoDB como base de datos vectorial, puede usar MongoDB Vector Search para buscar e indexar fácilmente sus datos vectoriales junto con otros datos de MongoDB. MongoDB Vector Search le permite consultar datos según su significado semántico, combinar la búsqueda vectorial con la búsqueda de texto completo y filtrar sus consultas en otros campos de su colección para obtener los resultados más relevantes. caso de uso.
Utilice MongoDB Vector Search para potenciar sus aplicaciones de IA y sistemas de agentes implementando Generación aumentada por recuperación (RAG). También puede integrar MongoDB Vector Search con frameworks y servicios de IA populares para crear rápidamente aplicaciones y agentes de IA.
Nota
MongoDB Vector Search admite BúsquedaANN en clústeres de Atlas con MongoDB 6.0.11 v, v7.0.2 o posterior, y búsqueda ENN en clústeres con MongoDB6 0167010v,,, v,,,7 32v,, o posterior. También puede usar MongoDB Vector Search con implementaciones de Atlas locales o autoadministradas que cree con la CLI de Atlas.
¿Qué es la búsqueda vectorial?
La búsqueda vectorial es un método de búsqueda que devuelve resultados basados en el significado semántico o subyacente de sus datos. A diferencia de la búsqueda tradicional de texto completo, que encuentra coincidencias de texto, la búsqueda vectorial encuentra vectores que están cerca de la consulta de búsqueda en un espacio multidimensional. Cuanto más cercanos estén los vectores a la query, más similares serán en significado.
Al interpretar el significado de su consulta de búsqueda y los datos, la búsqueda vectorial le permite considerar la intención del buscador y el contexto de búsqueda para Recuperar resultados más relevantes.
Por ejemplo, si se busca el término "fruta roja", la búsqueda de texto completo solo devolvería datos que contengan explícitamente estas palabras clave. Sin embargo, la búsqueda semántica podría devolver datos con un significado similar, como frutas de color rojo, tales como manzanas o fresas.
Casos de uso
MongoDB Vector Search soporta los siguientes casos de uso de búsqueda vectorial:
Búsqueda semántica: Realiza un query sobre tus incrustaciones vectoriales según la similitud semántica utilizando el algoritmo de búsqueda ANN o ENN.
Para aprender más, consulte Cómo realizar una búsqueda semántica y Ejecutar los query de búsqueda vectorial.
Búsqueda Híbrida: Combina los resultados de múltiples consultas de búsqueda, incluidas la búsqueda vectorial y la búsqueda de texto completo. Para obtener más información, consulta Cómo realizar una búsqueda híbrida.
Búsqueda generativa: Utiliza MongoDB Vector Search para recuperar datos relevantes para tus aplicaciones de IA generativa mediante la implementación de generación de recuperación aumentada (RAG).
Para aprender a implementar RAG, consulta RAG con MongoDB Vector Search. Para aprender a crear agentes de IA con búsqueda vectorial, incluida la implementación de RAG agéntica, consulta Crear agentes de IA con MongoDB.
Integraciones de IA
Se puede utilizar MongoDB Vector Search con modelos de incrustación y generativos de cualquier proveedor de IA. MongoDB y sus socios también ofrecen integraciones específicas de productos para ayudar a aprovechar MongoDB Vector Search en las aplicaciones impulsadas por IA. Estas integraciones incluyen frameworks, plataformas y herramientas que permiten implementar rápidamente búsquedas vectoriales, RAG y agentes de IA.
Para obtener más información, consulta Integraciones de IA de MongoDB.
Conceptos clave
- vector
Un vector es un arreglo de números que representa tus datos en múltiples dimensiones. Los vectores pueden representar cualquier tipo de datos, desde texto, imagen y datos de audio hasta datos no estructurados. La similitud semántica se determina midiendo la distancia entre vectores.
Las dimensiones de un vector se refieren al número de elementos en el arreglo y, por lo tanto, al número de dimensiones en el espacio vectorial donde se representan los vectores.
Específicamente, MongoDB Vector Search utiliza vectores densos, que son un tipo de vector de alta dimensión que favorece un almacenamiento más reducido y una mayor riqueza semántica. A diferencia de los vectores dispersos, los vectores densos pueden contener más datos, lo que permite a MongoDB Vector Search capturar relaciones más complejas.
- embeddings vectoriales
Las incrustaciones vectoriales son vectores que utilizas para representar tus datos. Estas incrustaciones capturan relaciones significativas en tus datos y permiten tareas como la búsqueda y recuperación semántica. Puedes crear incrustaciones vectoriales pasando tus datos a través de un modelo de incrustación, y puedes almacenar estas incrustaciones en una colección de MongoDB como un campo en un documento.
MongoDB Vector Search determina la similitud semántica al identificar las incrustaciones vectoriales que estén más próximas en distancia al vector de query.
Para obtener más información, consulte Cómo crear incrustaciones vectoriales manualmente.
- modelo de incrustación
Los modelos de incrustación son algoritmos que utilizas para convertir tus datos en incrustaciones vectoriales. Para lograr esto, los modelos de incrustación utilizan LLM, modelos de aprendizaje automático entrenados en un gran volumen de datos, para generar incrustaciones vectoriales que capturen el significado semántico de tus datos.
El modelo embedding que elija determina las dimensiones de sus embeddings vectoriales. Debe especificar estas dimensiones como un campo en su índice de búsqueda vectorial de MongoDB.
Los modelos de incrustación varían según su entrenamiento. Por lo tanto, cada modelo ofrece distintas ventajas según los datos y el caso de uso. Para obtener más información, consulte "Elegir un modelo de incrustación". Para modelos de incrustación de vanguardia, utilice Voyage AI.
Índices de búsqueda vectorial de MongoDB
Para realizar una búsqueda vectorial en los datos en MongoDB, es necesario crear un índice de búsqueda vectorial de MongoDB. Los índices de búsqueda vectorial de MongoDB son independientes de los otros índices de bases de datos y se utilizan para recuperar de forma eficiente documentos que contienen incrustaciones vectoriales en tiempo de query. En la definición del índice de búsqueda vectorial de MongoDB, se indexan los campos de la colección que contienen las incrustaciones para habilitar la búsqueda vectorial en esos campos. La búsqueda vectorial de MongoDB admite incrustaciones de hasta 8192 dimensiones de longitud.
También se puede filtrar previamente los datos indexando campos adicionales en la colección para usarlos en las query de MongoDB Vector Search. Se puede filtrar por valores booleano, fecha, objectId, numéricos, string y UUID, incluidos arreglos de estos tipos. Filtrar los datos limita el alcance de la búsqueda y garantiza que ciertas incrustaciones vectoriales no se consideren para la comparación.
Para aprender cómo indexar campos para MongoDB Vector Search, consulta Cómo indexar campos para Vector Search.
Los query de MongoDB Vector Search
MongoDB Vector Search admite la búsqueda de vecinos más cercanos aproximados (ANN) con el algoritmo Pequeño mundo navegable jerárquico y la búsqueda de vecinos más cercanos exactos (ENN).
Para encontrar los vectores más similares, MongoDB Vector Search realiza una búsqueda ANN sin escanear cada incrustación vectorial y una búsqueda ENN exhaustivamente en todas las incrustaciones vectoriales indexadas. Para obtener más información, consulta Definición de vectorSearch.
Las consultas de búsqueda vectorial de MongoDB consisten en etapas de canalización de agregación donde $vectorSearch La etapa es la primera etapa del pipeline. El proceso para una consulta básica de búsqueda vectorial de MongoDB es el siguiente:
Se debe seleccionar la búsqueda ANN o ENN y especificar el vector de query, que es el vector de incrustación que representa la consulta de búsqueda.
MongoDB Vector Search encuentra incrustaciones de vectores en los datos que están más cerca del vector de la query.
MongoDB Vector Search devuelve los documentos que contienen los vectores más similares.
Para personalizar su query de búsqueda vectorial, se pueden prefiltrar los datos en los campos que ha indexado utilizando una expresión de coincidencia de MQL con operadores de query o agregación compatibles, o puede añadir etapas de agregación adicionales para procesar y organizar aún más los resultados.
Para aprender a crear y ejecutar los query de MongoDB Vector Search, consulta Ejecutar consultas de búsqueda vectorial.
Próximos pasos
Para una experiencia práctica creando índices en MongoDB Vector Search y ejecutando los query de MongoDB Vector Search en datos de muestra, prueba el Curso de MongoDB Vector Search en MongoDB University y los tutoriales en las siguientes páginas:
Para un rendimiento óptimo, recomendamos implementar nodos de búsqueda separados para el aislamiento de cargas de trabajo. Los nodos de búsqueda admiten el soporte de ejecución concurrente de los query para mejorar la latencia individual de los query. Para aprender más, consultar Revisión de las opciones de implementación.