Elastyczne wyszukiwanie

Elasticsearch ponownie indeksuje wszystkie indeksy i sprawdza status

Elasticsearch ponownie indeksuje wszystkie indeksy i sprawdza status
Podczas pracy z bazami danych nieuchronnie będziesz musiał wprowadzić zmiany, takie jak dodawanie, usuwanie i modyfikowanie danych.

Kiedy modyfikujesz dane w indeksie Elasticsearch, może to prowadzić do przestoju, gdy funkcjonalność zostanie ukończona, a dane zostaną ponownie zindeksowane.

Ten samouczek zapewni znacznie lepszy sposób aktualizowania indeksów bez przestojów w istniejącym źródle danych. Korzystając z API reindeksowania Elasticsearch, skopiujemy dane z określonego źródła do innego.

Zacznijmy.

UWAGA: Zanim zaczniemy, operacje ponownego indeksowania są zasobożerne, szczególnie w przypadku dużych indeksów. Aby zminimalizować czas potrzebny na ponowne indeksowanie, wyłącz liczbę_replik, ustawiając wartość na 0 i włącz je po zakończeniu procesu.

Włącz _Pole źródłowe

Operacja ponownego indeksowania wymaga włączenia pola źródłowego we wszystkich dokumentach w indeksie źródłowym. Pamiętaj, że pole źródło nie jest indeksowane i nie można go przeszukiwać, ale jest przydatne w przypadku różnych żądań.

Włącz pole _Source, dodając wpis, jak pokazano poniżej:

Indeks PUT_1

„odwzorowania”:
"_źródło":
"włączone": prawda


Ponownie indeksuj wszystkie dokumenty

Aby ponownie zindeksować dokumenty, musimy określić źródło i miejsce docelowe. Źródło i miejsce docelowe może być istniejącym indeksem, aliasem indeksu i strumieniami danych. Możesz używać indeksów z lokalnego lub zdalnego klastra.

UWAGA: Aby indeksowanie przebiegło pomyślnie, zarówno źródło, jak i miejsce docelowe nie mogą być podobne. Musisz również skonfigurować miejsce docelowe zgodnie z wymaganiami przed ponownym indeksowaniem, ponieważ nie stosuje ono ustawień ze źródła ani żadnego powiązanego szablonu.

Ogólna składnia ponownego indeksowania jest następująca:

POST /_ponowna indeksacja

Zacznijmy od stworzenia dwóch indeksów. Pierwszy będzie źródłem, a drugi miejscem docelowym.

PUT /indeks_źródła

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true,"aliases":
"alias_1": ,
"alias_2":
"filtr": "termin":
"użytkownik.id": "kibana"
,"routing": "1"


Polecenie cURL to:

curl -XPUT "http://localhost:9200/source_index" -H 'Content-Type: application/json' -d'  "settings": "number_of_replicas": 0, "number_of_shards": 1,  "mappings" : "_source": "enabled": true,"aliases":     "alias_1": ,    "alias_2":       "filter": "term":        "user.id": "kibana"      ,"routing": "1"      '

Teraz dla indeksu docelowego (możesz użyć powyższego polecenia i zmienić kilka rzeczy lub użyć podanego poniżej):

PUT /indeks_docelowy

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true,"aliases":
"alias_3": ,
"alias_4":
"filtr": "termin":
"użytkownik.id": "kibana"
,"routing": "1"


Jak zawsze, użytkownicy cURL mogą użyć polecenia:

curl -XPUT "http://localhost:9200/destination_index" -H 'Content-Type: application/json' -d'  "settings": "number_of_replicas": 0, "number_of_shards": 1,  "mappings" : "_source": "enabled": true,"aliases":     "alias_3": ,    "alias_4":       "filter": "term":           "user.id": "kibana"      ,"routing": "1"      '

Teraz mamy indeksy, których chcemy użyć, możemy następnie przejść do ponownej indeksacji dokumentów.

