W tym krótkim samouczku przyjrzymy się Elasticsearch, a konkretnie temu, jak tworzyć indeksy w silniku Elasticsearch. Chociaż nie potrzebujesz żadnej kompleksowej wiedzy na temat stosu ELK, aby śledzić ten samouczek, podstawowe zrozumienie następujących tematów może być korzystne:
- Korzystając z terminala, a konkretnie cURL
- Podstawowa znajomość API i JSON
- Wykonywanie żądania HTTP
UWAGA: Ten samouczek zakłada również, że masz zainstalowany i uruchomiony Elasticsearch w swoim systemie.
Czym są indeksy Elasticsearch??
Bez nadmiernego upraszczania lub nadmiernego komplikowania, indeks Elasticsearch jest zbiorem powiązanych dokumentów JSON.
Jak wspomniano w poprzednim poście, indeksy Elasticsearch są obiektami JSON uważanymi za podstawową jednostkę pamięci w Elasticsearch. Te powiązane dokumenty JSON są przechowywane w jednej jednostce, która tworzy indeks. Pomyśl o dokumentach Elasticsearch jak o tabelach w relacyjnej bazie danych.
Powiążmy indeks Elasticsearch jako bazę danych w świecie SQL.
- MySQL => Bazy danych => Tabele => Kolumny/Wiersze
- Elasticsearch => Indeksy => Typy => Dokumenty JSON z właściwościami
Jak stworzyć indeks Elasticsearch
Elasticsearch wykorzystuje potężne i intuicyjne API REST do eksponowania swoich usług. Ta funkcjonalność pozwala na użycie żądań HTTP do wykonywania operacji na klastrze Elasticsearch. Dlatego użyjemy interfejsu API tworzenia indeksów, aby utworzyć nowy indeks.
W tym przewodniku użyjemy cURL do wysyłania żądań i zachowania integralności i użyteczności dla wszystkich użytkowników. Jeśli jednak napotkasz błędy z cURL, rozważ użycie Kibana Console.
Składnia tworzenia nowego indeksu w klastrze Elasticsearch to:
POŁOŻYĆ /Aby utworzyć indeks, wystarczy podać nazwę indeksu bez innych parametrów, co spowoduje utworzenie indeksu z domyślnymi ustawieniami.
Możesz również określić różne funkcje indeksu, takie jak w treści indeksu:
- Ustawienia indeksu
- Aliasy indeksowe
- Mapowania dla pól indeksowych
Nazwa indeksu jest wymaganym parametrem; w przeciwnym razie otrzymasz błąd dla adresu URIL (/)
curl -X PUT „localhost:9200”"error":"Nieprawidłowa metoda HTTP dla uri [/] i metody [PUT], dozwolone: [DELETE, HEAD, GET]","status":405
Aby utworzyć nowy indeks o nazwie single_index, przekazujemy żądanie:
PUT /pojedynczy_indeksDla cURL użyj polecenia:
curl -X PUT "localhost:9200/single_index?ładny"Polecenie to powinno skutkować komunikatem HTTP Status 200 OK i komunikatem Confirmed: true jako:
„potwierdzony”: prawda,
"odłamki_potwierdzone" : prawda,
"indeks" : "pojedynczy_indeks"
Powyższe żądanie tworzy indeks single_index z ustawieniami domyślnymi, ponieważ nie określiliśmy żadnych konfiguracji.
Zasady nazewnictwa indeksów
Tworząc nazwy dla indeksów Elasticsearch, należy przestrzegać następujących standardów nazewnictwa:
- Nazwa indeksu musi być pisana małymi literami.
- Nazwy indeksów nie mogą zaczynać się od myślnika (-), podkreślenia (_) ani znaku dodawania (+)
- Nazwy nie mogą być cannot . lub…
- Nazwy indeksów nie mogą zawierać znaków specjalnych, takich jak: \, /, *, ?, “, <, >, |,"(spacja), ,, #
- Długość nazw indeksów musi być mniejsza niż 255 bajtów. Znaki wielobajtowe będą liczone w całkowitej długości nazwy indeksu. Na przykład, jeśli pojedynczy znak ma długość 8 bajtów, całkowita pozostała długość nazwy wynosi 255 - 8
- W najnowszej wersji Elasticsearch nazwy zaczynające się od . są zarezerwowane dla indeksów ukrytych i indeksów wewnętrznych używanych przez wtyczki Elasticsearch.
Jak stworzyć ciało indeksujące?
Używając żądania PUT do utworzenia indeksu, możesz przekazać różne argumenty, które definiują ustawienia indeksu, który chcesz utworzyć. Wartości, które możesz podać w treści, to:
- Skróty: Określa aliasy dla indeksu, który chcesz utworzyć; ten parametr jest opcjonalny.
- Ustawienia: Definiuje to opcje konfiguracyjne dla indeksu, który chcesz utworzyć. Jeśli nie określisz żadnych parametrów, indeks zostanie utworzony przy użyciu domyślnych konfiguracji.
- Mapowania: To definiuje mapowanie dla pól w indeksie. Specyfikacje, które można uwzględnić w mapowaniach, obejmują:
- Nazwa pola
- Typ danych
- Parametr mapowania
Aby zapoznać się z przykładem tworzenia indeksu z konfiguracjami treści, rozważ poniższe żądanie:
PUT /single_index_with_body"ustawienia":
„liczba_odłamków”: 2,
„liczba_replik”: 2
,
„odwzorowania”:
"nieruchomości":
"field1": "type": "object"
Dla żądania równoważnego cURL:
curl -XPUT "http://localhost:9200/single_index_with_body" -H 'Content-Type: application/json' -d' "settings": "number_of_shards": 2, "number_of_replicas": 2 , "mappings" : "properties": "field1": "type": "object" 'Powyższe żądanie tworzy nowy indeks o nazwie single_index_with_body z 2 liczbami shardów i 2 replikami. Tworzy również mapowanie z polem name field1 i wpisuje jako obiekt JSON.
Po wysłaniu wniosku otrzymasz odpowiedź ze statusem wniosku jako:
„potwierdzony”: prawda,
"odłamki_potwierdzone" : prawda,
"indeks" : "pojedynczy_indeks_z_body"
„Acknowledged” pokazuje, czy indeks został pomyślnie utworzony w klastrze, podczas gdy „shards_acknowledged” pokazuje, czy wymagana liczba kopii fragmentów została uruchomiona dla każdego fragmentu w określonym indeksie przed upływem limitu czasu.
Jak wyświetlić indeks Elasticsearch
Aby wyświetlić informacje o utworzonym indeksie, użyj podobnego żądania do tworzenia indeksu, ale użyj metody HTTP zamiast PUT jako:
POBIERZ /single_index_with_bodyDla cURL,
curl -XGET „http://localhost:9200/single_index_with_body”To polecenie daje szczegółowe informacje o żądanym indeksie jako:
"single_index_with_body" :
"skróty" : ,
"mapowania" :
"nieruchomości" :
"pole1" :
"typ" : "obiekt"
,
"ustawienia" :
"indeks" :
"wytyczanie" :
"przydział" :
"zawierać" :
"_tier_preference" : "zawartość_danych"
,
"liczba_odłamków" : "2",
"provided_name" : "single_index_with_body",
"data_utworzenia" : "1611045687208",
"liczba_replik" : "2",
„uuid” : „3TRkO7xmQcSUOOGtb6pXVA”,
"wersja" :
„utworzono” : „7100299”
Wniosek
W tym przewodniku omówiono, jak pracować z Elasticsearch przy tworzeniu interfejsu API indeksów w celu tworzenia nowych indeksów. Dyskutowaliśmy również o tym, jak stworzyć odpowiednie nazwy dla indeksów i ustawień konfiguracyjnych.
Korzystając z tego przewodnika, możesz teraz tworzyć i przeglądać indeksy za pomocą API Elasticsearch.