Elasticsearch

Elastic search

Czym jest Elastic search ?


Elasticsearch to rozproszony, otwarty system do wyszukiwania i analizy danych. Został stworzony do skalowania w poziomie, umożliwiając szybkie przeszukiwanie i analizę dużych ilości danych. Elasticsearch jest często używany wraz z innymi narzędziami, takimi jak Kibana, Logstash i Beats, tworząc zbiorczo znany jako Elastic Stack.

Do czego służy :

System ten obsługuje pełno tekstowe wyszukiwanie, przechowuje dane w formie dokumentów w formacie JSON i oferuje interfejs RESTful do interakcji z systemem. Elasticsearch znajduje zastosowanie w wielu dziedzinach, takich jak analiza logów, monitorowanie, inteligencja biznesowa oraz wyszukiwanie pełno tekstowe w aplikacjach e-commerce czy systemach zarządzania treścią. W poniższym wpisie przybliże instalacje i obsługę tego systemu

Jak zainstalować ?

aby używać elastic search potrzebna jest Java . można korzystać z np. Open JDK czy Oracle JDK.
aby zainstalować elastic search udajemy się na stronę dystrybutora (kliknij tutaj) i pobieramy interesującą nas wersje przystosowaną do naszej platformy lub dla systemów linux:>
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
sudo apt-get update 
sudo apt-get install elasticsearch
  1. następnie należy ją uruchomić za pomocą komendy i aby automatycznie uruchomiała się przy starcie 
  2. sudo service elasticsearch start
    sudo systemctl enable elasticsearch
    
po tych krokach dysponujemy działający system elasticsearch.

Przykład prostego użycia

Przyjmijmy, że chcemy stworzyć indeks dla dokumentów reprezentujących książki. Każda książka będzie miała tytuł, autora i rok wydania. w bashu
curl -X PUT "localhost:9200/books" -H 'Content-Type: application/json' -d '
{
    "mappings": {
        "properties": {
            "title": { "type": "text" },
            "author": { "type": "keyword" },
            "year": { "type": "integer" }
        }
    }
}'
Powyższa komenda tworzy indeks o nazwie "books" zdefiniowany przez strukturę dokumentów, w tym pola "title" (tekst), "author" (słowo kluczowe) i "year" (liczba całkowita). następnie dodajemy książki do naszego indexu :
curl -X POST "localhost:9200/books/_doc/1" -H 'Content-Type: application/json' -d '
{
    "title": "Władca Pierścieni",
    "author": "J.R.R. Tolkien",
    "year": 1954
}'
Możemy teraz dodawać kolejne dokumenty reprezentujące inne książki. Wyszukiwanie Dokumentów: Teraz, gdy mamy indeks z kilkoma dokumentami, możemy przeprowadzić proste wyszukiwanie.
curl -X GET "localhost:9200/books/_search" -H 'Content-Type: application/json' -d '
{
  "query": {
    "match_phrase": {
      "author": "J.R.R. Tolkien"
    }
  }
}
'
Powyższe zapytanie zwróci książki napisane przez J.R.R Tolkiena.

Zalety Elasticsearcha:

  1. Pełno tekstowe Wyszukiwanie: Elasticsearch zapewnia potężne pełno tekstowe wyszukiwanie, co oznacza, że ​​możesz przeszukiwać duże ilości danych, a wyniki są zwracane w czasie rzeczywistym. Jest to szczególnie przydatne w przypadku aplikacji, które wymagają szybkiego dostępu do informacji.

  2. Rozproszone Przetwarzanie: Elasticsearch jest projektowane do pracy w środowisku rozproszonym, co umożliwia łatwe skalowanie w poziomie. Możesz dodawać nowe węzły, aby obsługiwać większe obciążenie, co sprawia, że jest elastyczne i skalowalne.

  3. Wszechstronne Zastosowania: Elasticsearch nie jest ograniczone do jednego rodzaju zastosowania. Jest używane w różnych dziedzinach, takich jak analiza logów, monitorowanie, analiza biznesowa, wyszukiwanie pełno tekstowe w aplikacjach internetowych, rekomendacje, a także w przypadku aplikacji opartych na czasie rzeczywistym.

  4. Analiza Danych: Elasticsearch oferuje różnorodne możliwości analizy danych, w tym agregacje, filtry, sortowanie, a także wsparcie dla zapytań geoprzestrzennych. Możesz uzyskiwać cenne informacje z danych, zarówno w czasie rzeczywistym, jak i w retrospektywie.

  5. Elastyczna Struktura Danych: Elasticsearch jest oparte na schemacie JSON, co oznacza, że nie musisz z góry definiować struktury danych. Możesz indeksować dane w formacie JSON, a Elasticsearch dynamicznie tworzy mapowanie do indeksu.

  6. Otwarty Kod źródłowy: Elasticsearch jest projektem open-source, co oznacza, że ​​możesz dowolnie dostosowywać i dostosowywać do swoich potrzeb. Społeczność open-source aktywnie wspiera rozwój i utrzymanie projektu.

  7. Integracja z Innymi Narzędziami: Elasticsearch jest często używane wraz z innymi narzędziami z rodziny Elastic Stack, takimi jak Kibana (do wizualizacji danych), Logstash (do przetwarzania logów) i Beats (do zbierania danych). Integracja ta zapewnia kompleksowe rozwiązanie do analizy i wizualizacji danych.

  8. Wsparcie dla Języka Zapytań: Elasticsearch obsługuje różnorodne języki zapytań, takie jak Lucene Query Language, Query DSL, co umożliwia programistom dostosowanie zapytań do swoich konkretnych potrzeb.

  9. Wysoka Wydajność: Elasticsearch zostało zaprojektowane z myślą o wydajności i efektywności. Dzięki indeksacji odwróconej, której używa, umożliwia bardzo szybkie wyszukiwanie nawet w przypadku dużych zbiorów danych.

  10. Wsparcie Społeczności i Dokumentacja: Posiada rozwiniętą społeczność użytkowników oraz obszerną dokumentację, co ułatwia rozwiązywanie problemów i korzystanie z systemu.

Te zalety sprawiają, że Elasticsearch jest popularnym wyborem dla wielu organizacji, które potrzebują potężnego silnika wyszukiwania i analizy danych.

Komentarze

Popularne posty z tego bloga

Jak zrobić aplikację REST-ową w Spring Boot

Wprowadzenie do Reacta

Coś o Cassandrze