V tomto rychlém tutoriálu se podíváme na Elasticsearch, konkrétně na to, 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 o následujících tématech:
- Pomocí terminálu, konkrétně cURL
- Základní znalosti API a JSON
- Vytvoření požadavku HTTP
POZNÁMKA: Tento tutoriál 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 nadměrného zjednodušování nebo překomplikování věcí je index Elasticsearch sbírkou souvisejících dokumentů JSON.
Jak již bylo zmíněno v předchozím příspěvku, indexy Elasticsearch jsou objekty JSON - považovány za základní jednotku úložiště v Elasticsearch. Tyto související dokumenty JSON jsou uloženy v jedné jednotce, která tvoří rejstřík. Představte si dokumenty Elasticsearch jako tabulky v relační databázi.
Pojďme propojit index Elasticsearch s databází ve světě SQL.
- MySQL => Databáze => Tabulky => Sloupce/řádky
- Elasticsearch => Indexy => Typy => Dokumenty JSON s vlastnostmi
Jak vytvořit index elastického vyhledávání
Elasticsearch využívá k prezentaci svých služeb výkonné a intuitivní rozhraní REST API. Tato funkce vám umožňuje používat požadavky HTTP k provádění operací na clusteru Elasticsearch. K vytvoření nového indexu proto použijeme API pro vytvoření indexu.
Pro tuto příručku použijeme cURL k odesílání požadavků a zachování integrity a použitelnosti pro všechny uživatele. Pokud se však s cURL setkáte s chybami, zvažte použití Kibana Console.
Syntaxe pro vytvoření nového indexu v clusteru Elasticsearch je:
DÁT /Chcete -li vytvořit index, stačí 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í pro index
- Aliasy indexů
- Mapování pro pole indexu
Indexový název je povinný parametr; jinak dostanete chybu pro URIL (/)
curl -X PUT localhost: 9200{'error': 'Nesprávná metoda HTTP pro uri [/] a metoda [PUT], povoleno: [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? pretty'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 pro pojmenování rejstříku
Při vytváření názvů pro indexy Elasticsearch musíte dodržovat následující standardy pojmenování:
- Název indexu musí být pouze malými písmeny.
- Názvy indexů nemohou začínat pomlčkou (-), podtržítkem (_) nebo znaménkem sčítání (+)
- Jména nemohou být. nebo ..
- Rejstříková jména nemohou obsahovat speciální znaky jako: , /, *,?,,, |, `` (Mezerník), ,, #
- Délka názvů indexů musí být menší než 255 bajtů. Vícebajtové znaky se započítávají do celkové délky indexového názvu. Pokud je například jeden znak dlouhý 8 bajtů, celková zbývající délka jména je 255 - 8
- V nejnovější verzi Elasticsearch jsou jména začínající na. 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í pro index, který chcete vytvořit. Mezi hodnoty, které můžete v těle zadat, patří:
- Přezdívky: Určuje názvy aliasů 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_w__body{
'nastavení': {
'number_of_shards': 2,
'number_of_replicas': 2
},
mapování: {
'properties': {
'field1': {'type': 'object'}
}
}
}
Pro požadavek ekvivalentní cURL:
curl -XPUT 'http: // localhost: 9200/single_index_with_body' -H 'Content -Type: application/json' -d '{' settings ': {' number_of_shards ': 2,' number_of_replicas ': 2},' mappings ' : {'properties': {'field1': {'type': 'object'}}}} 'Výše uvedený požadavek vytvoří nový index s názvem single_index_with_body se 2 čísly střepů a 2 replikami. Také vytvoří mapování s polem názvu pole1 a zadejte jako objekt JSON.
Jakmile žádost odešlete, dostanete odpověď se stavem žádosti 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 před vypršením časového limitu spuštěn požadovaný počet kopií horizontálních oddílů pro každý horizontální oddíl v zadaném indexu.
Jak zobrazit index 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:
GET /single_index_with_bodyPro cURL,
curl -XGET http: // localhost: 9200/single_index_with_bodyTento příkaz vám poskytne podrobné informace o požadovaném indexu jako:
{'single_index_with_body': {
'aliasy': {},
'mapování': {
'properties': {
'field1': {
'type': 'object'
}
}
},
'nastavení': {
'index': {
'směrování': {
'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 při 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.