Osoby, które nieco dokładniej śledzą moje blogowe poczynania mogły zauważyć, że na konferencję ByteBay 2018 wybrałem się głównie po to, żeby wziąć udział w warsztatach związanych z Elasticsearchem. Przyznam, że ostatnio wkręciłem się trochę w ten temat 🙂

Całe zainteresowanie rozpoczęło się dosyć przypadkowo. W nowym projekcie dla Roche’a głównym kiler-ficzerem miało być super ekstra wyszukiwanie po wszystkim po czym tylko się da „prawie jak w Google” 😉 Wybór silnika padł właśnie na Elasticsearch, a seria (nie)fortunnych zdarzeń zrobiła ze mnie głównego developera tej części aplikacji. Przypadek? Nie sądzę 🙂

Od jakiegoś czasu staram się pogłębiać wiedzę na temat Elasticsearcha również w wolnych chwilach. Co pokazuje choćby wspomniany udział w ByteBay 2018, czy pomaganie innym na StackOverflow:

Po chwili przemyślenia stwierdziłem, że mimo niezbyt długiego czasu pracy z Elasticsearchem, napotkałem po drodze kilka ciekawych problemów, których rozwiązań nie znalazłem w prosty sposób w internecie. Trochę przemyśleń oraz planowania i zdecydowałem się zrobić cykl artykułów na temat tego silnika wyszukiwania, który właśnie tym wpisem inauguruję. Taki od zera do bohatera.

Będzie tu kilka wpisów prostych, wprowadzających w temat, ale znajdą się też takie opisujące realnie napotkane problemy. Zachęcam do śledzenia. Ostrzegam, że tempo nie będzie porywające. Chcę żeby był to cykl powstający obok mojego (w miarę) regularnego, czwartkowego publikowania. Plan minimum, to jeden wpis na dwa tygodnie, w co drugi poniedziałek o 21:40. Wiesz jak jest – doba ma tylko 24 godziny 😉

Dziś nie będziemy szaleć 🙂 Zobaczymy jak szybko można zacząć z przygodę z Elasticsearchem i przygotujemy środowisko na przyszłość.

Cykl artykułów "Uczymy się Elasticsearch"

Ten wpis jest częścią cyklu, w którym staram się pokazać w jaki sposób możesz zbudować przyjazną dla użytkownika wyszukiwarkę, wykorzystując do tego celu potężny silnik wyszukiwania jakim jest Elasticsearch.

Do tej pory w ramach cyklu ukazały się następujące artykuły:

  1. instalacja, uruchomienie i pierwsze zapytanie
  2. kilka słów na temat Elastic Stack
  3. przydatne narzędzia
  4. indeks odwrócony Apache Lucene
  5. wyszukiwanie pełnotekstowe
  6. trafność
  7. przygotowanie tekstu do optymalnego wyszukiwania
  8. coś poszło nie tak, czyli seria moich fackupów
  9. zaczarowany zakreślacz
  10. o co jeszcze możemy zapytać?
  11. ...

Instalacja

Najnowszą wersję Elasticsearch pobieramy ze strony elastic.co/downloads/elasticsearch. Wystarczy nam wersja ZIP lub TAR.

Archiwum zawiera jeden folder o nazwie elasticsearch-X.Y.Z, który wypakowujemy w wybrane przez siebie miejsce. Nazwijmy sobie tę ścieżkę $ES_HOME.

Koniec instalacji 🙂 Oczywiście koniec na nasze potrzeby. W dokumentacji znajdziesz o wiele więcej opcji konfiguracyjnych. Jednak w większości przypadków, do celów deweloperskich wystarczy nam to co przychodzi ustawione domyślnie.

Uruchomienie

Uruchomienie jest równie proste.

Jedyne co jest nam potrzebne do uruchomienia Elasticsearcha jest JVM. W chwili kiedy do piszę autorzy zalecają używanie Java 8 (najlepiej build minimum 1.8.0_131). Ja u siebie zainstalowałem wersję 1.8.0_172-b11.

Gdy Java jest już zainstalowana, to przechodzimy do folderu $ES_HOME/bin i w zależności od systemu uruchamiamy skrypt elasticsearch lub elasticsearch.bat. Zainteresowanych tematem kompatybilności i wsparcia Elasticsearcha z różnymi systemami odsyłam do dokumentacji.

Po chwili w konsoli powinniśmy otrzymać informację, że Elasticsearch został uruchomiony na porcie 9200. Wchodząc pod adres http://localhost:9200 w swojej ulubionej przeglądarce powinniśmy zobaczyć coś podobnego:

Voilà! 😀

Pierwsze zapytanie

Chcąc przeszukać naszego Elasticsearcha wchodzimy pod adres http://localhost:9200/_search, a że na razie jest pusty to zobaczymy coś takiego:

a jeżeli do adresu dodamy parametr pretty=true (http://localhost:9200/_search?pretty=true), to odpowiedź od Elasticsearcha będzie przyjemniej dla oka sformatowana:

The End

To tyle na dziś. Wiem, wiem… szaleństwa nie ma 😉 Tak jak zapowiadałem – początkowe wpisy będą swoistym wstępem do tematu, jednak na koniec będziesz w stanie zbudować całkiem fajnie działającą wyszukiwarkę danych. Poproszę Cię o jeszcze chwilę cierpliwości.

Bądź na bieżąco!

Podobają Ci się treści publikowane na moim blogu? Nie chcesz niczego pominąć? Zachęcam Cię do subskrybowania kanału RSS, polubienia fanpage na Facebooku, zapisania się na listę mailingową:




Uwaga! Jeżeli w ciągu 24-godzin od zapisania się na listę mailingową nie otrzymasz wybranego przez siebie prezentu to skontaktuj się ze mną.

Zgoda? Zapisując się do newslettera wyrażasz zgodę na przesyłanie Ci starannie wyselekcjonowanych informacji marketingowych. Powyższe dane są przechowywane w systemie MailChimp i nie są udostępniane nikomu więcej.

lub śledzenia mnie na Twitterze. Generalnie polecam wykonanie wszystkich tych czynności, bo często zdarza się tak, że daną treść wrzucam tylko w jedno miejsce. Zawsze możesz zrobić to na próbę, a jeśli Ci się nie spodoba – zrezygnować :)

Dołącz do grup na Facebooku

Chcesz więcej? W takim razie zapraszam Cię do dołączenia do powiązanych grup na Facebooku, gdzie znajdziesz dodatkowe informacje na poruszane tutaj tematy, możesz podzielić się własnymi doświadczeniami i przemyśleniami, a przede wszystkim poznasz ludzi interesujących się tą samą tematyką co Ty.

W grupie Programista Na Swoim znajdziesz wiele doświadczonych osób chętnych do porozmawiania na tematy krążące wokół samozatrudnienia i prowadzenia programistycznej działalności gospodarczej. Vademecum Juniora przeznaczone jest zaś do wymiany wiedzy i doświadczeń na temat życia, kariery i problemów (niekoniecznie młodego) programisty.

Wesprzyj mnie

Jeżeli znalezione tutaj treści sprawiły, że masz ochotę wesprzeć moją działalność online, to zobacz na ile różnych sposobów możesz to zrobić. Niezależnie od tego co wybierzesz, będę Ci za to ogromnie wdzięczny.

Na wsparciu możesz także samemu zyskać. Wystarczy, że rzucisz okiem na listę różnych narzędzi, które używam i polecam. Decydując się na skorzystanie z któregokolwiek linku referencyjnego otrzymasz bonus również dla siebie.

Picture Credits
Tribute to Patrons