Recherche de texte complet MongoDB

Recherche de texte complet MongoDB
En raison de sa réactivité rapide, de sa version avancée, de sa durabilité et de ses fortes capacités d'indexation, MongoDB est l'une des bases de données NOSQL les plus renommées. Dans de nombreux cas, les requêtes MongoDB qui classent les données en recherchant des correspondances précises, en utilisant beaucoup plus grand et moins que des comparaisons, ou l'utilisation d'expressions régulières suffira. En ce qui concerne le dépistage contre les champs avec de riches données textuelles, ces stratégies échouent. Ce guide nous aidera à créer un index de texte MongoDB et à l'utiliser pour rechercher des documents utilisant des requêtes et des critères de recherche en texte complet communs.

Lorsque nous voyons du matériel en utilisant des phrases ou des mots clés, le meilleur exemple est une recherche Google. Avec la recherche de texte intégral MongoDB, nous pouvons établir un index de texte sur n'importe quelle colonne dans un document à l'aide d'une chaîne ou des tableaux de chaînes.

Syntaxe de la recherche en texte intégral dans MongoDB dans Ubuntu 20.04 ?

La syntaxe mentionnée est la suivante:

db.Collection_name.find ($ text: $ search: "String")

La fonction Find () est utilisée avec les paramètres suivants dans la syntaxe ci-dessus:

  • Collection_name: fait référence au nom de la collection existante.
  • Trouver: effectué pour rechercher en utilisant la recherche.
  • $ texte: utilisé pour faire une recherche de collection qui satisfait nos objectifs.
  • $ recherche: utilisé pour effectuer la recherche.
  • Chaîne: fait référence à une certaine chaîne que nous voulons rechercher dans la collection, et nous pouvons utiliser la fonction de recherche pour trouver des mots exacts.

Travailler sur l'opérateur de texte $ à MongoDB dans Ubuntu 20.04:

Les listes de texte sont fournies par MongoDB pour aider les recherches de texte sur le contenu de la chaîne. Tout champ avec une valeur de chaîne ou une plage de composants de chaîne peut être inclus dans les enregistrements de texte. Vous devriez avoir un enregistrement de texte dans votre collection pour faire des questions de recherche de texte. Même une collection n'a qu'un seul enregistrement de recherche de sujet. Une liste peut s'étendre sur plusieurs champs.

Comment la recherche en texte intégral fonctionne dans MongoDB dans Ubuntu 20.04

Maintenant, regardez certains exemples pour mieux comprendre les choses. Tout d'abord, nous avons créé une base de données avec le nom «Mydemo». À l'intérieur de cette base de données, nous avons défini une collection comme des «fruits». Ensuite, la requête InsertMany est utilisée pour insérer le document de collection car la capture d'écran affiche les champs et les valeurs par rapport à ces champs pour le document «Fruits» de collection ci-dessous.

La requête «db.des fruits.trouver () »Résultats dans les attributs et les entités de la collection« fruits »comme suit. Nous avons trois documents enregistrés pour la collection de «fruits».

Maintenant, examinons comment nous pouvons effectuer une recherche en texte intégral.

Exemple n ° 1: Création d'index de texte dans MongoDB dans Ubuntu 20.04:

Nous devons établir un index de texte sur un ensemble de données avant de pouvoir utiliser les fonctionnalités de recherche en texte intégral de MongoDB. Les index sont des structures de données uniques qui isolent un élément de données limité de chaque texte d'une collection à partir des documents eux-mêmes. Jetons un coup d'œil à effectuer une recherche en texte intégral.

Un index de texte est construit de la même manière qu'un index conventionnel, au lieu de définir un ordre ascendant / décroissant, il définit le mot-clé texte.

Ci-dessus, nous avons une requête pour une recherche en texte intégral. Nous avons utilisé la méthode createIndex () pour créer un index de texte. Nous définissons les deux champs «Sujet» et «Contenu» sur le texte de type index.

En exécutant la requête CreateIndex sur le shell MongoDB, la sortie suivante confirme la création d'index:

Exemple n ° 2: recherche un mot ou une phrase à partir de texte intégral dans MongoDB dans Ubuntu 20.04:

Rechercher des documents comprenant un ou plusieurs mots célibataires est peut-être le défi de recherche le plus répandu. Les utilisateurs s'attendent probablement à ce que le navigateur Web soit adaptable pour choisir où les phrases de recherche particulières devraient s'afficher. Lorsque vous utilisez des index de texte, MongoDB s'approche des requêtes de recherche courantes de la même manière. Avec quelques exemples, cette étape explique comment MongoDB traite les demandes de recherche.

Ici, nous avons une requête «DB.des fruits.trouver()". La requête utilise l'opérateur de texte $, qui informe MongoDB ici que la requête utilisera l'index de texte que nous avons précédemment défini. De plus, un seul index de texte est autorisé dans chaque collection. Ensuite, à l'intérieur de l'opérateur de texte $, nous avons un autre opérateur appelé $ Search qui est utilisé pour rechercher la valeur «douce» des documents donnés.

Comme vous pouvez le voir, nous n'avons qu'un seul document avec le contenu texte «doux». En exécutant la requête ci-dessus, tous les détails du document ayant le contenu texte «doux» sont affichés comme suit:

Maintenant, nous recherchons deux mots en utilisant la requête suivante:

Nous avons donné à deux mots «Vitamin C» à l'opérateur de recherche $ qui est appelé à l'intérieur de l'opérateur de texte $. Lorsque la requête est exécutée, elle montre l'enregistrement du document ayant la vitamine C répertoriée dans le texte comme suit:

Exemple # 3: notant et tri les résultats de recherche en texte intégral dans MongoDB dans Ubuntu 20.04:

Chaque document reçoit un score de la recherche de texte qui indique à quel point il est pertinent pour la requête de recherche. Ce score est utilisé pour classer tous les enregistrements dans un résultat de recherche. Un score plus élevé signifie que le concours est plus significatif.

Nous avons un opérateur de texte $ qui recherche les deux mots «mangues» et «orange» à l'aide d'un opérateur de recherche $. Ensuite, nous avons une projection score: $ meta: «textScore» qui utilise l'opérateur $ méta, qui renvoie les métadonnées spécifiées à partir de documents récupérés. Les métadonnées TextScore, qui est un composant intégré du moteur de recherche en texte intégral de MongoDB et détient le score de pertinence de la recherche, est renvoyé dans ce cas.

Comme mentionné dans le document Filtre, les documents résultants ajouteront un nouveau champ nommé Score après avoir exécuté la requête:

Maintenant, nous avons utilisé la fonction de tri pour la projection score: $ meta: "textScore". Le document de tri utilise la même syntaxe que le document de projection.

Le texte Mango a le plus grand score de pertinence, il est donc d'abord surtout sur l'écran de sortie.

Conclusion:

Nous avons acquis comment utiliser les fonctionnalités de recherche en texte intégral de MongoDB en suivant ce tutoriel. Vous avez construit un index de texte et composé des requêtes de recherche de texte qui comprenaient un et de nombreux mots, des phrases entières et des exclusions. Vous avez également noté la pertinence des papiers retournés et ordonné aux résultats de la recherche pour afficher d'abord les éléments les plus pertinents.