kurs ElasticSearch

Jak zbudować wyszukiwarkę którą pokochają użytkownicy ?

Kurs o najlepszej wyszukiwarce na rynku.

TWÓJ INSTRUKTOR

Marcin Lewandowski

Marcin Lewandowski
  • Programista

    Od zawsze kochałem komputery, zanim jeszcze miałem swój pierwszy komputer kupowałem gazety i czytałem o nich wszystko. Na studiach pokochałem programowanie w C++, aby ostatecznie zacząć tworzyć aplikację webowe.

  • Bloger

    Od zawsze lubiłem dzielić się wiedzą. Z tej miłości narodził się blog porady-it.pl, który zawiera rozwiązania różnych problemów. Blog nadal działa i czasem publikuję tam wpisy. Jednak moim ukochanym dzieckiem jest blog czterytygodnie.pl, którego celem jest dostarczenie wiedzy w usystematyzowany sposób.

  • Kawosz

    Jakim by to nie było banałem, programista kochający kawę. Od dwóch lat ważę, mielę i parzę kawę w przeróżny sposób. Nie jest mi obcy hemex, drip czy areopress i mam nadzieję, że zarażę pasją do dobrej kawy jak najwięcej osób !!!

Programista z ponad 10 letnim doświadczeniem. Na codzień pracujący z takimi technologiami jak ElasticSearch, Symfony, RabbitMQ, Node.js, Redis, Docker, Vagrant.

  • Symfony
  • ElasticSearch
  • ElasticSearch
  • ElasticSearch
  • ElasticSearch
  • ElasticSearch

Występuje na meet-upach oraz prowadzi warsztaty z ElasticSearch.

Pierwszy kurs wydał na płytach DVD, który sprzedawał na Allegro będąc studentem.

Z czego składa się kurs

Oto co otrzymasz w ramach kursu?

👉 Obszerny 9 tygodniowy program, w którym krok po kroku, przeprowadzę Cię przez proces tworzenia wyszukiwarki opartej o ElasticSearch.

👉 Pokażę Ci jak napisać wyszukiwarkę sklepu internetowego w PHP z wykorzystaniem Symfony oraz ElasticSearch.

👉 Dowiesz się jak uruchomić oraz skonfigurować środowisko do pracy na własnym komputerze. Tym samym nie będziesz potrzebował żadnych serwerów, aby pisać i testować własne rozwiązania oparte o ElasticSearch.

👉 Omówię specyficzne problemy z jakimi można się spotkać podczas pracy z ElasticSearch.

👉 Przyjżymy się najczęściej wykorzystywanym pluginom.

👉 Dostęp do zamkniętej grupy na Facebooku w której będziemy rozwiązywać problemy kursantów.

TYLKO W PIERWSZEJ EDYCJI VIP ZMNIEJSZAMY
CENĘ DO 397 PLN !!!

Spis treści

Co znajdziesz
w kursie?

Kurs trwa dziewięć tygodni,
gdzie codziennie będziemy uczyć się nowych rzeczy.

Tydzień 1
---------------------
  • Wprowadzenie do kursu

  • Czym jest ElasticSearch oraz Elastic Stack ?

    Nie wiesz czym jest ElasticSearch, ELK czy Elastic Stack ? Nie martw się, w tym dniu rozwiejemy wszelkie wątpliwości.

  • Instalacja ElasticSearch na Windows / Mac / Linux

    Przejdziemy przez różne metody instalacji i pracy z ElasticSearch. Od preferowanego systemu, jakim jest Linux, przez wykorzystanie Dockera i Vagranta na Windows i Mac.

  • Wprowadzenie do narzędzi deweloperskich w Kibanie

    Naszym podstawowym narzędziem pracy w kurcie będzie Kibana ze swoimi narzędziami deweloperskimi. Zobaczymy jak z nich korzystać i jak mogą nam ułatwić pracę.

  • Kilka słów o architekturze, czyli czym jest Cluster, Node, Shard

    ElasticSearch jest rozwiązaniem, które bardzo dobrze się skaluje. Uzyskano to dzięki odpowiedniej architekturze, o której nieco sobie porozmawiamy.

  • Pierwszy indeks

    Czas zacząć pracę i utworzyć pierwszy indeks. Przekonacie się, jak prosto wygląda tworzenie indeksu oraz jakie mamy ograniczenia w późniejszych operacjach na indeksie. Dodatkowo zobaczymy jak łatwo można usunąć indeks oraz ustawić aliasy pod którymi będzie dostępny.

  • Typy w indeksie

    Pomimo że typy powoli są wycofywane z ElasticSearch. Nadal możecie się z nimi spotkać w starszych wersjach. Opowiem wam jak błędne myślenie o typach, może doprowadzić do problemów z ich obsługą. Co poniekąd przełożyło się na ich wycofanie.

