Elastisk søgning

Elasticsearch Genindekserer alle indekser og kontrollerer status

Elasticsearch Genindekserer alle indekser og kontrollerer status
Når du arbejder med databaser, skal du uundgåeligt foretage ændringer som at tilføje, fjerne og ændre data.

Når du ændrer data i et Elasticsearch-indeks, kan det føre til nedetid, når funktionaliteten bliver afsluttet, og dataene bliver indekseret igen.

Denne vejledning giver dig en meget bedre måde at opdatere indekser uden at opleve nedetid med den eksisterende datakilde. Ved hjælp af Elasticsearch-genindekserings-API'en kopierer vi data fra en bestemt kilde til en anden.

Lad os komme i gang.

BEMÆRK: Inden vi kommer i gang, er Reindexing-operationer ressourcetunge, især på store indekser. For at minimere den tid, der kræves til genindeksering, skal du deaktivere antal_replikationer ved at indstille værdien til 0 og aktivere dem, når processen er afsluttet.

Aktivér _Kildefelt

Genindekseringsfunktionen kræver, at kildefeltet skal aktiveres på alle dokumenterne i kildeindeks. Bemærk, at kildefeltet ikke er indekseret og ikke kan søges, men det er nyttigt til forskellige anmodninger.

Aktivér feltet _Source ved at tilføje en post som vist nedenfor:

PUT index_1

“Kortlægninger”:
"_kilde":
"aktiveret": sandt


Genindekser alle dokumenter

For at indeksere dokumenter igen skal vi angive kilde og destination. Kilde og destination kan være et eksisterende indeks, indeksalias og datastrømme. Du kan bruge indekser fra den lokale eller en fjern klynge.

BEMÆRK: For at indeksering kan ske med succes, kan både kilde og destination ikke være ens. Du skal også konfigurere destinationen efter behov inden genindeksering, fordi den ikke anvender indstillinger fra kilden eller nogen tilknyttet skabelon.

Den generelle syntaks for Reindexing er som:

POST / _reindex

Lad os starte med at oprette to indekser. Den første vil være kilden, og den anden vil være destinationen.

PUT / kildeindeks

"indstillinger": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"alias_1": ,
"alias_2":
"filter": "term":
"bruger.id ":" kibana "
, "routing": "1"


CURL-kommandoen er:

curl -XPUT "http: // localhost: 9200 / source_index" -H 'Content-Type: application / json' -d '"settings": "number_of_replicas": 0, "number_of_shards": 1, "mappings" : "_source": "enabled": true, "aliases": "alias_1": , "alias_2": "filter": "term": "user.id ":" kibana "," routing ":" 1 " '

Nu til destinationsindekset (du kan bruge ovenstående kommando og ændre et par ting eller bruge den nedenfor):

PUT / destination_index

"indstillinger": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"alias_3": ,
"alias_4":
"filter": "term":
"bruger.id ":" kibana "
, "routing": "1"


Som altid kan cURL-brugere bruge kommandoen:

krølle -XPUT "http: // localhost: 9200 / destination_index" -H 'Content-Type: application / json' -d '"settings": "number_of_replicas": 0, "number_of_shards": 1, "mappings" : "_source": "enabled": true, "aliases": "alias_3": , "alias_4": "filter": "term": "user.id ":" kibana "," routing ":" 1 " '

Nu har vi de indekser, vi vil bruge, og vi kan derefter gå videre til at indeksere dokumenterne igen.

Overvej nedenstående anmodning, der kopierer dataene fra source_index til destination_index:

POST _reindex

“Kilde”:
"index": "source_index"
,
"dest":
"index": "destination_index"

CURL-kommandoen til dette er:

krølle -XPOST "http: // localhost: 9200 / _reindex" -H 'Content-Type: application / json' -d '"source": "index": ".kibana "," dest ": " index ":" destination_index " '

Udførelse af denne kommando skal give dig detaljerede oplysninger om den udførte operation.

BEMÆRK: Source_index skal have data.


"tog": 2836,
"timed_out": falsk,
"i alt": 13059,
"opdateret": 0,
"oprettet": 13059,
"slettet": 0,
"batches": 14,
"version_conflicts": 0,
"noops": 0,
"prøver igen":
"bulk": 0,
"søg": 0
,
"throttled_millis": 0,
"anmodninger_per_sekund": -1.0,
"throttled_until_millis": 0,
"fiaskoer": []

Kontrol af genindekseringsstatus

Du kan se status for Reindexing-operationerne ved blot at bruge _tasks. Overvej f.eks. Nedenstående anmodning:

FÅ / _opgaver?detaljeret = sandt & handlinger = * reindex & gruppe_by = forældre

CURL-kommandoen er:

krølle -XGET "http: // localhost: 9200 / _opgaver?detaljeret = sandt & handlinger = * reindex & gruppe_by = forældre "

Det skulle give dig detaljerede oplysninger om Reindexing-processen som vist nedenfor:


"opgaver":
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"node": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"type": "transport",
"action": "indekser: data / skriv / reindex",
"status":
"i alt": 13059,
"opdateret": 9000,
"oprettet": 0,
"slettet": 0,
"batcher": 10,
"version_conflicts": 0,
"noops": 0,
"prøver igen":
"bulk": 0,
"søg": 0
,
"throttled_millis": 0,
"anmodninger_per_sekund": -1.0,
"throttled_until_millis": 0
,
"beskrivelse": "reindex fra [source_index] til [destination_index] [_ doc]",
"starttid_i_millis": 1611247308063,
"kører_tid_i_nanos": 2094157836,
"annulleres": sandt,
"overskrifter":


Konklusion

Vi har dækket alt hvad du behøver at vide om brug af Elasticsearch Reindexing API til at kopiere dokumenter fra et indeks (kilde) til et andet (destination). Selvom der er mere ved Reindexing API, bør denne guide hjælpe dig med at komme i gang.

Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...
Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...
Mus Sådan ændres venstre og højre museknap på Windows 10-pc
Sådan ændres venstre og højre museknap på Windows 10-pc
Det er en ganske normal, at alle computermusenheder er ergonomisk designet til højrehåndede brugere. Men der er musenheder til rådighed, der er specie...