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

MongoDB - Różnica między indeksem w polu tekstowym a indeksem tekstowym?

Te dwie opcje indeksowania są bardzo różne.

  • Kiedy tworzysz zwykły indeks w polu tekstowym, indeksuje on całą wartość w łańcuchu. Głównie przydatne w przypadku pojedynczych ciągów słów (takich jak nazwa użytkownika do logowania), w których można dokładnie dopasować.

  • Z drugiej strony indeks tekstowy będzie tokenizował i blokował zawartość pola. Tak więc podzieli ciąg na pojedyncze słowa ortokeny i dalej zredukuje je do ich rdzeni, tak aby pasowały do ​​siebie warianty tego samego słowa („rozmowa” pasująca do „rozmowy”, „rozmowa” i „rozmowa” na przykład jako „rozmowa” jest łodygą wszystkich trzech). Przydatne głównie w przypadku prawdziwego tekstu (zdań, akapitów itp.).

    Wyszukiwanie tekstowe

    Wyszukiwanie tekstowe obsługuje wyszukiwanie treści ciągów w dokumentach kolekcji. MongoDB udostępnia $text operator do wykonywania zapytań wyszukiwania tekstu oraz w potokach agregacji.

    Proces wyszukiwania tekstu:

    tokenizes and stems the search term(s) during both the index creation and the text command execution.
    assigns a score to each document that contains the search term in the indexed fields. The score determines the relevance of a document to a given search query.
    

    $text operator może wyszukiwać słowa i frazy. Zapytanie dopasowuje się do pełnych słów macierzystych. Na przykład, jeśli pole dokumentu zawiera słowo jagoda, wyszukiwanie terminu niebieski nie będzie pasować do dokumentu. Jednak wyniki wyszukiwania jagód lub jagód będą pasować.

  • $regex wyszukiwania mogą być używane ze zwykłymi indeksami w polach łańcuchowych, aby zapewnić dopasowanie wzorców i wyszukiwanie z użyciem symboli wieloznacznych. Niezbyt efektywny użytkownik indeksów, ale będzie używał indeksów tam, gdzie może:

    Jeśli dla pola istnieje indeks, MongoDB dopasowuje wyrażenie regularne do wartości w indeksie, co może być szybsze niż skanowanie kolekcji. Dalsza optymalizacja może nastąpić, jeśli wyrażenie regularne jest „wyrażeniem przedrostkowym”, co oznacza, że ​​wszystkie potencjalne dopasowania zaczynają się od tego samego ciągu. Dzięki temu MongoDB może skonstruować „zakres” z tego prefiksu i dopasować tylko te wartości z indeksu, które mieszczą się w tym zakresie.

http://docs.mongodb.org/manual/core/index-text/

http://docs.mongodb.org/manual/reference/operator/query/regex/



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jakie są zalety korzystania z bazy danych pozbawionej schematów, takiej jak MongoDB, w porównaniu z relacyjną bazą danych?

  2. Używanie map/reduce do mapowania właściwości w kolekcji

  3. Ramy agregacji MongoDB i etapy agregacji

  4. MongoDB $sum Operator potoku agregacji

  5. MongoDB:Serwer ma ostrzeżenia o uruchomieniu