Kiedy modyfikujesz dane w indeksie ElasticSearch, może to prowadzić do przestoju, gdy funkcjonalność zostanie zakończona, a dane zostaną ponownie indeksowane.
Ten samouczek da ci znacznie lepszy sposób aktualizacji wskaźników bez doświadczania przestojów z istniejącym źródłem danych. Korzystając z interfejsu API Reindexing Elasticsearch, skopiujemy dane z określonego źródła do innego.
Zacznijmy.
NOTATKA: Zanim zaczniemy, operacje reindexing są ciężkie zasoby, szczególnie na dużych indeksach. Aby zminimalizować czas wymagany do reindexingu, wyłącz numer_of_replicas, ustawiając wartość na 0 i włącz je po zakończeniu procesu.
Włącz pole _Source
Operacja reindexing wymaga włączenia pola źródłowego na wszystkich dokumentach w indeksie źródłowym. Zauważ, że pole źródłowe nie jest indeksowane i nie można go przeszukać, ale jest przydatne dla różnych żądań.
Włącz pole _source, dodając wpis, jak pokazano poniżej:
Umieść indeks_1Reindex wszystkie dokumenty
Aby reindex dokumenty, musimy określić źródło i miejsce docelowe. Źródło i miejsce docelowe mogą być istniejącymi indeksami, aliasami indeksu i strumieni danych. Możesz użyć indeksów z klastra lokalnego lub zdalnego.
NOTATKA: Aby indeksowanie nastąpiło pomyślnie, zarówno źródło, jak i miejsce docelowe nie mogą być podobne. Musisz także skonfigurować miejsce docelowe zgodnie z wymaganiami przed reindexing.
Ogólna składnia do reindexingu jest:
Post /_reindexZacznijmy od utworzenia dwóch wskaźników. Pierwszy będzie źródłem, a drugi będzie celem.
Put /Source_IndexPolecenie Curl to:
curl -xput "http: // localhost: 9200/source_index" -h 'content -Type: Application/Json' -d '"settings": "number_of_replicas": 0, „Number_of_shards”: 1, „mapowania” : „_source”: „enabled”: true, „aliases”: „alias_1”: , „alias_2”: „Filter”: "term": "użytkownik użytkownika.id „:„ kibana ”,„ routing ”:„ 1 ” 'Teraz dla indeksu docelowego (możesz użyć powyższego polecenia i zmienić kilka rzeczy lub użyć tej podanej poniżej):
Put /Destination_IndexJak zawsze użytkownicy Curl mogą użyć polecenia:
curl -xput "http: // localhost: 9200/destying_index" -h 'content -Type: Application/Json' -d '"settings": "number_of_replicas": 0, „Number_of_shards”: 1, „mapy” : „_source”: „enabled”: true, „aliases”: "alias_3": , "alias_4": "filtr": "termin": "użytkownik użytkownika.id „:„ kibana ”,„ routing ”:„ 1 ” 'Teraz mamy wskaźniki, których chcemy użyć, możemy następnie przejść do reindex dokumentów.
Rozważ poniższe żądanie, które kopiuje dane z Source_Index do Destination_Index:
Post _reindexKomenda Curl dla tego jest:
curl -xpost "http: // localhost: 9200/_reindex" -h 'content -type: application/json' -d '"Źródło": "indeks": ".kibana „,„ dest ”: „ indeks ”:„ destiner_index ” 'Wykonanie tego polecenia powinno podać szczegółowe informacje o przeprowadzonej operacji.
NOTATKA: Źródło_index powinien mieć dane.
Sprawdzanie statusu reindexing
Możesz wyświetlić status operacji reindexing, po prostu za pomocą _Tasks. Na przykład rozważ poniższe żądanie:
Get /_Tasks?szczegółowe = True & Actions =*Reindex & Group_by = rodzicePolecenie Curl to:
curl -xget "http: // localhost: 9200/_TASKS?szczegółowe = True & Actions =*Reindex & Group_by = rodzice ”To powinno zawierać szczegółowe informacje na temat procesu reindexing, jak pokazano poniżej:
Wniosek
Omówiliśmy wszystko, co musisz wiedzieć o korzystaniu z API Reindexing Elasticsearch do kopiowania dokumentów z jednego indeksu (źródła) do drugiego (miejsce docelowe). Chociaż API Reindexing ma coś więcej, ten przewodnik powinien pomóc Ci zacząć.