Heldigvis, med Elasticsearch, når data bliver overflødige, er alt hvad du skal gøre, adgang til et værktøj til at udføre anmodninger og overføre data over netværket.
Denne hurtige guide viser dig, hvordan du bruger den mægtige Elasticsearch API til at slette dokumenter og indekser.
BEMÆRK: Vi antager, at du har Elasticsearch kørende på dit system, og at du har et værktøj til at stille anmodninger såsom cURL. Vi leverer også rå Kibana-anmodninger, hvis du bruger Kibana-konsollen (anbefales).
Sådan liste indeks?
Hvis du vil slette og indeksere i Elasticsearch, skal du først kontrollere, at den findes, inden du sender DELETE-anmodningen.
Hvis du forsøger at slette et ikke-eksisterende indeks, får du en fejl svarende til den nedenfor vist:
SLET / dette_index_gør_ ikke_eksistereFor cURL-kommando:
krølle -XDELETE “http: // localhost: 9200 / this_index_does_not_exist”Sletning af et indeks giver en fejl som:
"fejl":
"hovedårsagen" : [
"type": "index_not_found_exception",
"årsag": "intet sådant indeks [denne_index_for_eksisterer ikke]",
"index_uuid": "_na_",
"ressource.type ":" index_or_alias ",
"ressource.id ":" this_index_does_not_exist ",
"index": "this_index_does_not_exist"
],
"type": "index_not_found_exception",
"årsag": "intet sådant indeks [denne_index_for_eksisterer ikke]",
"index_uuid": "_na_",
"ressource.type ":" index_or_alias ",
"ressource.id ":" this_index_does_not_exist ",
"index": "this_index_does_not_exist"
,
"status": 404
Der er forskellige måder at kontrollere, om der findes et indeks; det bedste er at angive sit navn. For eksempel kan du bruge jokertegn til at matche et bestemt navn.
Eksemplet på nedenstående anmodning viser indekser med navnene te *
GET / te *CURL-kommandoen er:
krølle -XGET “http: // localhost: 9200 / te *”Denne kommando skal returnere alle indekser, der matcher det specifikke mønster, så du kun kan huske det delvise navn på det indeks, du vil fjerne.
"Midlertidig" :
"aliaser": ,
"kortlægninger": ,
"indstillinger":
"indeks":
"routing":
"tildeling":
"inkluderer":
"_tier_preference": "data_indhold"
,
"number_of_shards": "1",
"provided_name": "temp",
"creation_date": "1611180802266",
"number_of_replicas": "1",
"uuid": "c7dOH6MQQUmHM2MKJ73ekw",
"version":
"oprettet": "7100299"
,
"temp_1":
"aliaser": ,
"kortlægninger": ,
"indstillinger":
"indeks":
"routing":
"tildeling":
"inkluderer":
"_tier_preference": "data_indhold"
,
"number_of_shards": "1",
"forudsat_navn": "temp_1",
"creation_date": "1611180811874",
"number_of_replicas": "1",
"uuid": "pq1UUR2XTZS3xfs6Hxr4gg",
"version":
"oprettet": "7100299"
,
"temp_2":
"aliaser": ,
"kortlægninger": ,
"indstillinger":
"indeks":
"routing":
"tildeling":
"inkluderer":
"_tier_preference": "data_indhold"
,
"number_of_shards": "1",
"forudsat_navn": "temp_2",
"creation_date": "1611180815041",
"number_of_replicas": "1",
"uuid": "8NdXWPuBTLe6r4eZ407W9Q",
"version":
"oprettet": "7100299"
En anden måde er at tilføje parameteren ignore_unavailable til anmodningen. For eksempel:
SLET / ignorer_me?ignorere_unavailable = sandFor cURL-brugere:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
krølle -XDELETE “http: // localhost: 9200 / ignore_me?ignorere_unavailable = sand ”
Sådan slettes en Indeks?
Når du har det indeks, du vil fjerne fra Elasticsearch, skal du bruge DELETE-anmodningen efterfulgt af indeksnavnet.
Den generelle syntaks er:
SLET /Indeksnavnet kan være et specifikt indeks eller et jokertegn, der vælger en gruppe indekser. Sørg for at bruge jokertegn korrekt; Ellers kan du fjerne de forkerte indekser.
BEMÆRK: Sletning af Elasticsearch-indekser ved hjælp af aliaser er ikke tilladt.
Overvej nedenstående eksempelanmodning, der fjerner temp_1-indekset:
SLET / temp_1For cURL-kommando:
krølle -XDELETE “http: // localhost: 9200 / temp_1”Udførelse af denne kommando skal svare med et JSON-objekt, hvilket indikerer, at indekset er fjernet.
“Anerkendt”: sandt
Elasticsearch er smart nok til at vide, at du ved et uheld kan fjerne indekser. Derfor kan du indstille, hvilke typer wildcard-udtryk der er tilladt.
Disse typer wildcards-udtryk inkluderer:
- Alle: Inkluderer alle indekser, inklusive åbne, lukkede og skjulte (startende med)
- Åben: Inkluderer kun åbne indekser
- Lukket: Inkluderer kun lukkede indekser
- Ingen: Ingen wildcard-udtryk er tilladt.
Konklusion
Til denne hurtige og enkle vejledning diskuterede vi processen med at bruge Elasticsearch til at slette indekser fra en klynge. Vi diskuterede også enkle måder, du kan implementere for at undgå fejl for indekser, der ikke findes.
Tak fordi du læste.