Elasticsearch Reindex na miejscu

Elasticsearch Reindex na miejscu
Indeksowanie ElasticSearch jest ważną funkcją, która umożliwia silnikowi szybkie i dokładne wykonywanie.

Jednak, jak wiadomo, gdy dane zostaną zmapowane na indeks, można je niezmodyfikowalne. Aby to zrobić, będziesz musiał ponownie zindex dane z wymaganymi modyfikacjami. Proces ten może prowadzić do przestojów, co nie jest zbyt dobrą praktyką, szczególnie w przypadku usługi, która jest już w obiegu.

Aby to obejść, możemy użyć aliasów indeksowych, które pozwalają nam bezproblemowo przełączać się między indeksami.

Jak utworzyć indeks?

Pierwszym krokiem jest upewnienie się, że masz istniejący indeks, który chcesz zaktualizować dane.

W tym samouczku będziemy mieli stary i nowy indeks, który będzie działał jako ich nazwy.

Put /Old_Index /

„Ustawienia”:
„Number_of_shards”: 1
,
"skróty":
"Użyj mnie":
,
„Mapowania”:
"nieruchomości":
"nazwa":
"Wpisz tekst"
,
"ID":
„Typ”: „Integer”
,
"płatny":
„Typ”: „boolean”



W przypadku użytkowników Curl użyj dołączonego polecenia:

curl -xput "http: // localhost: 9200/old_index/" -h 'content -Type: Application/json' -d '"settings": "number_of_shards": 1, "aliases": "użytkowe_me" : , „Mappings”: "właściwości": "name": "type": "text", "id": " ":" boolean " '

Następnie utwórz nowy indeks, którego będziemy korzystać. Skopiuj wszystkie ustawienia i mapowania ze starego indeksu jako:

PUT /NEW_INDEX

„Ustawienia”:
„Number_of_shards”: 1
,
"skróty":
"Użyj mnie":
,
„Mapowania”:
"nieruchomości":
"nazwa":
"Wpisz tekst"
,
"ID":
„Typ”: „Integer”
,
"płatny":
„Typ”: „Obiekt”



Oto polecenie Curl:

curl -xput "http: // localhost: 9200/new_Index" -h 'content -Type: Application/Json' -d '"Settings": "Number_of_shards": 1, "aliases": "użytkowe_me": , „Mappings”: „właściwości”: „name”: „type”: „text”, „id”: „type”: „liczba całkowita”, „płatna”: „typ” : "obiekt" '

Mając ustawienie i mapowania w nowym indeksie, użyj API Reindex, aby skopiować dane ze starego indeksu do nowego:

Post _reindex

"źródło":
„indeks”: „old_index”
,
„dest”:
„Indeks”: „New_Index”

Oto polecenie Curl:

curl -xpost "http:/localhost: 9200/_reindex" -h 'content -Type: Application/json' -d '"Źródło": "index": "old_index", "dest": "indeks" : „new_index” '

Teraz skopiuj pseudonim starego indeksu do nowego, używając API _Alias ​​jako:

Post /_aliases

"działania" : [
„Dodaj”: „indeks”: „new_Index”, „alias”: „Use_me”
]

Oto polecenie Curl:

curl -xpost "http: // localhost: 9200/_aliases" -h 'content -Type: Application/Json' -d '"Actions": ["add": "index": "new_Index", "alias alias " : "Użyj mnie" ]'

Po zakończeniu możesz teraz usunąć stary indeks, a aplikacje będą korzystać z nowego indeksu (z powodu aliasu) bez przestoju.

Wniosek

Po opanowaniu koncepcji omówionych w tym samouczku będziesz w stanie ponownie przenosić dane ze starego indeksu do nowego.