MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Wyszukiwanie w mongo db przy użyciu mongoose regex vs. text

Cóż, zarówno wyszukiwanie wyrażeń regularnych, jak i tekstowych ($text) pomaga w bardzo wydajnym wyszukiwaniu w tekście. Oba mają swoje wady i zalety, ale istnieją dwie wyraźne różnice

wyrażenie regularne

  • Regex nie korzysta z indeksów, chyba że wyszukujesz na początku ciągu za pomocą ^ operatora.

  • Regex umożliwia wyszukiwanie częściowego tekstu. dlatego .* i tak wiele innych wzorców.

  • Regex nie obsługuje słów stop i szumów.

$text

indeksy tekstowe w mongodb są naprawdę szybkie i powinny być preferowane. Jednak MongoDB nie implementuje w pełni funkcjonalnych indeksów tekstowych. Jedną z głównych wad jest to, że nie obsługuje częściowego dopasowania. np. jeśli szukasz kota, wyszuka on tylko kota i koty, ale nie rysia rudego ani gąsienicy.

Najważniejsze jest to, jeśli chcesz zaimplementować funkcję taką jak RDBMS like operator, '$text' ci nie pomoże (przynajmniej w obecnych implementacjach MongoDB, ale w przyszłości może się to zmienić).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Grupuj według określonego elementu tablicy z platformą agregacji mongo

  2. Jak działa sortowanie w nowym rozszerzeniu mongodb PECL?

  3. Sortowanie agregacji addToSet wynik

  4. GridFS w Spring Data MongoDB

  5. Sprawdzanie, czy pole zawiera ciąg