En elasticsearch -indeks eller indekser er (er) en datastruktur som inneholder kartlegginger for forskjellige dokumenter. I en relasjonsdatabase kan en indeks referere til en bestemt database.
En Elasticsearch -klynge inneholder flere indekser, inkludert flere typer, som deretter holder dokumentene.
Følgende kan representere elasticsearch -forholdet til en relasjonsdatabase.
I denne guiden vil vi diskutere forskjellige metoder for å gi nytt navn til en eksisterende Elasticsearch Index.
Metode 1: Reindeksering
Den første metoden vi kan bruke når vi gir nytt navn til en indeks er reindekserings -API. Denne API lar deg kopiere dokumenter fra en kildeindeks til en spesifisert destinasjonsindeks.
Reindex API kopierer imidlertid ikke konfigurasjonen av kildeindeksen til destinasjonen. Derfor må vi sette opp destinasjonsindeksen og bruke konfigurasjonen av kildeindeksen før vi ringer Reindex.
Vi kan implementere en full re-indeksoperasjon ved å følge trinnene som beskrevet nedenfor:
Hvis du har en eksisterende elasticsearch -indeks, kan du gjerne hoppe til trinn 2
MERK: I denne guiden vil vi gi alle Elasticsearch -forespørsler om Curl.
Trinn 1: Opprett en ny indeks
La oss lage en indeks som vil fungere som kilden. For enkelhets skyld vil vi bruke en enkel indekskonfigurasjon med de fleste av standardparametrene.
Vi vil tilby en forespørsel til Elasticsearch HTTP -endepunktet.
En eksempelforespørsel om å opprette en indeks “Test-Index” er nedenfor:
Curl -xput "http: // localhost: 9200/test -index" -h 'Content -Type: Application/Json' -D 'Neste trinn er å legge til data i den opprettede indeksen. Som standard inneholder indeksen ingen dokumenter.
Curl -xget http: // localhost: 9200/_cat/indekser/test -indeks \?vFor å legge til data i indeksen, kjør forespørselen som:
Forespørselen ovenfor skal opprette et dokument i testindeksindeksen.
Vi kan bekrefte at dokumentet eksisterer ved hjelp av get -forespørselen til indeksens endepunkt.
Curl -xget "http: // locahost: 9200/test -indeks/_search" -h 'innholdstype: applikasjon/json' -d 'Et eksempelutgang er ANS vist:
Trinn 2: Hent kildekonfigurasjon
Neste trinn før du utfører en reindex -operasjon er å kopiere konfigurasjonen av kildeindeksen.
Vi starter med å få indeksinnstillingen. For å gjøre dette, sender vi en http få forespørsel til _seting API.
Innstillinger = $ (Curl -xGet "https: // localhost: 9200/test -indeks/_settinger")Vi lagrer utdataene til en variabel som vi kan bekrefte ved hjelp av kommandoen:
Echo $ Innstillinger | JQSiden utgangen er i JSON -format, gir vi den til en JSON -prosessor som JQ. Et eksempelutgang er som vist:
Neste trinn er å få kartlegging av indeksen. I dette tilfellet vil vi sende en GET -forespørsel til _mapping endepunktet som:
Kartlegging = $ (Curl -Xget "https: // localhost: 9200/test -indeks/_mapping")Kontroller at utgangen lagres i variabelen:
ekko $ kartlegging | JQUtgangen er som vist:
Neste, kombiner utgangen fra både $ innstilling og $ kartlegging til et enkelt JSON -format.
Følgende er et avkortet skjermbilde av begge kombinerte utganger (konfigurasjon.JSON).
Trinn 3: Opprett en ny indeks
Det er nå på tide å opprette en ny indeks med lagringskonfigurasjonen. Forsikre deg om at konfigurasjonen din ikke inneholder noen feil.
Kjør kommandoen som:
Curl -xput "http: // localhost: 9200/Reimed -index" -H 'Content -Type: Application/Json' -D Config.json 'Følgende er innholdet i konfigurasjonen, JSON -filen som brukes i denne opplæringen.
Ved vellykket skapelse, bør du se erkjent: Sann som vist:
Trinn 4: Reindex
Nå som vi har en omdøpt indeks som ligner på kildeindeksen, kan vi kopiere data fra kilden til destinasjon ved hjelp av Reindex API.
Når du har kommet med Reindex -forespørselen, vil Elasticsearch kopiere dataene fra den spesifiserte kildeindeksen til destinasjonsindeksen.
Her er et eksempelutgang:
Trinn 5: Slett kildeindeks
Det er ikke fornuftig å ha to indekser med lignende konfigurasjon og data. Derfor kan vi slippe kildeindeksen:
Metode 2: Clone API
Den andre og enkleste måten å gi nytt navn og indeks på er å bruke Clone API introdusert i Elasticsearch versjon 7.4 og over.
For å bruke Clone API, må du sørge for at kildeindeksen er skrivebeskyttet og klyngehelsen er grønn.
Hvordan kloning fungerer
Kloning fungerer som følger:
Trinn 1: Angi kildeindeks til skrivebeskyttet
For å stille inn kildeindeksen til skrivebeskyttet modus, bruker vi _settings-API og passerer informasjonen som vist i forespørselen nedenfor:
Trinn 2: klonekildeindeks til målet
For å klone testindeksen til en ny indeks kalt omdøpt-klonet-indeks, kan vi kjøre forespørselen som vist:
Curl -xpost “http: // localhost: 9200/test-indeks/_clone/omdøpt klonet-indeks”
Forutsatt at følgende krav er sanne, bør du ha en omdøpt indeks over kildeindeksen.
Konklusjon
I denne guiden dekket vi hvordan du kan gi nytt navn til en Elasticsearch -indeks ved hjelp av to metoder.
Takk for at du leser!