V tomto rychlém kurzu se podíváme na Elasticsearch, konkrétně jak vytvářet indexy v Elasticsearch enginu. Přestože k provedení tohoto kurzu nepotřebujete žádné komplexní znalosti o zásobníku ELK, může být výhodné mít základní znalosti následujících témat:
- Pomocí terminálu, konkrétně cURL
- Základní znalost API a JSON
- Vytvoření požadavku HTTP
POZNÁMKA: Tento kurz také předpokládá, že máte ve svém systému nainstalovaný a spuštěný Elasticsearch.
Co jsou indexy elastického vyhledávání?
Bez přílišného zjednodušení nebo nadměrné komplikace je index Elasticsearch sbírkou souvisejících dokumentů JSON.
Jak bylo uvedeno v předchozím příspěvku, indexy Elasticsearch jsou objekty JSON považované za základní jednotku úložiště v Elasticsearch. Tyto související dokumenty JSON jsou uloženy v jedné jednotce, která tvoří index. Představte si dokumenty Elasticsearch jako tabulky v relační databázi.
Pojďme spojit index Elasticsearch jako databázi ve světě SQL.
- MySQL => Databáze => Tabulky => Sloupce / řádky
- Elasticsearch => Indexy => Typy => Dokumenty JSON s vlastnostmi
Jak vytvořit index Elasticsearch
Elasticsearch používá k odhalení svých služeb výkonné a intuitivní rozhraní REST API. Tato funkce umožňuje používat požadavky HTTP k provádění operací v klastru Elasticsearch. Proto k vytvoření nového indexu použijeme API pro vytvoření indexu.
V této příručce použijeme cURL k odesílání požadavků a zachování integrity a použitelnosti pro všechny uživatele. Pokud však u cURL narazíte na chyby, zvažte použití konzoly Kibana.
Syntaxe pro vytvoření nového indexu v klastru Elasticsearch je:
DÁT /Chcete-li vytvořit index, musíte pouze předat název indexu bez dalších parametrů, což vytvoří index pomocí výchozího nastavení.
Můžete také určit různé funkce indexu, například v těle indexu:
- Nastavení indexu
- Indexové aliasy
- Mapování pro indexová pole
Název indexu je povinný parametr; v opačném případě se zobrazí chyba pro URIL (/)
curl -X PUT „localhost: 9200“"error": "Nesprávná metoda HTTP pro uri [/] a metodu [PUT], povolena: [DELETE, HEAD, GET]", "status": 405
Chcete-li vytvořit nový index s názvem single_index, předáme požadavek:
PUT / single_indexPro cURL použijte příkaz:
curl -X PUT "localhost: 9200 / single_index?dosti"Výsledkem tohoto příkazu by měl být stav HTTP 200 OK a zpráva s potvrzeným: true jako:
„Potvrzeno“: pravda,
"shards_acknowledged": pravda,
"index": "single_index"
Výše uvedený požadavek vytvoří index single_index s výchozím nastavením, protože jsme nezadali žádné konfigurace.
Pravidla pojmenování rejstříku
Při vytváření názvů indexů Elasticsearch musíte dodržovat následující standardy pojmenování:
- Název rejstříku musí být pouze malými písmeny.
- Názvy indexu nemohou začínat pomlčkou (-), podtržítkem (_) nebo znaménkem přidání (+)
- Jména nemohou být . nebo…
- Názvy rejstříku nesmí obsahovat speciální znaky, například: \, /, *, ?, ", <, >, |, "(mezera), ,, #
- Délka názvů indexů musí být menší než 255 bajtů. Vícebajtové znaky se započítají do celkové délky názvu rejstříku. Například pokud má jeden znak délku 8 bajtů, celková zbývající délka jména je 255 - 8
- V nejnovější verzi Elasticsearch jsou jména, která začínají písmenem a . jsou vyhrazeny pro skryté indexy a interní indexy používané pluginy Elasticsearch.
Jak vytvořit tělo indexu
Při použití požadavku PUT k vytvoření indexu můžete předat různé argumenty, které definují nastavení indexu, který chcete vytvořit. Mezi hodnoty, které můžete v těle zadat, patří:
- Aliasy: Určuje aliasy pro index, který chcete vytvořit; tento parametr je volitelný.
- Nastavení: To definuje možnosti konfigurace pro index, který chcete vytvořit. Pokud nezadáte žádné parametry, index se vytvoří pomocí výchozích konfigurací.
- Mapování: To definuje mapování pro pole v indexu. Mezi specifikace, které můžete zahrnout do mapování, patří:
- Název pole
- Datový typ
- Parametr mapování
Příklad vytvoření indexu s konfiguracemi těla zvažte níže uvedený požadavek:
PUT / single_index_with_body"settings":
"number_of_shards": 2,
"number_of_replicas": 2
,
„Mapování“:
"vlastnosti":
"field1": "type": "objekt"
Pro ekvivalentní požadavek cURL:
curl -XPUT "http: // localhost: 9200 / single_index_with_body" -H 'Content-Type: application / json' -d '"nastavení": "number_of_shards": 2, "number_of_replicas": 2, "mapování" : "properties": "field1": "type": "object" 'Výše uvedený požadavek vytvoří nový index s názvem single_index_with_body se 2 počty střepů a 2 replikami. Vytvoří také mapování s polem názvu field1 a zadejte jako objekt JSON.
Jakmile odešlete požadavek, dostanete odpověď se stavem požadavku jako:
„Potvrzeno“: pravda,
"shards_acknowledged": pravda,
"index": "single_index_with_body"
„Potvrzeno“ ukazuje, zda byl index úspěšně vytvořen v klastru, zatímco „shards_acknowledged“ ukazuje, zda byl pro každý horizontální oddíl v určeném indexu spuštěn požadovaný počet horizontálních oddílů před vypršením.
Jak zobrazit rejstřík Elasticsearch
Chcete-li zobrazit informace o indexu, který jste vytvořili, použijte podobný požadavek jako při vytváření indexu, ale místo PUT použijte metodu HTTP jako:
ZÍSKAT / single_index_with_bodyPro CURL,
curl -XGET „http: // localhost: 9200 / single_index_with_body“Tento příkaz vám poskytne podrobné informace o požadovaném indexu jako:
"single_index_with_body":
"aliasy": ,
"mapování":
"vlastnosti":
"field1":
"type": "objekt"
,
"settings":
"index":
"routing":
"alokace":
"zahrnout" :
"_tier_preference": "data_content"
,
"number_of_shards": "2",
"provided_name": "single_index_with_body",
"creation_date": "1611045687208",
"number_of_replicas": "2",
"uuid": "3TRkO7xmQcSUOOGtb6pXVA",
"verze":
"created": "7100299"
Závěr
Tato příručka pojednávala o tom, jak pracovat s Elasticsearch na vytváření indexového API pro vytváření nových indexů. Také jsme diskutovali o tom, jak vytvořit vhodné názvy pro indexy a nastavení konfigurace.
Pomocí této příručky nyní můžete vytvářet a zobrazovat indexy pomocí rozhraní Elasticsearch API.