Tydzień 2
---------------------
  • Dodawanie dokumentów do indeksu

    Proces dodawania dokumentów do indeksu jest najważniejszym elementem silnika ElasticSearch. Gdyż od tego procesu zależy czy użytkownicy będą w stanie wyszukać informacje, które ich interesują.

  • Mapping, definiowanie struktury dokumentu

    Pomimo że ElasticSearch nie wymaga od nas definiowania struktury dokumentu w odróżnieniu od standardowych baz danych. To zobaczymy jak to robić i czy powinniśmy to robić ?

  • Character filters

    Przyjrzymy się pierwszemu etapowi, jakim jest przepuszczenie surowych danych przez filtry.

  • Tokenizer

    Tokenizacja jest drugim etapem, jakim są poddawane dane dodawane do indeksu. Od dobrania odpowiedniego tokenizera zależy jakie tokeny zostaną stworzone.

  • Filters

    Ostatni etap dodawania danych do indeksu, czyli nałożenie filtrów na utworzone tokeny.

  • Analizery

    Trzyetapowy proces dodawania danych do indeksu jest oparty o analizery. Przyjrzymy się czym są i jakie analizery są udostępniane wraz z silnikiem wyszukiwania.

  • Własne analizery

    Gdy wbudowane analizery nie są dla nas wystarczające, mamy możliwość stworzenia własnego analizera. W tej lekcji dowiemy się jak to zrobić i używać różnych analizerów dla różnych pól w dokumencie.

Tydzień 3
  • Dokumenty typu object i nested

    Poza standardowymi typami pól w dokumentach, mamy kilka specjalnych typów. Jednym z takich typów jest typ object oraz jego rozwinięcie czyli nested. Typ object pozwala przechowywać w polu obiektów JSON-a, a nested tablicę takich obiektów.

  • Multi-fields, czyli różne sposoby analiza danych dla jednego pola

    Multi-fields daje nam możliwość dla jednego pola podłączenia różnych analizerów. Co w rezultacie umożliwia nam przygotowanie danych w różny sposób w ramach jednego pola.

  • Relacja rodzic - dziecko pomiędzy dokumentami

    ElasticSearch nie jest bazą relacyjną i z założenia nie przechowuje relacji pomiędzy dokumentami. Jednak udostępnia mechanizm, który może w pewnym stopniu odtworzyć relacje. Pytanie tylko czy warto skorzystać z takiej możliwości ?

  • Aktualizacja dokumentów

    Kiedy mamy już dane w indeksie to zapewne w którymś momencie będziemy chcieli je zaktualizować. I tu może zaciekawić Cię fakt, że ElasticSearch nie aktualizuje dokumentu, a usuwa go i dodaje ponownie.

  • Usuwanie dokumentów

    Dokumenty z indeksu jest bardzo proste, wystarczy znać ich identyfikator. Jednak możemy pokusić się o usunięcie całego zbioru dokumentów na podstawie określonych kryteriów.

  • Jednoczesne operacje na wielu dokumentach

    W przypadku, gdy chcemy wykonać jakąkolwiek operację na większym zbiorze dokumentów. To może się okazać, że operacje na pojedynczych dokumentach nie są najwydajniejsze. Dla takich przypadków ElasticSearch dostarcza mechanizmy wykonywania jednoczesnych operacji na wielu dokumentach.

  • Reindeksacja danych

    W pewnym momencie może zajść potrzeba przeniesienia danych pomiędzy indeksami. W takich przypadkach możemy posłużyć się opcją reindex.

