Recherche en texte intégral MongoDB
La recherche en texte intégral crée un index pour chaque mot, indiquant le numéro et l'emplacement du mot dans l'article. Lorsque l'utilisateur interroge, le programme de recherche effectuera une recherche en fonction de l'index préétabli et. recherchera Les résultats sont renvoyés à la méthode de recherche de l'utilisateur.
Ce processus est similaire au processus de recherche de mots dans la liste de mots de recherche dans un dictionnaire.
MongoDB prend en charge la recherche en texte intégral à partir de la version 2.4 et prend actuellement en charge l'indexation en texte intégral dans 15 langues (le chinois n'est pas pris en charge pour le moment).
danois
néerlandais
anglais
finlandais
français
allemand
hongrois
-
italien
norvégien
portugais
roumain
russe
espagnol
suédois
turc
Activer la recherche en texte intégral
MongoDB active la recherche en texte intégral par défaut après la version 2.6. Si vous utilisez la version précédente, vous devez utiliser le code suivant pour activer la recherche en texte intégral. -recherche de texte :
>db.adminCommand({setParameter:true,textSearchEnabled:true})
Ou utilisez la commande :
mongod --setParameter textSearchEnabled=true
Créez un index de texte intégral
Considérez les données du document de la collection de publications suivante, qui comprend contenu de l'article (post_text) et balises :
{ "post_text": "enjoy the mongodb articles on w3cschool.cc", "tags": [ "mongodb", "w3cschool" ] }
Nous pouvons créer un index de texte intégral sur le champ post_text afin de pouvoir rechercher le contenu au sein de l'article :
>db.posts.ensureIndex({post_text:"text"})
Utiliser le contenu complet -text index
Maintenant, nous avons créé un index de texte intégral sur le champ post_text Index de texte intégral, nous pouvons rechercher le mot-clé w3cschool.cc dans l'article :
>db.posts.find({$text:{$search:"w3cschool.cc"}})
La commande suivante renvoie les données du document suivantes contenant le mot-clé w3cschool.cc :
{ "_id" : ObjectId("53493d14d852429c10000002"), "post_text" : "enjoy the mongodb articles on w3cschool.cc", "tags" : [ "mongodb", "w3cschool" ] } { "_id" : ObjectId("53493d1fd852429c10000003"), "post_text" : "writing tutorials on w3cschool.cc", "tags" : [ "mongodb", "tutorial" ] }
Si vous utilisez l'ancienne version de MongoDB, vous pouvez utiliser la commande suivante :
>db.posts.runCommand("text",{search:" w3cschool.cc"})
L'utilisation de l'index de texte intégral peut améliorer la recherche efficacité.
Supprimer l'index de texte intégral
Supprimer l'index de texte intégral existant Vous pouvez utiliser la commande find pour trouver le nom de l'index :
>db.posts.getIndexes()
Obtenir l'index. name via la commande ci-dessus, dans cet exemple, le nom de l'index est post_text_text Exécutez la commande suivante pour supprimer l'index :
>db.posts.dropIndex("post_text_text")