Heldigvis, med Elasticsearch, når data blir overflødige, er alt du trenger å gjøre å få tilgang til et verktøy for å utføre forespørsler og overføre data over nettverket.
Denne hurtigveiledningen viser deg hvordan du bruker det mektige Elasticsearch API til å slette dokumenter og indekser.
MERK: Vi antar at du har Elasticsearch på systemet ditt og at du har et verktøy for å komme med forespørsler som cURL. Vi leverer også rå Kibana-forespørsler hvis du bruker Kibana-konsollen (anbefalt).
Hvordan liste indeks?
Hvis du vil slette og indeksere i Elasticsearch, må du først bekrefte at den eksisterer før du sender DELETE-forespørselen.
Hvis du prøver å slette en ikke-eksisterende indeks, får du en feil som ligner på den som er vist nedenfor:
SLETT / denne_indeksen_eksisterer ikkeFor CURL-kommando:
krøll -XDELETE “http: // localhost: 9200 / this_index_does_not_exist”Slette en indeks vil gi en feil som:
"feil":
"Opprinnelig årsak" : [
"type": "index_not_found_exception",
"reason": "ingen slik indeks [this_index_does_not_exist]",
"index_uuid": "_na_",
"ressurs.type ":" index_or_alias ",
"ressurs.id ":" this_index_does_not_exist ",
"index": "this_index_does_not_exist"
],
"type": "index_not_found_exception",
"reason": "ingen slik indeks [this_index_does_not_exist]",
"index_uuid": "_na_",
"ressurs.type ":" index_or_alias ",
"ressurs.id ":" this_index_does_not_exist ",
"index": "this_index_does_not_exist"
,
"status": 404
Det er forskjellige måter å sjekke om det finnes en indeks på; det beste er å liste opp navnet. For eksempel kan du bruke jokertegn for å matche et bestemt navn.
Eksempelforespørselen nedenfor viser indekser med navn te *
FÅ / te *CURL-kommandoen er:
krøll -XGET “http: // localhost: 9200 / te *”Denne kommandoen skal returnere alle indeksene som samsvarer med det spesifikke mønsteret, slik at du bare kan huske det delvise navnet på indeksen du vil fjerne.
"temp":
"aliaser": ,
"mappings": ,
"innstillinger":
"indeks":
"ruting":
"tildeling" :
"inkluderer":
"_tier_preference": "data_innhold"
,
"number_of_shards": "1",
"provided_name": "temp",
"creation_date": "1611180802266",
"number_of_replicas": "1",
"uuid": "c7dOH6MQQUmHM2MKJ73ekw",
"versjon":
"opprettet": "7100299"
,
"temp_1":
"aliaser": ,
"mappings": ,
"innstillinger":
"indeks":
"ruting":
"tildeling" :
"inkluderer":
"_tier_preference": "data_innhold"
,
"number_of_shards": "1",
"provided_name": "temp_1",
"creation_date": "1611180811874",
"number_of_replicas": "1",
"uuid": "pq1UUR2XTZS3xfs6Hxr4gg",
"versjon":
"opprettet": "7100299"
,
"temp_2":
"aliaser": ,
"mappings": ,
"innstillinger":
"indeks":
"ruting":
"tildeling" :
"inkluderer":
"_tier_preference": "data_innhold"
,
"number_of_shards": "1",
"provided_name": "temp_2",
"creation_date": "1611180815041",
"number_of_replicas": "1",
"uuid": "8NdXWPuBTLe6r4eZ407W9Q",
"versjon":
"opprettet": "7100299"
En annen måte er å legge til parameteren ignore_unavailable i forespørselen. For eksempel:
SLETT / ignorere meg?ignore_unavailable = trueFor CURL-brukere:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
krøll -XDELETE “http: // localhost: 9200 / ignore_me?ignore_unavailable = true ”
Hvordan slette en Indeks?
Når du har indeksen du vil fjerne fra Elasticsearch, bruker du DELETE-forespørselen etterfulgt av indeksnavnet.
Den generelle syntaksen er:
SLETT /Indeksnavnet kan være en bestemt indeks eller et jokertegn som velger en gruppe indekser. Sørg for å bruke jokertegn riktig; Ellers kan du fjerne feil indekser.
MERK: Slette Elasticsearch-indekser med aliaser er ikke tillatt.
Tenk på eksempelforespørselen nedenfor som fjerner temp_1-indeksen:
SLETT / temp_1For cURL-kommando:
krølle -XDELETE “http: // localhost: 9200 / temp_1”Å utføre denne kommandoen skal svare med et JSON-objekt, noe som indikerer vellykket fjerning av indeksen.
“Erkjent”: sant
Elasticsearch er smart nok til å vite at du kan fjerne indekser ved et uhell. Derfor kan du angi hvilke typer wildcard-uttrykk som er tillatt.
Disse typene jokertegnuttrykk inkluderer:
- Alle: Inkluderer alle indekser, inkludert åpne, lukkede og skjulte (starter med)
- Åpen: Inkluderer bare åpne indekser
- Lukket: Inkluderer bare lukkede indekser
- Ingen: Ingen wildcard-uttrykk er tillatt.
Konklusjon
For denne raske og enkle veiledningen diskuterte vi prosessen med å bruke Elasticsearch for å slette indekser fra en klynge. Vi diskuterte også enkle måter du kan implementere for å unngå feil for indekser som ikke eksisterer.
Takk for at du leser.