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

Autouzupełnianie za pomocą java , Redis, Elastic Search , Mongo

Jest to krytyczny przypadek użycia wyszukiwania, a MongoDB i Redis są idealne do wyszukiwań opartych na kluczach i nie są używane do celów wyszukiwania, podczas gdy Elasticsearch jest wyszukiwarką rozproszoną, stworzoną specjalnie do takich przypadków użycia.

Przed wybraniem systemu powinieneś wiedzieć, jak Twoja funkcja działa wewnętrznie i poniżej rozważenia jej wyboru.

Niefunkcjonalne wymagania dla Twojej funkcji

  1. Jaka byłaby całkowita liczba zapytań na sekundę (QPS)?
  2. Jak często będziesz aktualizować dokumenty (tj. nazwiska w twoim przykładzie).
  3. Jaka jest umowa SLA po zaktualizowaniu nazw i pojawieniu się w wynikach wyszukiwania?
  4. SLA dla wyników wyszukiwania.

Niektóre wymagania funkcjonalne.

  1. Jak powinno wyglądać autouzupełnianie, wyszukiwanie prefiksów, infiksów w nazwach?
  2. Minimalna liczba znaków, które użytkownik powinien wpisać przed wyświetleniem wyników autouzupełniania.
  3. Jak często powyższe wymagania mogą się zmieniać.

Elasticsearch indeksuje dokumenty w indeksie odwróconym i pasuje do tokenów roboczych (które można łatwo dostosować do wymagań biznesowych), dzięki czemu wyszukiwanie jest bardzo szybkie. Redis i MongoDB nie mają tej struktury wewnętrznie i nie powinny być używane w tym przypadku użycia. Nie powinieneś mieć żadnych wątpliwości co do wyboru Elasticsearch w celu wdrożenia autouzupełniania.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Policz elementy tablicy, które pasują do warunku

  2. Przetłumacz Queryable<T> z powrotem na IMongoQuery

  3. Asynchroniczna iteracja kursora z asynchronicznym podzadaniem

  4. Konwertuj MongoDB BsonDocument na prawidłowy JSON w C#

  5. Przygotowanie serwera MongoDB do produkcji