Elastické vyhledávání

Elasticsearch Reindexuje všechny indexy a kontroluje stav

Elasticsearch Reindexuje všechny indexy a kontroluje stav
Když pracujete s databázemi, budete nevyhnutelně muset provádět změny, například přidávat, odebírat a upravovat data.

Když upravujete data v indexu Elasticsearch, může to vést k prostojům, protože funkce budou dokončeny a data budou znovu indexována.

Tento kurz vám poskytne mnohem lepší způsob aktualizace indexů, aniž by došlo k prostojům s existujícím zdrojem dat. Pomocí rozhraní API pro opětovné indexování Elasticsearch zkopírujeme data z konkrétního zdroje do jiného.

Pojďme začít.

POZNÁMKA: Než začneme, jsou operace reindexování náročné na prostředky, zejména u velkých indexů. Chcete-li minimalizovat čas potřebný pro opětovnou indexaci, deaktivujte number_of_replicas nastavením hodnoty na 0 a povolte je po dokončení procesu.

Povolit pole _Source

Operace opětovného indexování vyžaduje, aby bylo ve všech dokumentech ve zdrojovém indexu povoleno zdrojové pole. Všimněte si, že zdrojové pole není indexováno a nelze jej prohledávat, ale je užitečné pro různé požadavky.

Pole _Source povolte přidáním položky, jak je znázorněno níže:

PUT index_1

„Mapování“:
"_source":
"enabled": true


Znovu indexovat všechny dokumenty

Chcete-li znovu indexovat dokumenty, musíme určit zdroj a cíl. Zdrojem a cílem může být existující index, alias indexu a datové toky. Můžete použít indexy z místního nebo vzdáleného klastru.

POZNÁMKA: Aby indexování proběhlo úspěšně, zdroj ani cíl nemohou být podobné. Cíl musíte také nakonfigurovat podle potřeby před opětovnou indexací, protože neaplikuje nastavení ze zdroje ani z žádné přidružené šablony.

Obecná syntaxe pro reindexaci je následující:

POST / _reindex

Začněme vytvořením dvou indexů. První bude zdroj a druhý cíl.

PUT / source_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliasy":
"alias_1": ,
"alias_2":
"filter": "term":
"uživatel.id ":" kibana "
, "směrování": "1"


Příkaz cURL je:

curl -XPUT "http: // localhost: 9200 / source_index" -H 'Content-Type: application / json' -d '"nastavení": "number_of_replicas": 0, "number_of_shards": 1, "mapování" : "_source": "enabled": true, "aliasy": "alias_1": , "alias_2": "filter": "term": "uživatel.id ":" kibana "," routing ":" 1 " '

Nyní pro cílový index (můžete použít výše uvedený příkaz a změnit několik věcí nebo použít níže uvedený):

PUT / destination_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliasy":
"alias_3": ,
"alias_4":
"filter": "term":
"uživatel.id ":" kibana "
, "směrování": "1"


Uživatelé cURL mohou jako vždy použít příkaz:

curl -XPUT "http: // localhost: 9200 / destination_index" -H 'Content-Type: application / json' -d '"nastavení": "number_of_replicas": 0, "number_of_shards": 1, "mapování" : "_source": "enabled": true, "aliasy": "alias_3": , "alias_4": "filter": "term": "uživatel.id ":" kibana "," routing ":" 1 " '

Nyní máme indexy, které chceme použít, a pak můžeme přejít k opětovné indexaci dokumentů.

Zvažte níže uvedený požadavek, který kopíruje data ze source_index do destination_index:

POST _reindex

„Source“:
"index": "source_index"
,
"dest":
"index": "destination_index"

Příkaz cURL je následující:

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

Provedení tohoto příkazu by vám mělo poskytnout podrobné informace o provedené operaci.

POZNÁMKA: Zdrojový_index by měl mít data.


"vzal": 2836,
"timed_out": false,
"celkem": 13059,
"aktualizováno": 0,
"vytvořeno": 13059,
"odstraněno": 0,
"batches": 14,
"version_conflicts": 0,
"noops": 0,
"retries":
"bulk": 0,
"search": 0
,
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0,
"selhání": []

Kontrola stavu opětovné indexace

Stav operací Reindexování můžete zobrazit jednoduše pomocí _tasks. Zvažte například níže uvedený požadavek:

ZÍSKAT / _ úkoly?podrobně = true & akce = * reindex & group_by = rodiče

Příkaz cURL je:

curl -XGET "http: // localhost: 9200 / _tasks?podrobně = true & akce = * reindex & group_by = rodiče "

To by vám mělo poskytnout podrobné informace o procesu opětovné indexace, jak je uvedeno níže:


"tasks":
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"node": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"type": "transport",
"action": "indexy: data / write / reindex",
"status":
"celkem": 13059,
"aktualizováno": 9000,
"created": 0,
"odstraněno": 0,
"batches": 10,
"version_conflicts": 0,
"noops": 0,
"retries":
"bulk": 0,
"search": 0
,
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0
,
"description": "reindex z [source_index] na [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"running_time_in_nanos": 2094157836,
"cancellable": true,
"headers":


Závěr

Pokryli jsme vše, co potřebujete vědět o používání rozhraní Elasticsearch Reindexing API ke kopírování dokumentů z jednoho indexu (zdroj) do druhého (cíl). Přestože rozhraní Reindexing API obsahuje více, měla by vám tato příručka pomoci začít.

Hry Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Hraní her na celou obrazovku nebo používání aplikací v režimu celé obrazovky bez rozptýlení vás mohou odříznout od příslušných systémových informací v...
Hry Top 5 karet pro zachycení hry
Top 5 karet pro zachycení hry
Všichni jsme viděli a milovali streamování her na YouTube. PewDiePie, Jakesepticye a Markiplier jsou jen někteří z nejlepších hráčů, kteří vydělali mi...
Hry Jak vyvíjet hru na Linuxu
Jak vyvíjet hru na Linuxu
Před deseti lety by jen málo uživatelů Linuxu předpovídalo, že jejich oblíbený operační systém bude jednoho dne populární herní platformou pro komerčn...