MongoDB ofrece una solución prémium de búsqueda de texto completo, MongoDB Atlas Search, para los datos alojados en MongoDB Atlas. Hay una capacidad de búsqueda de texto heredada disponible para los usuarios que gestionan por sí mismos las implementaciones de MongoDB.
estructura de la query
Usa el $text operador del query para realizar búsquedas de texto en una colección con un índice de texto.
$text tokeniza la cadena de búsqueda usando los espacios en blanco y la mayoría de los signos de puntuación como delimitadores, y realiza un OR lógico de todos estos tokens en la cadena de búsqueda.
Por ejemplo, podrías usar la siguiente query para encontrar todas las tiendas que contengan cualquier término de la lista "café", "tienda" y "java" en la stores colección:
db.stores.find( { $text: { $search: "java coffee shop" } } )
Usa el operador del query $meta para obtener y ordenar por la puntuación de relevancia de cada documento coincidente. Por ejemplo, para ordenar una lista de cafeterías en función de relevancia, ejecuta lo siguiente:
db.stores.find( { $text: { $search: "coffee shop cake" } }, { score: { $meta: "textScore" } } ).sort( { score: { $meta: "textScore" } } )
Para más información sobre los operadores $text y $meta, incluidas las restricciones y el comportamiento, consulte:
$metaoperador de proyección
Pipeline de agregación
Cuando trabajes con pipeline de agregación, utiliza $match con una expresión $text para ejecutar una consulta de búsqueda de texto. Para ordenar los resultados según el puntaje de relevancia, use el $meta operador de agregación en la etapa $sort [1].
Para más información y ejemplos de $text en Operaciones de agregación pipelines, consulta $text en el pipeline de agregación en implementaciones autogestionadas.
Para los datos alojados en MongoDB Atlas, Atlas Search provee la etapa de agregación $search para realizar búsquedas de texto completo en tus colecciones.
| [1] | El comportamiento y los requisitos del operador $meta de proyección <a class=\" \" href=\" \"> es diferente al del operador de agregación $meta <a class=\" \" href=\" \">. Para obtener detalles sobre el $meta operador de agregación <a class=\" \" href=\" \">, consulte la página de $meta referencia del operador de agregación <a class=\" \" href=\" \">. |