Rozważ poniższe żądanie, które kopiuje dane z source_index do destination_index:

POST _ponowna indeksacja

"źródło":
"indeks": "indeks_źródłowy"
,
„docelowy”:
"index": "destination_index"

Polecenie cURL do tego celu to:

curl -XPOST "http://localhost:9200/_reindex" -H 'Content-Type: application/json' -d'  "source":     "index": ".kibana"  ,  "dest":     "index": "destination_index"  '

Wykonanie tego polecenia powinno dostarczyć szczegółowych informacji o przeprowadzonej operacji.

UWAGA: source_index powinien zawierać dane.


"wziął" : 2836,
"timed_out" : fałsz,
„ogółem” : 13059,
"zaktualizowany" : 0,
„utworzono” : 13059,
„usunięty” : 0,
„partie” : 14,
"konflikty_wersji" : 0,
"noops" : 0,
"próby" :
„luzem” : 0,
"szukaj" : 0
,
„przepustnica_mili” : 0,
„żądania_na_sekundę” : -1.0,
„throttled_until_millis” : 0,
"awarie" : [ ]

Sprawdzanie statusu ponownego indeksowania

Możesz wyświetlić status operacji ponownego indeksowania, po prostu używając _zadań. Rozważmy na przykład poniższe żądanie:

POBIERZ /_zadania?detail=true&actions=*reindex&group_by=parents

Polecenie cURL to:

curl -XGET "http://localhost:9200/_tasks?detail=true&actions=*reindex&group_by=parents"

Powinno to dać szczegółowe informacje o procesie ponownej indeksacji, jak pokazano poniżej:


"zadania" :
"FTd_2iXjSXudN_Ua4tZhHg:51847" :
"węzeł" : "FTd_2iXjSXudN_Ua4tZhHg",
"id" : 51847,
„rodzaj” : „transport”,
"akcja" : "indeksy:dane/zapis/ponowna indeksacja",
"stan" :
„ogółem” : 13059,
"zaktualizowany": 9000,
"utworzono" : 0,
„usunięty” : 0,
„partie” : 10,
"konflikty_wersji" : 0,
"noops" : 0,
"próby" :
„luzem” : 0,
"szukaj" : 0
,
„przepustnica_mili” : 0,
„żądania_na_sekundę” : -1.0,
„throttled_until_millis” : 0
,
"description" : "ponownie zindeksuj z [indeks_źródłowy] do [indeks_docelowy][_doc]",
„czas_rozpoczęcia_w_millis” : 1611247308063,
„czas_działania_w_nanos” : 2094157836,
"możliwe do anulowania" : prawda,
"nagłówki" :


Wniosek

Omówiliśmy wszystko, co musisz wiedzieć o używaniu Elasticsearch Reindexing API do kopiowania dokumentów z jednego indeksu (źródła) do drugiego (miejsca docelowego). Chociaż interfejs API ponownego indeksowania to coś więcej, ten przewodnik powinien pomóc Ci w rozpoczęciu pracy.

Gry Najlepsze emulatory konsoli do gier dla systemu Linux
Najlepsze emulatory konsoli do gier dla systemu Linux
W tym artykule wymienimy popularne oprogramowanie do emulacji konsoli do gier dostępne dla systemu Linux. Emulacja to warstwa kompatybilności oprogram...
Gry Najlepsze dystrybucje Linuksa do gier w 2021 r
Najlepsze dystrybucje Linuksa do gier w 2021 r
System operacyjny Linux przeszedł długą drogę od pierwotnego, prostego, serwerowego wyglądu. Ten system operacyjny znacznie się poprawił w ostatnich l...
Gry Jak przechwytywać i przesyłać strumieniowo sesję gry w systemie Linux
Jak przechwytywać i przesyłać strumieniowo sesję gry w systemie Linux
W przeszłości granie w gry było uważane tylko za hobby, ale z czasem branża gier odnotowała ogromny wzrost pod względem technologii i liczby graczy. P...