Este documento ofrece consejos para solucionar problemas con la Búsqueda Vectorial de MongoDB. Para obtener ayuda directa con problemas de la Búsqueda Vectorial de MongoDB, puede iniciar una conversación en las comunidades de MongoDB en Reddit o Stack Overflow, o bien ponerse en contacto con el soporte técnico.
No se puede usar la etapa $vectorSearch en el clúster
Para utilizar la etapa de la pipeline $vectorSearch para query tu clúster, este debe ejecutar MongoDB 7.0.2o superior. Si ejecutas $vectorSearch en una versión incompatible de MongoDB, es posible que veas el siguiente error:
OperationFailure: $vectorSearch is not allowed with the current configuration. You may need to enable the corresponding feature flag.
Para comprobar la versión de MongoDB de tu clúster:
En Atlas, ve a la página Clusters de tu proyecto.
Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Clusters en la sección Database.
La página de clústeres se muestra.
Busca el panel de información del clúster en el que quieres usar $vectorSearch.
Consulta el número de Version en la sección inferior del panel de información.
Si su clúster ejecuta una versión de MongoDB anterior a 6.0.11 o 7.0.2, debe actualizar la versión de MongoDB del clúster.
Consultas lentas
Para recomendaciones sobre cómo mejorar el rendimiento de las consultas, consulta Benchmark para la búsqueda vectorial de MongoDB.
$vectorSearch no devuelve resultados
Si las $vectorSearch queries no devuelven resultados, realice las siguientes acciones:
Asegúrate de estar usando el mismo modelo de embedding tanto para tus datos como para tu query. Si incrustas tu query usando un modelo diferente al que usas para incrustar tus datos,
$vectorSearchno puede identificar coincidencias.Se debe asegurar que su búsqueda vectorial de MongoDB haya terminado de construirse. Al crear o actualizar un índice de búsqueda vectorial de MongoDB, el índice el índice se encuentra en un estado de sincronización inicial. Cuando termine de crearse, se pueden empezar a realizar las queries en los datos de la colección.
Error during document retrieval al usar el filtrado con LangChain
Cuando uses LangChain para realizar RAG con prefiltrado, puedes encontrar el siguiente error:
Error during the document retrieval or generation process: MongoServerError: PlanExecutor error during aggregation :: caused by :: Path 'field' needs to be indexed as token
Si existe un índice en field, asegúrate de haber creado este índice como un índice de MongoDB búsqueda vectorial y no como un índice de MongoDB Search. Si no existe ningún índice en field, crea uno. Para aprender más sobre cómo implementar RAG con la búsqueda vectorial de MongoDB y LangChain, consulta Respuesta a preguntas sobre tus datos.
Command not found al crear el índice de MongoDB Vector Search
Cuando intentes crear un índice de MongoDB Vector Search por medios programáticos, podrías encontrar un error Command not found. Este error ocurre por una de dos razones:
Ejecuta el comando en un clúster que ejecuta una versión de MongoDB anterior a 6.0.11 o 7.0.2. En este caso, debe actualizar la versión de MongoDB del clúster para habilitar la búsqueda vectorial de MongoDB para el clúster.
Ejecutas el comando contra un clúster gratuito (antes conocido como
M0). En este caso, siempre que el clúster ejecute una versión compatible de MongoDB, puedes crear un índice de MongoDB Vector Search con la interfaz de usuario de Atlas.
No se puede filtrar en un campo dado
MongoDB Vector Search actualmente sólo admite filtros en campos con valores booleanos, de fecha, número, objectId, string y UUID. Para aprender más, consulta Acerca del tipo filter.