vector y el operador vectorSearch están disponibles como funciones de vista previa. La función y la documentación correspondiente pueden cambiar en cualquier momento durante el período de vista previa. Para obtener más información, consulte Características de vista previa.Definición
El operador vectorSearch realiza una Búsqueda ANN o ENN en incrustaciones vectoriales en el campo especificado. Utilice este operador para añadir funciones de texto analizado, como búsqueda difusa, coincidencia de frases, filtrado por ubicación, coincidencia de patrones con comodines y más, junto con la búsqueda semántica.
Sintaxis
vectorSearch tiene la siguiente sintaxis:
{ "$search": { "index": "<index name>", // optional, defaults to "default" "vectorSearch": { "exact": true | false, "filter": {<operator-specification>}, "limit": <number-of-results>, "numCandidates": <number-of-candidates>, "path": "<field-to-search>", "queryVector": [<array-of-numbers>], "score": {<options>} } } }
opciones
vectorSearch utiliza los siguientes campos para construir una consulta:
Campo | Tipo | Necesidad | Descripción |
|---|---|---|---|
| Booleano | Opcional | Esto es obligatorio si se omite Indicador que especifica si se debe ejecutar la búsqueda de ENN o ANN. El valor puede ser uno de los siguientes:
Si se omite, es por defecto MongoDB Vector Search admite la búsqueda ANN en clústeres de Atlas con MongoDB6.0.11 v, v7.0.2 o posterior, y la búsqueda ENN en clústeres con MongoDB v,,, 6 0167010v,,,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. |
| Objeto | Opcional | MongoDB búsqueda Operador a utilizar para prefiltrar documentos según metadatos o criterios de búsqueda específicos. Para obtener más información, consulte Prefiltro. |
| Int | Requerido | |
| Int | Opcional | Este campo es obligatorio si Número de vecinos más cercanos a utilizar durante la búsqueda. El valor debe ser menor o igual a ( Recomendamos que especifique un número al menos 20 veces mayor que el número de documentos que se debe devolver ( Este patrón de sobrepetición es la forma recomendada de equilibrar la latencia y la capacidad de recuperación en las búsquedas de ANN, y recomendamos ajustar este parámetro según el tamaño específico del conjunto de datos y los requisitos de la query. |
| String | Requerido | Campo de tipo vector indexado para la búsqueda. |
| Matriz de números enteros o flotantes | Requerido | Arreglo de números de Para obtener más información sobre cómo generar El tamaño de la matriz debe coincidir con la cantidad de dimensiones del Se debe incrustar la query con el mismo modelo que se usó para incrustar los datos. Puede consultar sus incrustaciones con vectores de alta fidelidad, siempre que el subtipo del vector sea el mismo. Esto solo es posible con vectores |
| Objeto | Opcional | Puntuación asignada a los resultados de búsqueda coincidentes. Utilice una de las siguientes opciones para modificar la puntuación:
Para obtener información sobre el uso de |
Comportamiento
Índice de búsqueda de MongoDB
Debe indexar los campos de búsqueda mediante el operador vectorSearch. Puede indexar los siguientes tipos de campos en la definición del índice de búsqueda de MongoDB:
Campo que contiene incrustaciones vectoriales. Este es el campo que se especifica en la opción
pathde la consulta.Campos para prefiltrar los documentos. Estos son los campos que se especifican en la opción de consulta
filter.
Prefiltro
Puede prefiltrar los documentos para limitar el alcance de su búsqueda semántica y garantizar que no se consideren todos los vectores en la comparación. Puede usar cualquier operador de búsqueda compatible con MongoDB en el campo filter para consultar y filtrar los documentos.
Debes indexar los campos cuyos datos deseas filtrar en la definición de índice para el vector tipo.
Puntuación
Puede incluir la puntuación de cada documento en los resultados de búsqueda. Especifique la expresión $meta con el searchScore valor en la etapa. También puede especificar $project el searchScoreDetails valor para la expresión scoreDetails $meta del campo para obtener un desglose detallado de la puntuación.
Para obtener más información,consulte Calificar los documentos en los resultados y devolver los detalles de la puntuación.
vectorSearch Limitaciones del operador
El vectorSearch operador debe ser el operador de nivel superior en sus consultas. Por lo tanto, no puede usar el vectorSearch operador dentro de los siguientes operadores de búsqueda de MongoDB:
No puede utilizar el vectorSearch operador para consultar campos indexados mediante un índice de tipo vectorSearch.
No se pueden utilizar las siguientes opciones con $search el vectorSearch operador:
En su lugar,
$search$skiputilice y$limitdespués de la etapa.seguimiento (obsoleto)
No se pueden ejecutar consultas con $search el vectorSearch operador en el área de búsqueda de MongoDB.
Ejemplos
Los siguientes ejemplos utilizan la sample_mflix.embedded_movies colección de los datos de muestra. Si carga los datos de muestra y crea el índice de muestra en la colección, puede ejecutar las siguientes consultas ANN y ENN en la colección después de reemplazar los <connection-string> <index-name> marcadores de posición y en las consultas.