Tydzień 4
  • Wstęp do wyszukiwania fraz

    ElasticSearch jest kojarzony głównie jako wyszukiwarka pełnotekstowa. Jednak nie jest to jedyny sposób wyszukiwania. Na początek przyjrzymy się klasycznym sposobom wyszukiwania.

  • Przeszukiwanie określonego pola - Term

    Najprostszą metodą wyszukiwania jest wyszukiwanie określonej frazy w określonym polu. Pomimo prostoty tego rozwiązania przekonasz się jak łatwo ulec starym schematom i popełnić błąd.

  • Wyszukiwanie wielu fraz - Terms

    Ten rodzaj wyszukiwania jest naturalnym rozwinięciem poprzedniego. I pozwala wyszukiwać wiele fraz w określonym polu.

  • Przeszukiwanie zakresów - Range

    Poza prostym dopasowaniem fraz do określonego pola. Możliwe jest także przeszukiwanie pól pod kątem mieszczenia się w danym zakresie. A zakresem mogą być liczby czy daty w różnym formatowaniu oraz strefach czasowych.

  • Przeszukiwanie początkowej frazy - Prefix

    Sposób wyszukiwania przydatny przy implementacji auto uzupełniania czy podpowiedzi dla użytkownika. W tym przypadku wystarczy, że mamy początek frazy zgodny z tokenami, a silnik znajdzie nam odpowiednie dokumenty.

  • Przeszukiwanie Wildcard / RegExp

    Nietypowymi rodzajami wyszukiwania jest przeszukiwanie Wildcard. Jest ono prostszą wersją wyszukiwania na podstawie wyrażenia regularnego, które także jest dostępne.

  • Przeszukiwanie z uwzględnieniem literówek - Fuzzy

    Naturalną rzeczą jest popełnianie literówek przez użytkowników wyszukiwarki. Poza standardowym mechanizmem podpowiedzi możemy użyć mechanizmu fuzzingu. Pozwala on na eliminację tego problemu w naszej wyszukiwarce.

Tydzień 5
  • Wstęp do wyszukiwania pełnotekstowego

    W przypadku wyszukiwania pełnotekstowego musimy poznać proces, który zachodzi przed samym procesem wyszukiwania. Gdyż tak samo, jak w przypadku dodawania dokumentów wyszukiwany tekst jest filtrowany tokenizowany i ponownie filtrowany.

  • Przeszukiwanie określonego pola - Match

    Zaczynamy od najprostszego sposobu wyszukiwania, czyli szukamy określonego testu w określonym polu.

  • Przeszukiwanie wielu pól - Milti match

    Naturalne rozwinięcie wyszukiwania Match. Czyli wyszukiwanie po kilku polach, przy czym dzięki dodatkowym parametrom. Mamy możliwość traktowania kilku pól jak jednego czy też określania procentowo poziomu trafności w stosunku do wpisanej frazy.

  • Wyszukiwanie fraz - Match Phrase

    Gdy wyszukiwanie pojedynczych słów to za mało i chcemy wyszukać określoną frazę.

  • Wyszukiwanie fraz z prefiksem - Match Phrase Prefix

    Rozwinięcie wyszukiwania Match Phrase poprzez dodanie prefiksu. Czyli poza określoną frazą ostatnie słowo jest początkiem jakiegoś tokenu.

  • Wyszukiwarka dla zaawansowanych - Query String

    Zaawansowane wyszukiwarki pokroju Google posiadają mechanizmy dla zaawansowanych użytkowników. Dzięki znajomości tych mechanizmów jesteśmy w stanie powiedzieć, że dane słowa muszą wystąpić w dokumencie czy też wykluczyć jakieś słowo. Takie właśnie dostarcza nam wyszukiwanie typu Query String.

  • Prostsza wersja wyszukiwarki dla zaawansowanych - Simple Query String

    W związku z pewnymi komplikacjami w obsłudze zapytań Query String zostało dodane prostsze wyszukiwanie o bardzo zbliżonych możliwościach.

