Nie znajduję żadnego głębokiego wyjaśnienia w Internecie na temat porównania między ElasticSearch a bazami danych wykresów.
Oba są zoptymalizowane do przeglądania danych.
Wydaje się, że ElasticSearch jest zoptymalizowany pod kątem analizy.
Jednak Neo4j jest również oparty na Lucene do zarządzania indeksami i niektórymi funkcjami pełnego tekstu.
Dlaczego miałbym używać ElasticSearch, jeśli już korzystam z bazy danych grafów?
W moim przypadku używam Neo4j do budowy sieci społecznościowej.
Jakie rzeczywiste korzyści może przynieść ElasticSearch?
AKTUALIZACJA ----------
Właśnie znalazłem ten akapit:
Istnieją niezliczone przypadki, w których elastyczne wyszukiwanie jest przydatne. Niektóre przypadki użycia wymagają tego wyraźniej niż inne. Poniżej wymieniono niektóre zadania, dla których szczególnie przydatne jest wyszukiwanie elastyczne.
- Przeszukiwanie dużej liczby opisów produktów w celu znalezienia najlepszego dopasowania dla określonej frazy (np. „Nóż szefa kuchni”) i zwrócenie najlepszych wyników
- Biorąc pod uwagę poprzedni przykład, rozbicie różnych działów, w których pojawia się „nóż szefa kuchni” (patrz Faceting w dalszej części tej książki)
- Wyszukiwanie tekstu dla słów, które brzmią jak „pora roku”
- Automatyczne uzupełnianie pola wyszukiwania na podstawie częściowo wpisanych słów na podstawie wcześniej przeprowadzonych wyszukiwań z uwzględnieniem błędów ortograficznych
- Przechowywanie dużej ilości danych częściowo ustrukturyzowanych (JSON) w sposób rozproszony, z określonym poziomem nadmiarowości w klastrze maszyn
Należy jednak zauważyć, że chociaż wyszukiwanie elastyczne jest świetne w rozwiązywaniu wyżej wymienionych problemów, nie jest najlepszym wyborem dla innych. Szczególnie źle rozwiązuje problemy, dla których relacyjne bazy danych są zoptymalizowane. Problemy takie jak te wymienione poniżej.
- Obliczanie, ile przedmiotów pozostało w ekwipunku
- Obliczanie sumy wszystkich pozycji na wszystkich fakturach wysłanych w danym miesiącu
- Transakcyjne wykonywanie dwóch operacji z obsługą wycofywania
- Tworzenie rekordów, które z pewnością będą unikalne dla wielu podanych terminów, na przykład numeru telefonu i numeru wewnętrznego
- Elasticsearch jest na ogół fantastyczny w dostarczaniu przybliżonych odpowiedzi z danych, takich jak ocenianie wyników według jakości. Podczas gdy elasticsearch może wykonywać dokładne dopasowanie i obliczenia statystyczne, jego podstawowym zadaniem wyszukiwania jest z natury przybliżone zadanie.
- Znajdowanie przybliżonych odpowiedzi jest właściwością, która oddziela wyszukiwanie elastyczne od bardziej tradycyjnych baz danych. To powiedziawszy, tradycyjne relacyjne bazy danych wyróżniają się precyzją i integralnością danych, dla których elasticsearch i Lucene mają niewiele przepisów.
Czy mogę stwierdzić, że jeśli nie potrzebuję przybliżonych odpowiedzi, to ElasticSearch byłby bezużyteczny w porównaniu z już używaną bazą danych grafów?