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
- Jaka byłaby całkowita liczba zapytań na sekundę (QPS)?
- Jak często będziesz aktualizować dokumenty (tj. nazwiska w twoim przykładzie).
- Jaka jest umowa SLA po zaktualizowaniu nazw i pojawieniu się w wynikach wyszukiwania?
- SLA dla wyników wyszukiwania.
Niektóre wymagania funkcjonalne.
- Jak powinno wyglądać autouzupełnianie, wyszukiwanie prefiksów, infiksów w nazwach?
- Minimalna liczba znaków, które użytkownik powinien wpisać przed wyświetleniem wyników autouzupełniania.
- 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.