Jak vytvořit indexy elastického vyhledávání

How Create Elasticsearch Indices



Elasticsearch je součástí populárního zásobníku ELK, který se používá pro analýzu a vyhledávání protokolů. Aplikace a systémy neustále zaznamenávají data, která mohou být velmi užitečná při řešení potíží a sledování problémů. Díky zásobníku ELK máte nejlepší nástroje pro rychlé a snadné provádění těchto úkolů.

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_index

Pro 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í:

  1. Název indexu musí být pouze malými písmeny.
  2. Názvy indexů nemohou začínat pomlčkou (-), podtržítkem (_) nebo znaménkem sčítání (+)
  3. Jména nemohou být. nebo ..
  4. Rejstříková jména nemohou obsahovat speciální znaky jako: , /, *,?,,, |, `` (Mezerník), ,, #
  5. 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
  6. 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_body

Pro 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í': {
'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.