Podstawowe różnice między Elasticsearch a relacyjną bazą danych

Relacyjna baza danychElasticsearch
Sposób przechowywania danychTabele zawierające kolumny i wierszeDokumenty JSON zawierające pary typu: klucz – wartość.
Indeksowanie danychIndeksy przypisane do tabel i kolumn zawierają informację w którym wierszu w danej tabeli i kolumnie jest wyszukiwana wartość.
Możliwe jest używanie jednej kolumny w wielu indeksach.
Odwrócone indeksy, które zawierają listę unikalnych słów ze wszystkich dokumentów. Do każdego słowa przypisana jest lista dokumentów, w których dane słowo występuje.
Możliwe jest używanie jednego pola w wielu indeksach (np. do pełnotekstowego wyszukiwania, do sortowania oraz grupowania)
Typy danychStatyczne. Jawnie przypisane typy danych do każdej z kolumn w każdej z tabel.Dynamiczne. Typy danych są automatycznie wykrywane na podstawie zawartości dokumentów podczas procesu indeksowania. Wykrywane są: boolean, floating point, integer, string, data. Użytkownik może jednak jawnie określić znaczenie danego typu i rozróżnić np. free-text od tekstu, który powinien zawierać symbol sformatowany w bardzo konkretny sposób.
WyszukiwanieStrukturalne SQL po konkretnych tabelach i kolumnach. Istnieje również możliwość zdefiniowania indeksu do wyszukiwania pełnotekstowego.Równorzędne dwa sposoby wyszukiwania: strukturalne po konkretnych polach w konkretnym indeksie (podobnie jak SQL), ale również pełnotekstowe.
Możliwe jest również wyszukiwanie kontekstowe, wyszukiwanie z podpowiadaniem oraz wyszukiwanie wg podobieństw
Żądania zapytańSQL, dedykowane klienty, dedykowane sterowniki JDBC, ODBCWbudowane REST-API, wyszukiwanie dla developerów w Kibanie oraz dedykowany klient Elasticsearch do wykorzystania w aplikacjach.
Dostępne są również sterowniki JDBC i ODBC.

Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *