Samouczek Elasticsearch dla początkujących

Samouczek Elasticsearch dla początkujących
W tej lekcji zobaczymy, w jaki sposób możemy korzystać. Dokładnie przyjrzymy się różnym związanym z nim terminologii i zaczniemy również z nim pracować.

Baza danych ElasticSearch

ElasticSearch to jedna z najpopularniejszych baz danych NoSQL, która służy do przechowywania i wyszukiwania danych tekstowych. Opiera się na technologii indeksowania Lucene i pozwala na wyszukiwanie wyszukiwania w milisekundach na podstawie indeksowanych danych.

Na podstawie strony ElasticSearch, oto definicja:

ElasticSearch to silnik open source, wyposażony w wyszukiwarkę i analiza zdolna do rozwiązywania rosnącej liczby przypadków użycia.

To były kilka słów na wysokim poziomie na temat elasticsearch. Pozwól nam szczegółowo zrozumieć pojęcia.

  • Rozpowszechniane: ElasticSech dzieli dane, które zawiera na wiele węzłów i używa Mistrz-niewolnik Algorytm wewnętrznie
  • Spokojny: ElasticSearch obsługuje zapytania bazy danych za pośrednictwem interfejsów API REST. Oznacza to, że możemy użyć prostych połączeń HTTP i użyć metod HTTP, takich jak Get, Post, Put, Delete itp. Aby uzyskać dostęp do danych.
  • Wyszukiwanie i analizy silnik: ES obsługuje wysoce analityczne zapytania do uruchomienia w systemie, które mogą składać się z zapytań agresywnych i wielu typów, takich jak zapytale strukturalne, nieustrukturyzowane i geo.
  • Poziomo salalny: Ten rodzaj sankcjonowania odnosi się do dodania większej liczby maszyn do istniejącego klastra. Oznacza to, że ES jest w stanie zaakceptować więcej węzłów w swoim klastrze i nie zapewniać wymaganych aktualizacji systemu. Spójrz na poniższy obraz, aby zrozumieć koncepcje skalowania:
  • Pionowe i poziome sanka

Pierwsze kroki z bazą danych ElasticSearch

Aby rozpocząć korzystanie z ElasticSearch, należy go zainstalować na komputerze. Aby to zrobić, przeczytaj instalację elasticsearch na Ubuntu.

Upewnij się, że masz aktywną instalację ElasticSearch, jeśli chcesz wypróbować przykłady, które przedstawiamy później na lekcji.

Elasticsearch: koncepcje i komponenty

W tej sekcji zobaczymy, jakie elementy i pojęcia leży w sercu Elasticsearch. Zrozumienie tych pojęć jest ważne, aby zrozumieć, jak działa ES:

  • Grupa: Klaster to zbiór maszyn serwerowych (węzłów), który zawiera dane. Dane są podzielone między wiele węzłów, aby można je było powtórzyć, a pojedynczy punkt awarii (SPOF) nie zdarza się z serwerem ES. Domyślna nazwa klastra jest ElasticSearch. Każdy węzeł w klastrze łączy się z klastrem z adresem URL i nazwą klastra, więc ważne jest, aby ta nazwa była wyraźna i wyraźna.
  • Węzeł: Maszyna węzłów jest częścią serwera i jest nazywany pojedynczym komputerem. Przechowuje dane i zapewnia funkcje indeksowania i wyszukiwania wraz z innymi węzłami do klastra.

    Ze względu na koncepcję skalowania poziomego możemy wirtualnie dodać nieskończoną liczbę węzłów w klastrze ES, aby zapewnić mu znacznie większą siłę i możliwości indeksowania.

  • Indeks: Indeks to zbiór dokumentu o nieco podobnych cechach. Indeks jest prawie podobny do bazy danych w środowisku opartym na SQL.
  • Typ: Typ służy do oddzielenia danych między tym samym indeksem. Na przykład baza danych/indeks klientów może mieć wiele typów, takich jak użytkownik, Payment_Type itp.

    Zauważ, że typy są przestarzałe z ES V6.0.0 dalej. Przeczytaj tutaj, dlaczego to zostało zrobione.

  • Dokument: Dokument to najniższy poziom jednostki, który reprezentuje dane. Wyobraź sobie to jak obiekt JSON, który zawiera Twoje dane. Możliwe jest indeksowanie tak wielu dokumentów w indeksie.

Rodzaje wyszukiwania w ElasticSearch

ElasticSearch znane jest z możliwości wyszukiwania w czasie rzeczywistym i elastyczności, jakie zapewnia rodzaj danych indeksowanych i wyszukiwanych. Zacznijmy studiować, jak korzystać z wyszukiwania za pomocą różnych rodzajów danych.

  • Wyszukiwanie ustrukturyzowane: Ten typ wyszukiwania jest uruchamiany na danych, które mają wstępnie zdefiniowany format, taki jak daty, czasy i liczby. Z predefiniowanym formatem pojawia się elastyczność prowadzenia wspólnych operacji, takich jak porównywanie wartości w zakresie dat. co ciekawe, Dane tekstowe również mogą być ustrukturyzowane. Może się to zdarzyć, gdy pole ustalono liczbę wartości. Na przykład nazwa baz danych może być MySQL, MongoDB, ElasticSearch, Neo4J itp. W przypadku ustrukturyzowanego wyszukiwania odpowiedzią na uruchomione zapytania jest albo tak lub nie.
  • Wyszukiwanie pełnego tekstu: Ten rodzaj wyszukiwania zależy od dwóch ważnych czynników, Znaczenie I Analiza. Ze znaczeniem ustalamy, jak dobrze niektóre dane dopasowują się do zapytania, definiując wynik z wynikowymi dokumentami. Ten wynik jest dostarczany przez sam ES. Analiza odnosi się do rozbicia tekstu na znormalizowane tokeny, aby utworzyć odwrócony indeks.
  • Wyszukiwanie wielu pola: Wraz z liczbą zapytań analitycznych, które kiedykolwiek rosną na przechowywanych danych w ES, zwykle nie napotykamy prostych zapytań dopasowania. Wymagania wzrosły do ​​uruchamiania zapytań, które obejmują wiele pól i mają oceną sortowaną listę danych zwróconych nam przez samą bazę danych. W ten sposób dane mogą być obecne dla użytkownika końcowego w znacznie bardziej wydajny sposób.
  • Dopasowanie proimity: Dzisiejsze zapytania to znacznie więcej niż tylko identyfikacja, czy niektóre dane tekstowe zawierają inny ciąg, czy nie. Chodzi o ustalenie związku między danymi, aby można je było ocenić i dopasować do kontekstu, w którym dane są dopasowywane. Na przykład:
    • Piłka uderzyła Johna
    • John uderzył w piłkę
    • John kupił nową piłkę, która została uderzona Jaen Garden

    Zapytanie o dopasowanie znajdzie wszystkie trzy dokumenty po wyszukiwaniu Uderzenie piłki. Wyszukiwanie bliskości może nam powiedzieć, jak daleko te dwa słowa pojawiają się w tej samej linii lub akapicie, z czego pasowały.

  • Częściowe dopasowanie: Często musimy uruchomić częściowe zapytań. Częściowe dopasowanie pozwala nam uruchamiać zapytania, które częściowo pasują. Aby to wyobrazić, spójrzmy na podobne zapytania oparte na SQL:

    Zapytania SQL: częściowe dopasowanie

    Gdzie nazwa „%John%”
    I nazwa „%Red%”
    I nazwa „%ogrodu”

    W niektórych przypadkach musimy tylko uruchomić częściowe zapytań meczowych, nawet jeśli można je uznać za techniki siły brutalnej.

Integracja z kibaną

Jeśli chodzi o silnik analityczny, zwykle musimy uruchomić zapytania analizy w domenie inteligencji biznesowej (BI). Jeśli chodzi o analityków biznesowych lub analityków danych, nie byłoby uczciwe założyć, że ludzie znają język programowania, gdy chcą wizualizować dane obecne w ES Cluster. Ten problem jest rozwiązany przez Kibana.
Kibana oferuje tak wiele korzyści BI, że ludzie mogą faktycznie wizualizować dane o doskonałej, konfigurowalnej pulpicie nawigacyjnej i zobaczyć dane bez względu na. Spójrzmy na niektóre z jego korzyści tutaj.

Interaktywne wykresy

U podstaw kibany są takie interaktywne wykresy:

Kibana jest wspierana różnymi typami wykresów, takich jak wykresy kołowe, promieniowanie słoneczne, histogramy i wiele więcej, które wykorzystują pełne możliwości agregacji ES.

Wsparcie mapowania

Kibana obsługuje również pełną agregację geo-agregację, która pozwala nam geo-mapować nasze dane. Czy to nie jest fajne?!

Wstępnie zbudowane agregacje i filtry

Dzięki wstępnie zbudowanym agregacjom i filtrom możliwe jest dosłownie fragmenty, upuszczenie i uruchomienie wysoce zoptymalizowanych zapytań na desce rozdzielczej Kibana. Zaledwie kilkoma kliknięciami możliwe jest uruchamianie zagregowanych zapytań i przedstawienie wyników w postaci interaktywnych wykresów.

Łatwa dystrybucja pulpitów nawigacyjnych

Dzięki Kibanie bardzo łatwo jest udostępnić pulpity nawigacyjne znacznie szerszej publiczności bez żadnych zmian na desce rozdzielczej za pomocą trybu tylko pulpitu nawigacyjnego. Możemy łatwo wstawić pulpity nawigacyjne do naszych wewnętrznych wiki lub stron internetowych.

Obrazy cech wykonane formularz Strona produktu Kibana.

Korzystanie z ElasticSearch

Aby zobaczyć szczegóły instancji i informacje o klastrze, uruchom następujące polecenie:

Teraz możemy spróbować wprowadzić niektóre dane do ES za pomocą następującego polecenia:

Wstawienie danych

curl \
-X post 'http: // localhost: 9200/linuxhint/hello/1' \
-H 'Content-typ: Application /Json' \
-d '„name”: „Linuxhint”' \

Oto, co wracamy z tym poleceniem:

Spróbujmy teraz uzyskać dane:

Uzyskanie danych

curl -x get 'http: // localhost: 9200/linuxhint/hello/1'

Kiedy uruchamiamy to polecenie, otrzymujemy następujące dane wyjściowe:

Wniosek

W tej lekcji przyjrzeliśmy się, w jaki sposób możemy zacząć korzystać z ElasticSearch, który jest doskonałym silnikiem analitycznym i zapewnia doskonałe wsparcie dla wyszukiwania wolnego tekstu w czasie rzeczywistym.