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

Cómo indexar campos vectoriales

Puedes usar el tipo vector para indexar incrustaciones vectoriales. El campo vectorial debe contener un arreglo de números de los siguientes tipos:

  • BSON int32, int64, o double tipos de datos

  • BSON double Tipo de dato

You can use the vectorSearch operator, similar to the $vectorSearch stage, in your $search aggregation pipeline to query fields indexed as the vector type.

Se aplican las siguientes limitaciones:

  • No se puede indexar campos con arreglos de objetos (tipo MongoDB Search embeddedDocuments) como tipo vector.

  • No puedes establecer storedSource como true en definiciones de índices que contengan tipo vector. En su lugar, usa include para especificar los campos a almacenar en mongot o usa exclude para excluir el campo de tipo vector del almacenamiento.

  • You can't use the $vectorSearch stage to query fields indexed as the vector type.

  • Puedes indexar campos como el tipo vector en MongoDB Search Playground.

El tipo vector de búsqueda de MongoDB toma los siguientes parámetros:

Opción
Tipo
Necesidad
Descripción

type

vector

Requerido

Etiqueta legible por humanos que identifica este tipo de campo. El valor debe ser vector.

numDimensions

Int

Requerido

Cantidad de dimensiones vectoriales que MongoDB Search aplica en el momento de la indexación y de la consulta. Solo puedes establecer este campo para campos de tipo vector. Debes especificar un valor menor o igual a 8192.

For indexing quantized vectors or BinData, you can specify one of the following values:

  • 1 a 8192 para vectores int8 para la ingesta.

  • Múltiplo de 8 para los vectores int1 para la ingesta.

  • 1 a 8192 para vectores binData(float32) y array(float32) para la cuantificación escalar automática.

  • Múltiplo de 8 para los vectores binData(float32) y array(float32) para la cuantificación binaria automática.

The embedding model you choose determines the number of dimensions in your vector embeddings, with some models having multiple options for how many dimensions are output. To learn more, see Choosing a Method to Create Embeddings.

similarity

String

Requerido

Función de similitud vectorial para usar en la búsqueda de los K vecinos más cercanos. Puede configurar este campo solo para campos de tipo vector.

Puede especificar uno de los siguientes valores:

  • euclidean - mide la distancia entre los extremos de los vectores.

  • cosine - mide la similitud basándose en el ángulo entre vectores.

  • dotProduct - mide la similitud como cosine, pero tiene en cuenta la magnitud del vector.

To learn more, see About the Similarity Functions.

quantization

String

Opcional

Tipo de cuantización automática de vectores para tus vectores. Utiliza esta configuración solo si tus incrustaciones son vectores float o double.

Puede especificar uno de los siguientes valores:

  • none : indica que no hay cuantización automática para las incrustaciones vectoriales. Utilice esta configuración si dispone de vectores precuantizados para la ingesta. Si se omite, este es el valor por defecto.

  • scalar : indica la cuantificación escalar, que transforma los valores en enteros de 1 byte.

  • binary - Indica cuantización binaria, que transforma los valores a un solo bit. Para utilizar este valor, numDimensions debe ser un múltiplo de 8.

    Si la precisión es crítica, seleccione none o scalar en lugar de binary.

To learn more, see About Quantization.

indexingMethod

String

Opcional

Estructura de índice para el campo vectorial. El valor puede ser:

  • hnsw - para índices basados en grafos donde los vectores similares están conectados

  • flat - para índices planos, no de grafo

If omitted, defaults to hnsw. If you specify hnsw, MongoDB Vector Search performs ANN search over the Hierarchical Navigable Small Worlds graph and ENN search over full-fidelity vectors. You can also specify hnswOptions.

If you specify flat, MongoDB Vector Search performs a full scan over full-fidelity or quantized vectors. During an ANN search, MongoDB Vector Search ignores the settings for numCandidates. For ENN search, MongoDB Vector Search performs a full scan over full-fidelity vectors.

hnswOptions

Objeto

Opcional

Parameters to use for Hierarchical Navigable Small Worlds graph construction. If omitted, uses the default values for the maxEdges and numEdgeCandidates parameters.

IMPORTANTE: Esta funcionalidad está disponible como vista previa. La modificación de los valores por defecto podría impactar negativamente a tu índice y queries de MongoDB Search.

hnswOptions.
maxEdges

Int

Opcional

Maximum number of edges (or connections) that a node can have in the Hierarchical Navigable Small Worlds graph. Value can be between 16 and 64, both inclusive. If omitted, defaults to 16. For example, for a value of 16, each node can have a maximum of sixteen outgoing edges at each layer of the Hierarchical Navigable Small Worlds graph.

A higher number improves :recall (accuracy of search results) because the graph is better connected. However, this also increases query and indexing time by increasing the number of neighbors to evaluate per graph node, and requires more memory to store the additional nodes for each connection in the Hierarchical Navigable Small Worlds graph.

hnswOptions.
numEdgeCandidates

Int

Opcional

De forma análoga a numCandidates durante el query, este parámetro controla el número máximo de nodos que se deben evaluar a fin de encontrar los vecinos más cercanos para conectarse a un nuevo nodo. El valor puede estar entre 100 y 3200, ambos inclusive. Si se omite, el valor es por defecto 100.

Un número mayor proporciona un grafo con conexiones de alta calidad, lo que puede mejorar la calidad de la búsqueda (recall), pero también puede aumentar la latencia de la query.

The following index definition example uses the sample_mflix.embedded_movies collection in the sample data. After you load the collection, you can use the following example to index the plot_embedding_voyage_3_large field as the vector type for running queries using the vectorSearch (MongoDB Search Operator). For a sample query to run against this index, see Examples.

Esta definición de índice indexa automáticamente todos los campos indexables dinámicamente utilizando el por defecto typeSet y también indexa el campo plot_embedding_voyage_3_large como tipo vector con la siguiente configuración:

  • 2048 número de dimensiones

  • dotProduct función de similitud

  • scalar cuantización

  • hnsw método de indexación (por defecto)