sql >> Databáze >  >> NoSQL >> MongoDB

Index fulltextového vyhledávání MongoDB:chyba:příliš mnoho textového indexu pro, proč?

MongoDB umožňuje pouze jeden textový index na kolekci.

Můžete však použít textový index, který zahrnuje více polí:

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

Tímto způsobem získáte výsledky, když je fráze, kterou hledáte, nalezena v obou. Když to není to, co chcete, například když máte dva vyhledávací dotazy, z nichž každý vrací výsledky z jednoho z polí, ale ne z druhého, máte dvě možnosti.

  1. použijte vícepolový textový index, ale zahoďte výsledky, které pocházejí z nesprávného pole na aplikační vrstvě.
  2. extrahujte jedno ze dvou polí do jiné kolekce. Dokumenty v této sbírce mohou obsahovat buď úplné kopie, redigované kopie, nebo pouze pole, které indexujete, a _id původního dokumentu.


  1. Připojte se a dotazujte se na databázi Mongo přes SSH se soukromým klíčem v Pythonu

  2. Je možné mít Linux VFS cache se souborovým systémem FUSE?

  3. Parametr projekce MongoDB nefunguje v findOne()

  4. Jak přejmenujete databázi MongoDB?