Tydzień 6
  • Łączenie różnych metod wyszukiwania

    Poznaliśmy różne metody wyszukiwania fraz oraz wyszukiwania pełnotekstowego. Czasem zachodzi potrzeba połączenia kilku metod wyszukiwania, aby uzyskać zadowalający wynik. Przyjrzymy się jak możemy to osiągnąć za pomocą Bool Query.

  • Wyszukiwanie w różnych językach

    Wyszukiwarka ElasticSearch wspiera wiele języków, dzięki czemu ich obsługa staje się bardzo łatwa. Zobaczymy jakie języki są dostępne od ręki, a dla jakich będziemy musieli dodać obsługę sami.

  • Dodanie obsługi języka polskiego

    W związku z barkiem obsługi naszego rodzimego języka przez wyszukiwarkę. Będziemy musieli zapewnić sobie obsługę sami. Zobaczymy jak to zrobić wykorzystując różne pluginy oraz słowniki.

  • Synonimy i stopwordsy

    Obsługa synonimów przydaje się, gdy tworzymy wyszukiwarki dla klientów sklepów czy osób przeszukujących zbiory tekstowe. Podobne zastosowanie ma eliminacja zbędnych słów z tych tekstów tzw. stopwords-ów.

  • Czym jest _score i jak możemy zmieniać kolejność dokumentów

    Lista dokumentów zwracanych przez ElasticSearch jest posortowana na podstawie pola _score. Jest to pole określające poziom trafności dla danego dokumentu w ramach danego wyszukiwania. Możemy zmienić domyślne zachowanie ElasticSearch-a i posortować dokumenty na podstawie innego pola.

  • Wpływanie na _score poprzez określanie ważności pól - Boosting

    Pole _score jest wyliczane dynamicznie, a na jego wartość wpływa bardzo dużo czynników. O czym się przekonamy dodając parametr explain w zapytaniach wyszukujących. Co ważniejsze możemy w dość prosty sposób wpływać na wartość tego wyniku poprzez ustawienie poziomów ważności dla danych pól w dokumentach.

  • Wpływanie na _score poprzez pisanie własnych funkcji - Function Score

    Gdyby określanie poziomów ważności pól nie było wystarczające to mamy możliwość napisania własnych funkcji przeliczających wartość _score. Zobaczymy jak to zrobić i jak wpływa na wydajność wyszukiwania.

Tydzień 7
  • Wprowadzenie do agregacji danych

    ElasticSearch nie jest jedynie silnikiem wyszukiwania pełnotekstowego. Jest także bardzo dobrą bazą danych z rozbudowanymi metodami agregacji.

  • Bucket Aggregations

    Najprostszy sposób agregacji polegający na grupowaniu wyników wyszukiwania w zbiory. Sposób ten dostarcza jedynie ilości dokumentów w zbiorach bez dodatkowych danych.

  • Metrics Aggregations

    Agregacja z uwzględnieniem metryk daje nam możliwość określenia sumy, wartości maksymalnej czy minimalnej oraz wielu innych metryk.

  • Łączenie agregacji Bucket oraz Metrics

    Dzięki możliwości połączenia agregacji typu Bucket z agregacjami metrycznymi. Jesteśmy w stanie bardzo fajnie grupować dokumenty w zbiory i wyciągać z nich dane metryczne.

  • Pipeline Aggregations

    Ostatni rodzaj agregacji, który jest dość specyficzny. Pozwala na podstawie wyników jednej agregacji przygotowywać kolejne agregacje. Tworząc dowolny poziom zagłębienia takich agregacji.

  • Dodawanie agregacji do wyszukiwania

    Agregacje mogą istnieć jako samodzielne zapytania. Jednak czy nie przydatną opcją byłoby dołączenie ich do rezultatów wyszukiwania?

  • Pozostałe informacje o agregacjach

    Na koniec naszej przygody z agregacją danych. Zobaczymy jak takie agregacje są przechowywane w pamięci, czy możemy otrzymać tylko wynik oraz, czy możemy dodać jakieś dane do zwracanego wyniku.

