Elasticsearch jest silnikiem wyszukiwania pełnotekstowego, jednak jeśli przyjrzymy się dokładniej temu rozwiązaniu. To dowiemy się, że sam Elasticsearch jest bazą danych, która do wyszukiwania wykorzystuje Apache Lucene. Ta kombinacja daje nam dostęp do potężnego narzędzia umożliwiającego przeszukiwanie, grupowanie oraz filtrowanie ogromnych zbiorów danych niemal w czasie rzeczywistym. Jeśli dodamy do tego jeszcze rozproszony model pracy oraz REST-owe API to ciężko będzie znaleźć lepsze rozwiązanie.
Marcin Lewandowski |
Krótki opis | |
---|---|---|
Wprowadzenie do Elasticsearch | Elasticsearch jest silnikiem wyszukiwania pełnotekstowego, zorientowanym na przetwarzanie dużych ilości danych. Zbudowanie inteligentnej wyszukiwarki... | |
Jak Elasticsearch analizuje dane przed dodaniem ich do indeksu | Wpis skupia się na pokazaniu w jaki sposób są analizowane dane przed dodaniem do indeksu oraz wyszukiwaniem. Zobaczymy także jakie analizery są dostępne... | |
Jak stworzyć własny analizer w ElasticSearch | W przypadku, gdy żaden z wbudowanych analizer-ów nie spełnia naszych wymagań. ElasticSearch daje nam możliwość zbudowania własnych. Jednak jeśli mamy już stworzony indeks to dodanie nowego analizer-a wymaga odrobiny gimnastyki. Mianowicie konieczne jest zamknięcie indeksu: Po czym dodajemy nowy analizer lub modyfikujemy istniejący. Gdy zakończymy prace to otwieramy indeks: W poniższych przykładach pominę ten proces […] | |
Mapping dokumentów w ElasticSearch | Jeśli mieliście kontakt z relacyjnymi bazami danych (MySQL, MSSQL, PostgreSQL) to przyzwyczaiły was one do definiowania schematów bazy danych. W takim schemacie bazę dzielimy na tabele, tabele na kolumny, którym z kolei przypisujemy określony typy danych. Odpowiednikiem tego podejścia jest mapping w ElasticSearch, jednak pozwala on na znacznie więcej niż tylko zdefiniowanie struktury i typów. […] | |
Wprowadzenie do agregacji danych w ElasticSearch | Oprócz zaawansowanego wyszukiwanie pełnotekstowego w ElasticSearch mamy także możliwość grupowania i zliczania dokumentów. Co ważne operacje zliczania mogą być wykonywane równolegle z operacjami przeszukiwania indeksu. Dzięki czemu możemy zmniejszyć ilość zapytań do wyszukiwarki. Projekt indeksu Jeśli myślimy na poważnie o wykorzystaniu możliwości agregowania danych przez ElasticSearch to powinniśmy już na poziomie projektowania indeksu wziąć pod […] | |
Sposoby wyszukiwania w ElasticSearch | W pierwszym wpisie tej serii opisałem jak konstruować proste zapytania wyszukujące. Był to zaledwie przedsmak tego co można zrobić w ElasticSearch. Tym razem poszerzymy wiedzę o najczęściej wykorzystywane sposoby wyszukiwania oraz zobaczymy jakie problemy poszczególne sposoby rozwiązują. Trochę teorii… Zanim zajmiemy się samym wyszukiwaniem i możliwościami jakie daje ElasticSearch, warto liznąć co nieco teorii. Jednak, […] | |
Obsługa języków w ElasticSearch | Tworząc wyszukiwarkę o wysokim poziomie trafności, musimy wziąć pod uwagę obsługę języka. A jak wiemy nasz język do najłatwiejszych nie należy. Sam silnik wyszukiwania także nie wspiera naszego języka, ale pokażę Ci jak pomimo tych przeszkód poradzić sobie z obsługą języka polskiego. Obsługa języka polskiego w ElasticSearch Niestety pomimo tego, że ElasticSearch wspiera wiele języków: […] | |
Migracja serwera ElasticSearch na nowszą wersję z wykorzystaniem _reindex | ElasticSearch rozwija się bardzo dynamicznie w związku z czym możemy zaobserwować dość częste wydawanie nowej wersje silnika. I pojawia się pytanie, czy aktualizować ? Osobiście chętnie aktualizuję, czy to ElasticSearch-a, czy też frameworki na których pracuję. Wyznaję przy tym kilka zasad, jedna z nich to stabilność działania. Dlatego w tym wpisie pokażę, jak w prosty […] |
Piotr Prądzyński / prondzyn |
Krótki opis | |
---|---|---|
Uczymy się Elasticsearch #001: instalacja, uruchomienie i pierwsze zapytanie | Początek cyklu artykułów, dzięki którym dowiesz się jak zbudować przyjazną dla użytkownika wyszukiwarkę wszystkiego. | |
Uczymy się Elasticsearch #002: kilka słów na temat Elastic Stack | Drugi z serii artykułów wprowadzających w świat silnika wyszukiwania Elasticsearch. Dziś poznajemy Elastic Stack. | |
Uczymy się Elasticsearch #003: przydatne narzędzia | Zanim przystąpimy do właściwej zabawy z Elasticsearchem dowiedzmy się jakich zabawek będziemy używać. Zapraszam do zapoznania się z kilkoma przydatnymi narzędziami. | |
Uczymy się Elasticsearch #004: indeks odwrócony Apache Lucene | W tej części cyklu dowiesz się jak wygląda struktura indeksu odwróconego budowanego przez bibliotekę Apache Lucene i do czego może przydać Ci się ta wiedza. | |
Uczymy się Elasticsearch #006: trafność | Ten wpis pokaże Ci w jaki sposób Elasticsearch określa trafność (ang. relevance) poszczególnych wyników wyszukiwania. | |
Uczymy się Elasticsearch #007: przygotowanie tekstu do optymalnego wyszukiwania | Niniejszy wpis pokaże Ci z jakich elementów Elasticsearcha skorzystać, aby otrzymać jak najbardziej zamierzone wyniki wyszukiwania. | |
Uczymy się Elasticsearch #008: coś poszło nie tak, czyli seria moich fackupów | Artykuł podsumowujący wszystkie błędy jakie do tej pory popełniłem dostrajając zapytania i testując możliwości Elasticsearcha. | |
Uczymy się Elasticsearch #009: zaczarowany zakreślacz | Zastanawiasz się jak pokazać użytkownikom dlaczego konkretny rezultat znalazł się w wynikach wyszukiwania? Elasticsearch ma dla Ciebie gotowe rozwiązanie. | |
Uczymy się Elasticsearch #010: o co jeszcze możemy zapytać? | Wyszukiwanie pełnotekstowe to nie wszystko. Czasami potrzebne jest również precyzyjne filtrowanie. Sprawdź jak Elasticsearch się do tego przygotował. | |
Uczymy się Elasticsearch #014: przegląd klientów języka Java | Chcesz połączyć się z Elasticsearchem z projektu Javowego? Sprawdź jakie masz możliwości i dowiedz się, z której najlepiej skorzystać. | |
Uczymy się Elasticsearch #015: synonimy w wynikach wyszukiwania | Kilka słów o tym, jak wykorzystanie synonimów w Elasticsearchu może poprawić wyniki wyszukiwania naszych użytkowników. | |
Uczymy się Elasticsearch #016: synonimy w wynikach wyszukiwania (dogrywka) | Ciekawy przypadek użycia synonimów, w którym poznany wcześniej Synonym Token Filter nie zadziała tak jak byśmy się tego spodziewali. | |
Uczymy się Elasticsearch #017: wyszukiwanie podczas pisania | Zobacz zbiór materiałów, z których możesz skorzystać do implementacji funkcjonalności "search-as-you-type" w swojej wyszukiwarce. | |
Uczymy się Elasticsearch #018: narzędzia do budowy UI | Poznaj rozwiązania dostarczające gotowe komponenty do budowy UI dla danych z Elasticsearcha. |