Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Ejecuta una query de búsqueda vectorial en MongoDB

En esta guía, puedes aprender cómo realizar búsquedas en tus documentos utilizando la MongoDB Vector Search funcionalidad. Laravel MongoDB proporciona una API para realizar consultas MongoDB Vector Search directamente con tus modelos. Esta guía describe cómo crear índices de MongoDB Vector Search y proporciona ejemplos de cómo utilizar la integración de Laravel para realizar búsquedas.

Nota

Compatibilidad de implementación

Puedes usar la funcionalidad de MongoDB Vector Search solo cuando te conectas a clústeres de MongoDB Atlas. Esta funcionalidad no está disponible para despliegues autogestionados.

Para obtener más información sobre MongoDB Vector Search, consulta la Descripción general en la documentación de Atlas. La API de MongoDB Vector Search utiliza internamente el operador de agregación $vectorSearch para realizar queries. Para obtener más información sobre este operador, consulte la referencia de $vectorSearch en la documentación de Atlas.

Nota

Es posible que no se puedan utilizar los métodos descritos en esta guía para cada tipo de query de MongoDB búsqueda vectorial. Para casos de uso más complejos, cree un pipeline de agregación utilizando las operaciones de agregación.

Para realizar búsquedas avanzadas de texto completo en sus documentos, puede utilizar la API de búsqueda de Laravel MongoDB MongoDB Search. Para obtener información sobre esta funcionalidad, consulte la guía Ejecutar una consulta de MongoDB Search.

Puedes crear un índice de MongoDB Search de cualquiera de las siguientes maneras:

  • Llama al método create() en la fachada Schema y pasa el método asistente vectorSearchIndex() con los detalles de la creación del índice. Para obtener más información sobre esta estrategia, consulta la sección Gestionar MongoDB Search y MongoDB Vector Search Indexes de la guía del Generador de esquemas.

  • Accede a una colección y luego llama al método createSearchIndex() desde la MongoDB PHP librería. Debe especificar la opción type como 'vectorSearch', como se muestra en el siguiente código:

    $collection = DB::connection('mongodb')->getCollection('movies');
    $collection->createSearchIndex([
    'fields' => [
    [
    'type' => 'vector',
    'numDimensions' => 4,
    'path' => 'embeddings',
    'similarity' => 'cosine'
    ],
    ],
    ], ['name' => 'vector_index', 'type' => 'vectorSearch']);

En esta sección se puede aprender a usar la API de búsqueda vectorial de MongoDB en la integración de Laravel. La integración de Laravel proporciona el método vectorSearch() tanto como método de generador de consultas como método de modelo Eloquent. Puedes usar el método vectorSearch() para ejecutar consultas de búsqueda vectorial de MongoDB en documentos de tus colecciones.

Debes pasar los siguientes parámetros al método vectorSearch():

Parameter
Tipo
Descripción

index

string

Nombre del índice de búsqueda vectorial

path

string

Campo que almacena incrustaciones de vectores

queryVector

array

Representación vectorial de su query

limit

int

Número de resultados a retornar

El siguiente código usa el índice vector creado en la sección anterior Crear un índice de MongoDB Vector Search para realizar una consulta de MongoDB Vector Search en la colección movies:

$movies = Book::vectorSearch(
index: 'vector',
path: 'vector_embeddings',
// Vector representation of the query `coming of age`
queryVector: [-0.0016261312, -0.028070757, ...],
limit: 3,
);
[
{ "title": "Sunrising",
"plot": "A shy teenager discovers confidence and new friendships during a transformative summer camp experience."
},
{ "title": "Last Semester",
"plot": "High school friends navigate love, identity, and unexpected challenges before graduating together."
}
]

Se puede usar el método vectorSearch() para ejecutar muchos tipos de consultas de query de MongoDB Search. Dependiendo de la query que desees realizar, puedes pasar los siguientes parámetros opcionales a vectorSearch():

Parámetro opcional
Tipo
Descripción
Valor por defecto

exact

bool

Especifica si se ejecutar una búsqueda de Vecino Más Cercano Exacto (true) o de ANN (false)

false

filter

QueryInterface or array

Especifica un pre-filtro para los documentos a buscar.

sin filtro

numCandidates

int or null

Especifica el número de vecinos más cercanos que se usarán durante la búsqueda

null

Nota

Para construir una instancia de QueryInterface, debes importar la clase MongoDB\Builder\Query a tu aplicación.

Para obtener más información sobre estos parámetros, consulte la sección Campos de la referencia del operador $vectorSearch en la documentación de Atlas.