Tydzień 8
  • Wprowadzenie do SQL-a

    SQL to standard w relacyjnych bazach danych. Więc może nieco dziwić, że pojawia się w nierelacyjnej bazie danych. Przekonajmy się, czy da się tego rozwiązania używać zamiast standardowych zapytań opartych o JSON-a.

  • SQL przez REST API

    Wykorzystujemy SQL-a przez standardowe API REST-owe ElasticSearch-a.

  • SQL z linii komend - CLI

    Dzięki dostarczeniu klienta konsolowego, zapytania SQL możemy wysyłać bezpośrednio z konsoli.

  • Aplikacje zewnętrzne wykorzystujące SQL-a oraz JDBC / ODBC

    Poza konsolą oraz REST-owym API mamy możliwość skorzystania z JDBC oraz ODBC. Tym samym mamy możliwość podłączenia się do bazy z poziomu np. Excel-a.

  • Dostępne funkcje w SQL-u

    W związku z tym, że możemy traktować obsługę SQL-a przez ElasticSearch-a jako nowy dialekt. To nie znajdziemy tam wszystkich funkcji. Przyjrzymy się co na ten moment zostało nam udostępnione.

  • Agregacja danych z wykorzystaniem SQL-a

    Sposoby agregacji danych już znamy. Czas skonfrontować je z agregacją dostępną za pomocą SQL-a.

  • Ograniczenia SQL-a

    W związku z tym, że dla ElasticSearch-a SQL nie jest standardowym sposobem przeszukiwania. Pojawiają się pewne ograniczenia w użyciu tego rozwiązania. Przekonajmy się, jakie i czy w związku z tym warto korzystać z SQL-a.

Tydzień 9
  • Zabezpieczenie przed nieautoryzowanym dostępem

    W podstawowej wersji ElasticSearch niestety nie udostępnia nam żadnego mechanizmu zabezpieczającego. Co było już przyczyną wielu wycieków danych użytkowników. W tej lekcji dowiesz się jak uchronić się przed takimi sytuacjami.

  • Zabezpieczamy dostęp do ElasticSearch wykorzystując X-Pack

    X-Pack, to rozwiązanie dostarczane przez twórców ElasticSearch. Pozwala ono na zabezpieczenie naszej instalacji przed nieautoryzowanym dostępem. Niestety nie ma żadnej wersji bezpłatnej. Jednak możemy skorzystać z wersji trial i przetestować jego możliwości.

  • Alternatywa dla X-Pack czyli Search Guard

    X-Pack jest świetnym rozwiązaniem, ale co gdy nasze wymagania są minimalne i nie chcemy płacić majątku za rozbudowane rozwiązanie ? Z pomocą przychodzi Search Guard, który ma darmową wersję !

  • Kibana

    Do tej pory korzystaliśmy jedynie z narzędzi deweloperskich Kibany. A możliwości tego narzędzia są dużo większe. I pozwalają na indywidualne spersonalizowanie ich pod siebie poprzez tworzenie widoków.

  • Logstash

    Przetwarzacie duże zbiory logów lub chcecie zasilać indeksy z innych źródeł danych bez konieczności pisania aplikacji. To rozwiązanie jest właśnie dla was, przyjrzymy się jak w prosty sposób importować logi oraz dane z baz danych.

  • Beats

    Rozwiązanie to jest pewną alternatywą dla Logstash-a. Dostarcza bowiem wiele rozwiązań pracujących na logach czy innych źródłach danych. Bez konieczności znajomości sposobu konfiguracji poszczególnych elementów. Wszystko za nas robi Beats.

  • Co dalej ?

    Nasza przygoda z silnikiem ElasticSearch dobiegła końca. W lekcji tej postaram się pokazać, gdzie warto zaglądać i zdobywać nowe informacje o tym silniku wyszukiwania. Gdyż rozwiązanie to rozwija się bardzo dynamicznie i warto śledzić nowinki, jakie się pojawiają w kolejnych wersjach.

