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

Vyhledávání v mongo db pomocí mongoose regex vs. text

Jak regulární výraz, tak textové vyhledávání ($text) vám pomohou velmi efektivně vyhledávat v textu. Oba mají své výhody a nevýhody, ale existují dva jasné rozdíly

regulární výraz

  • Regex nevyužívá výhody indexů, pokud nevyhledáváte na začátku řetězce pomocí ^ operátor.

  • Regex umožňuje prohledávat částečný text. proto .* a mnoho dalších vzorů.

  • Regex nepodporuje slova stop nebo noise.

$text

textové indexy v mongodb jsou opravdu rychlé a měly by být preferovány. MongoDB však neimplementuje plně funkční textové indexy. Jednou z hlavních nevýhod je, že nepodporuje částečnou shodu. např. pokud hledáte kočku, bude hledat pouze kočku a kočky, ale ne bobcat nebo housenku.

Sečteno a podtrženo, pokud chcete implementovat funkci jako RDBMS like operátor, '$text' vám ​​nepomůže (alespoň v současných implementacích MongoDB, ale v budoucnu se to může změnit).



  1. Začínáme s Pythonem a MongoDB

  2. Přehled MongoDB a vyvažování zátěže

  3. Mongodb:Dotaz na objekt json vnořený do pole

  4. MongoDB diacriticInSensitive vyhledávání nezobrazuje všechny řádky s diakritikou (slova s ​​diakritickým znaménkem) podle očekávání a naopak