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

mongodb przybliżone dopasowanie ciągów

wyszukiwanie tekstowe funkcja w MongoDB (od wersji 2.6) nie ma żadnych wbudowanych funkcji dopasowywania rozmytego/częściowego łańcucha. Jak już zauważyłeś, przypadek użycia koncentruje się obecnie na obsłudze języka i rdzeni z podstawowymi operatorami boolowskimi i dopasowywaniem słów/fraz.

Istnieje kilka możliwych podejść, które należy rozważyć w przypadku dopasowania rozmytego, w zależności od wymagań i sposobu, w jaki chcesz zakwalifikować się jako „wydajne” (szybkość, pamięć masowa, czas programisty, wymagana infrastruktura itp.):

  • Zaimplementuj obsługę rozmytego/częściowego dopasowania w logice aplikacji, korzystając z niektórych łatwo dostępnych algorytmów podobnych do dźwięków i podobieństw. Korzyści z tego podejścia obejmują brak konieczności dodawania dodatkowej infrastruktury i możliwość dokładnego dostosowania dopasowania do Twoich wymagań.

    Więcej szczegółowych przykładów znajdziesz na:Efficient Techniki dopasowania rozmytego i częściowego w MongoDB .

  • Zintegruj z zewnętrznym narzędziem wyszukiwania, które zapewnia bardziej zaawansowane funkcje wyszukiwania. Zwiększa to złożoność wdrożenia i prawdopodobnie jest przesadą tylko w przypadku wprowadzania z wyprzedzeniem, ale możesz znaleźć inne funkcje wyszukiwania, które chciałbyś włączyć w innym miejscu w swojej aplikacji (np. „w ten sposób”, bliskość słów, wyszukiwanie aspektowe, ..).

    Na przykład zobacz:Jak wykonać Rozmyte dopasowanie z Mongo Connector i Elastic Search . Uwaga:zapytanie rozmyte opiera się na odległości Levenshteina.

  • Użyj biblioteki autouzupełniania, takiej jak open source Twittera typeahead.js , który obejmuje aparat sugestii i interfejs API zapytań/buforowania. Typeahead jest właściwie uzupełnieniem każdego z innych podejść backendowych, a jego (opcjonalny) silnik sugestii Bloodhound obsługuje pobieranie z wyprzedzeniem, a także buforowanie danych w pamięci lokalnej.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mangusta niestandardowa walidacja przy użyciu 2 pól

  2. Node.js i MongoDB Time Zone Problem UTC nie jest poprawnie konwertowany przez sterownik?

  3. MongoDB $trunc

  4. Mangusta, tablica lokalizacji indeksów

  5. MongoDB dodaje się do pola kolekcji łączącej z bazy jeden