MongoDB Búsqueda de texto completo

MongoDB Búsqueda de texto completo
Debido a su rápida capacidad de respuesta, versión avanzada, sostenibilidad y fuertes capacidades de indexación, MongoDB es una de las bases de datos NoSQL más reconocidas. En muchos casos, las consultas de MongoDB que clasifican los datos buscando coincidencias precisas, utilizando las comparaciones significativamente más grandes y menos que las expresiones regulares serán suficientes. Sin embargo, cuando se trata de proyectar contra campos con datos textuales ricos, estas estrategias se quedan cortas. Esta guía nos ayudará a crear un índice de texto MongoDB y usarlo para buscar documentos que empleen consultas y criterios comunes de búsqueda de texto completo.

Cuando vemos material que emplea frases o palabras clave, el mejor ejemplo es una búsqueda en Google. Con la búsqueda de texto completo MongoDB, podemos establecer un índice de texto en cualquier columna en un documento utilizando una cadena o matrices de cadenas.

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

La sintaxis mencionada es la siguiente:

db.Colección_name.find ($ text: $ search: "string")

La función find () se usa con los siguientes parámetros en la sintaxis anterior:

  • Colección_name: se refiere al nombre de la colección existente.
  • Encontrar: realizado para buscar usando el Find.
  • $ texto: Solía ​​hacer una búsqueda de colección que satisfaga nuestros objetivos.
  • $ búsqueda: utilizado para realizar la búsqueda.
  • Cadena: se refiere a una determinada cadena que queremos buscar en la colección, y podemos usar la función de búsqueda para encontrar palabras exactas.

Trabajar en el operador de texto $ en MongoDB en Ubuntu 20.04:

MongoDB proporciona listas de texto para ayudar a las búsquedas de texto en el contenido de cadena. Cualquier campo con un valor de cadena o una gama de componentes de cadena se puede incluir en los registros de texto. Debe tener un registro de texto en su colección para hacer preguntas de búsqueda de texto. Incluso una colección solo tiene un registro de búsqueda de temas. Una lista puede abarcar múltiples campos.

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

Ahora, mira ciertos ejemplos para comprender mejor las cosas. Primero, hemos creado una base de datos con el nombre "MyDemo". Dentro de esta base de datos, hemos definido una colección como "frutas". Luego, la consulta InsertMany se usa para insertar el documento de colección, ya que la captura de pantalla muestra los campos y valores contra estos campos para el documento de colección "Frutas" a continuación.

La consulta "DB.frutas.finales resultados en los atributos y las entidades de la colección "frutas" de la siguiente manera. Tenemos tres documentos registrados para la colección de "frutas".

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

Ejemplo # 1: Creación del índice de texto en MongoDB en Ubuntu 20.04:

Tenemos que establecer un índice de texto en un conjunto de datos antes de que pueda usar las funciones de búsqueda de texto completo de MongoDB. Los índices son estructuras de datos únicas que aislan un datos limitados de cada texto en una colección de los propios documentos. Echemos un vistazo a cómo realizar una búsqueda de texto completo.

Un índice de texto se crea de la misma manera que un índice convencional, en lugar de definir un orden ascendente/descendente, define la palabra clave de texto.

Arriba, tenemos una consulta para una búsqueda de texto completo. Hemos utilizado el método createIndex () para crear un índice de texto. Establecemos los dos campos "sujeto" y "contenido" en el texto de tipo índice.

Al ejecutar la consulta CreateIndex en el shell MongoDB, la siguiente salida confirma la creación del índice:

Ejemplo # 2: Búsqueda de una palabra o frase del texto completo en MongoDB en Ubuntu 20.04:

Buscar documentos que comprenden una o más palabras individuales es quizás el desafío de búsqueda más extendido. Los usuarios probablemente esperan que el navegador web sea adaptable a elegir dónde deben mostrar las frases de búsqueda particulares. Al emplear índices de texto, MongoDB aborda consultas de búsqueda comunes de la misma manera. Con algunos ejemplos, este paso explica cómo MongoDB procesa las solicitudes de búsqueda.

Aquí tenemos una consulta "DB.frutas.encontrar()". La consulta emplea el operador de texto $, que informa a MongoDB aquí que la consulta utilizará el índice de texto que definimos anteriormente. Además, solo se permite un índice de texto en cada colección. Luego, dentro del operador de texto $, tenemos otro operador llamado $ búsqueda que se usa para buscar el valor "dulce" de los documentos dados.

Como puede ver, solo tenemos un documento con el contenido de texto "dulce". Al ejecutar la consulta anterior, los detalles completos del documento que tiene el contenido de texto "dulce" se muestran de la siguiente manera:

Ahora, estamos buscando dos palabras usando la siguiente consulta:

Hemos dado la "vitamina C" de dos palabras al operador de búsqueda $ que se llama dentro del operador de texto $. Cuando se ejecuta la consulta, muestra el registro del documento que tiene la vitamina C en el texto de la siguiente manera:

Ejemplo # 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 la búsqueda de texto que indica qué tan relevante es para la consulta de búsqueda. Esta puntuación se utiliza para clasificar todos los registros en un resultado de búsqueda. Una puntuación más alta significa que el concurso es más significativo.

Tenemos un operador de texto $ que busca las dos palabras "mangos" y "naranja" con la ayuda de un operador de búsqueda de $. Luego, tenemos una proyección puntaje: $ meta: "textscore" que hace uso del $ meta operador, que devuelve metadatos especificados de documentos recuperados. Los metadatos de texto text, que es un componente incorporado del motor de búsqueda de texto completo de MongoDB y contiene el puntaje de relevancia de búsqueda, se devuelve en este caso.

Como se menciona en el documento de filtro, los documentos resultantes agregarán un nuevo campo con nombre de campo después de ejecutar la consulta:

Ahora, hemos usado la función de clasificación para la proyección puntaje: $ meta: "textscore". El documento de clasificación utiliza la misma sintaxis que el documento de proyección.

El mango de texto tiene la mayor puntuación de relevancia, por lo que es primero en la pantalla de salida.

Conclusión:

Hemos adquirido cómo usar las funcionalidades de búsqueda de texto completo de MongoDB siguiendo este tutorial. Creó un índice de texto y consultas de búsqueda de texto compuestas que incluían una y muchas palabras, frases completas y exclusiones. También ha calificado la relevancia de los documentos devueltos y ha ordenado que los resultados de búsqueda muestren los elementos más relevantes primero.