Recherche de texte mongodb avec plusieurs champs
Je vais essayer d'obtenir mongodb de recherche de texte intégral avec de multiples champs de travail.
J'ai mis l'index sur 3 champs: nom,description, catégorie, et vérifié avec
document.collection.getIndexes ()
qui retourne-
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "document.collection"
},
{
"v" : 1,
"key" : {
"name" : 2,
"description" : 1,
"category" : 1
},
"name" : "name_2_description_1_category_1",
"ns" : "document.collection",
"background" : true,
"safe" : null
}
]
Maintenant, si j'essaie d'effectuer une recherche de texte, en utilisant le prédécesseur de commande
db.collection.find( {$text:{$search:'alias'}} ).limit(10)
ai le message d'erreur suivant:
error: {
"$err" : "Unable to execute query: error processing query: ns=document.collection limit=10 skip=0\nTree: TEXT : query=alias, language=, tag=NULL\nSort: {}\nProj: {}\n planner returned error: need exactly one text index for $text query",
"code" : 17007
}
J'ai essayé google et mongodb docs mais je ne pouvais pas trouver quoi que ce soit.
source d'informationauteur Mukesh Soni
Vous devez vous connecter pour publier un commentaire.
Vous devez créer un l'index de texte sur les champs que vous souhaitez rechercher:
À partir de la documentation de la $texte opérateur:
L'indice que vous avez créé pour votre trois champs est un composé de l'indice, pas un index de texte. L'index de texte ressemblera à ceci: