Búsqueda de texto completo MongoDB

MongoDB es una de las bases de datos NoSQL más reconocidas debido a su rápida capacidad de respuesta, versión avanzada, sostenibilidad y sólidas capacidades de indexación. En muchos casos, las consultas de MongoDB que clasifican los datos buscando coincidencias exactas, usando comparaciones significativamente más grandes y más pequeñas, o usando expresiones regulares son suficientes. Sin embargo, cuando se trata de filtrar campos con datos de texto enriquecido, estas estrategias se quedan cortas. Esta guía nos ayudará a crear un índice de texto de MongoDB y usarlo para buscar documentos utilizando criterios y consultas de búsqueda de texto completo comunes. Cuando vemos material que utiliza frases o palabras clave, el mejor ejemplo es una búsqueda en Google. Con la búsqueda de texto completo de MongoDB, podemos crear un índice de texto en cualquier columna de un documento utilizando una cadena o matrices de cadenas.

Contenidos

Sintaxis de búsqueda de texto completo en MongoDB en Ubuntu 20.04?

La sintaxis mencionada es la siguiente: db.Collection_Name.find({$text: {$search: “string”}}) La función find() se usa con los siguientes parámetros en la sintaxis anterior:

  • nombre_de_la_colección: se refiere al nombre de la colección existente.
  • Encontrar: realizado para buscar con la búsqueda.
  • $texto: Sirve para realizar una búsqueda de colección que cumpla con nuestros objetivos.
  • $buscar: Se utiliza para realizar la búsqueda.
  • línea: se refiere a una cadena específica que queremos buscar en la colección y podemos usar la función de búsqueda para encontrar palabras exactas.

Trabajando en el operador $text en MongoDB en Ubuntu 20.04:

MongoDB proporciona listas de texto para admitir la búsqueda de texto de contenido de cadena. Cualquier campo con un valor de cadena o un conjunto de componentes de cadena se puede incluir en los registros de texto. Debe tener un registro de texto en su colección para responder preguntas de búsqueda de texto. Incluso una colección tiene un solo registro de búsqueda de tema. Una lista puede tener varios campos.

Cómo funciona la búsqueda de texto completo en MongoDB en Ubuntu 20.04

Ahora mira algunos ejemplos para entender mejor las cosas. Primero, creamos una base de datos llamada «myDemo». Dentro de esta base de datos hemos definido una colección como «fruta». Luego, se utiliza la consulta insertMany para insertar el documento de la colección, ya que la siguiente captura de pantalla muestra los campos y los valores de esos campos para el documento de la colección Fruits.

La consulta «db.fruits.find()» devuelve los atributos y entidades de la colección «fruits» de la siguiente manera. Registramos tres documentos para la colección de «fruto».

Ahora examinemos cómo podemos realizar una búsqueda de texto completo.

Ejemplo #1: Crear un índice de texto en MongoDB en Ubuntu 20.04:

Necesitamos crear un índice de texto en un conjunto de datos antes de que pueda usar las capacidades de búsqueda de texto completo de MongoDB. Los índices son estructuras de datos únicas que aíslan una parte delimitada de datos de cada parte de texto en una colección de los propios documentos. Veamos cómo realizar una búsqueda de texto completo. Un índice de texto se crea de la misma manera que un índice tradicional, en lugar de definir un orden ascendente/descendente, define la palabra clave del texto.

Arriba tenemos una consulta para una búsqueda de texto completo. Usamos el método createIndex() para crear un índice de texto. Establecemos los dos campos «Asunto» y «Contenido» en el texto tipo índice. Al ejecutar la consulta createIndex en el shell de MongoDB, el siguiente resultado confirma la creación del índice:

Ejemplo #2: Busca una palabra o frase del texto completo en MongoDB en Ubuntu 20.04:

Buscar documentos que constan de una o más palabras individuales es quizás el desafío de búsqueda más común. Los usuarios probablemente esperan que el navegador web sea personalizable para elegir dónde mostrar frases de búsqueda específicas. Al usar índices de texto, MongoDB aborda las consultas de búsqueda comunes de la misma manera. Este paso explica cómo MongoDB maneja las consultas de búsqueda con algunos ejemplos.

Aquí tenemos una consulta «db.fruits.find()». La consulta usa el operador $texto, que le dice a MongoDB aquí que la consulta usará el índice de texto definido anteriormente. Además, solo se permite un índice de texto en cada colección. Luego, dentro del operador $texto tenemos otro operador llamado $búsqueda que se usa para buscar el valor «lindo» en los documentos especificados. Como puede ver, solo tenemos un documento con el contenido de texto «lindo». Ejecutar la consulta anterior mostrará todos los detalles del documento con el contenido de texto «lindo» como se muestra a continuación:

Ahora busquemos dos palabras usando la siguiente consulta:

Le dimos al operador de $búsqueda, que se llama dentro del operador de $texto, las dos palabras «vitamina C». Cuando se ejecuta la consulta, muestra el registro del documento con la vitamina C enumerada en el texto de la siguiente manera:

Ejemplo n.º 3: puntuación y clasificación de los resultados de búsqueda de texto completo en MongoDB en Ubuntu 20.04:

Cada documento recibe una puntuación de búsqueda de texto que indica qué tan relevante es para la consulta de búsqueda. Esta puntuación se utiliza para categorizar todos los registros en un resultado de búsqueda. Una puntuación más alta significa que la competencia es más significativa.

Tenemos un operador de $texto que busca las dos palabras «mangos» y «naranja» usando un operador de $búsqueda. Luego tenemos una proyección {score: $meta: «textScore»} que usa el operador $meta que devuelve metadatos específicos de los documentos recuperados. En este caso, se devuelven los metadatos textScore, que es un componente integrado del motor de búsqueda de texto completo de MongoDB y contiene la puntuación de relevancia de la búsqueda. Como se menciona en el documento de filtro, después de ejecutar la consulta, los documentos resultantes agregan un nuevo campo llamado puntuación:

Ahora hemos usado la función de clasificación en la proyección {score: $meta: «textScore»}. El documento de clasificación utiliza la misma sintaxis que el documento de proyección.

El texto Mango tiene la puntuación de relevancia más alta y, por lo tanto, es el primero en la pantalla de salida.

Conclusión:

Aprendimos a usar las capacidades de búsqueda de texto completo de MongoDB siguiendo este tutorial. Creó un índice de texto y creó consultas de búsqueda de texto que contenían una o más palabras, frases completas y exclusiones. También calificaron la relevancia de los artículos devueltos y clasificaron los resultados de la búsqueda para mostrar primero los artículos más relevantes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.