MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Index de recherche de texte intégral MongoDB :erreur :trop d'index de texte pour, pourquoi ?

MongoDB n'autorise qu'un seul index de texte par collection.

Mais vous pouvez utiliser un index de texte qui s'étend sur plusieurs champs :

db.collection.ensureIndex( {
    description: "text",
    title: "text"
} );

De cette façon, vous obtiendrez des résultats lorsque la phrase que vous recherchez se trouvera dans l'un ou l'autre. Lorsque ce n'est pas ce que vous voulez, comme lorsque vous avez deux requêtes de recherche qui renvoient chacune les résultats d'un des champs mais pas de l'autre, vous avez deux options.

  1. utiliser un index de texte multi-champs, mais ignorer les résultats provenant du mauvais champ sur la couche d'application.
  2. extraire l'un des deux champs vers une collection différente. Les documents de cette collection peuvent contenir des copies complètes, des copies expurgées ou simplement le champ que vous indexez et le _id du document d'origine.