Czy ten kurs jest
dla Ciebie?

Dla kogo jest ten kurs?

jesteś deweloperem i chcesz poznać nową technologię

potrzebujesz bardzo dobrej wyszukiwarki i jesteś w stanie poświęcić czas, aby się jej nauczyć

masz bardzo duże zbiory danych i obecna baza danych nie radzi sobie z ich przeszukiwaniem

Dla kogo nie jest ten kurs?

znasz już podstawy ElasticSearch i potrafisz go używać

nie potrzebujesz dobrej wyszukiwarki, wystarcza Ci obecna wyszukiwarka

nie masz czasu na naukę nowej technologii

Gwarancja satysfakcji

A co jeśli będę
niezadowolony?

30-dniowa gwarancja zwrotu pieniędzy

Ostatnią rzeczą, jaką bym sobie rzyczył to niezadowolenie z udziału w kursie.

W kurs włożyłem całe swoje serce oraz umiejętności, dlatego oferuję 30-dniową gwarancję!

F.A.Q.

Najczęściej
zadawane pytania

Jak długo będę miał dostęp do kursu?

Dostęp do kursu i jego aktualizacji nie ma ograniczeń czasowych.

Tak długo jak mój blog będzie istniał, tak długo wszystkie kursy będą dostępne dla kursantów.

Czy otrzymam fakturę VAT?

Tak, oczywiście. A jeśli prowadzisz działalność gospodarczą to zakup kursu możesz wpisać w koszty dzięki czemu będzie on dla Ciebie dużo tańszy.

Jaką formę ma kurs?

Sam kurs jest w formie video. Dodatkowo do każdej lekcji znajdziesz notatki oraz ćwiczenia, które pozwolą Ci zrozumieć lepiej dane zagadnienie.

Czy kurs mogę zgrać sobie na komputer?

Nie, kurs jest dostępny jedynie poprzez platformę kursową. Natomiast wszelkie dokumenty PDF udostępniane w ramach lekcji możesz zapisać i swobodnie z nich korzystać.

Czy od razu dostaję dostęp do całego kursu?

Nie, poczszególne tygodnie są udostępniane stopniowo co pozwoli Ci na spokojnie przejść przez każdy tydzień. Dodatkowo w specjalnej grupie na Facebooku będziemy rozwiązywać pojawiające się problemy i wątpliwości w ramach danego tygodnia.

W jaki sposób otrzymam dostęp?

Gdy tylko opłacisz kurs otrzymasz dostęp do pierwszego tygodnia kursu. Dane do logowania prześlę Ci mailem, który jest wymagany przy składaniu zamówienia.

Co jeśli kurs mi się nie spodoba?

Oczywiście może się okazać, że kurs Ci się nie spodobał. I wierzę że jesteś osobą uczciwą dlatego w takim przypadku napisz proszę do mnie maila, a zwrócę Ci pieniądze.

A jako że bardzo zależy mi na tym by kurs dostarczył jak najwięcej wartości, to proszę napisz także co spowodowało że kurs nie spełnił Twoich oczekiwań.

Czy ilość miejsc jest ograniczona?

Nie, ilość miejsc nie jest ograniczona. Jedynie ograniczony jest czas zakupu, kurs jest sprzedawany jedynie przez 7 dni po czym możliwość zakupu jest wyłączana.