Ako vytvoriť indexy elastického vyhľadávania

How Create Elasticsearch Indices



Elasticsearch je jednou časťou populárneho stohu ELK používaného na analýzu a vyhľadávanie protokolov. Aplikácie a systémy neustále zaznamenávajú údaje, ktoré môžu byť veľmi užitočné pri riešení problémov a sledovaní problémov. Pomocou stohu ELK máte najlepšie nástroje na rýchle a jednoduché vykonanie týchto úloh.

V tomto krátkom návode sa pozrieme na Elasticsearch, konkrétne na to, ako vytvárať indexy v engine Elasticsearch. Aj keď na vykonanie tohto tutoriálu nepotrebujete žiadne komplexné znalosti o zásobníku ELK, môže byť výhodné porozumieť základným znalostiam nasledujúcich tém:







  • Pomocou terminálu, konkrétne cURL
  • Základné znalosti API a JSON
  • Vykonanie požiadavky HTTP

POZNÁMKA: Tento tutoriál tiež predpokladá, že máte vo svojom systéme nainštalované a spustené Elasticsearch.



Čo sú indexy elastického vyhľadávania?

Bez toho, aby sme veci príliš zjednodušovali alebo príliš komplikovali, je index Elasticsearch zbierkou súvisiacich dokumentov JSON.



Ako bolo uvedené v predchádzajúcom príspevku, indexy Elasticsearch sú objekty JSON - považované za základnú jednotku úložiska v Elasticsearch. Tieto súvisiace dokumenty JSON sú uložené v jednej jednotke, ktorá tvorí register. Predstavte si dokumenty Elasticsearch ako tabuľky v relačnej databáze.





Spojme index Elasticsearch s databázou vo svete SQL.

  • MySQL => Databázy => Tabuľky => Stĺpce/riadky
  • Elasticsearch => Indexy => Typy => Dokumenty JSON s vlastnosťami

Ako vytvoriť index elastického vyhľadávania

Elasticsearch používa na zobrazenie svojich služieb výkonné a intuitívne rozhranie REST API. Táto funkcia vám umožňuje používať požiadavky HTTP na vykonávanie operácií v klastri Elasticsearch. Na vytvorenie nového indexu preto použijeme API pre vytvorenie indexu.



V tejto príručke použijeme cURL na odosielanie požiadaviek a zachovanie integrity a použiteľnosti pre všetkých používateľov. Ak sa však s cURL vyskytnú chyby, zvážte použitie Kibana Console.

Syntax na vytvorenie nového indexu v klastri Elasticsearch je:

Vložiť /

Na vytvorenie indexu stačí odovzdať názov indexu bez ďalších parametrov, ktorý index vytvorí pomocou predvolených nastavení.

Môžete tiež určiť rôzne funkcie indexu, napríklad v tele indexu:

  • Nastavenia pre register
  • Indexové aliasy
  • Mapovania pre polia indexu

Indexový názov je povinný parameter; v opačnom prípade dostanete chybu pre URIL (/)

curl -X PUT localhost: 9200
{'error': 'Nesprávna metóda HTTP pre uri [/] a metódu [PUT], povolené: [DELETE, HEAD, GET]', 'status': 405}

Na vytvorenie nového indexu s názvom single_index odovzdáme požiadavku:

PUT /single_index

Pre cURL použite príkaz:

curl -X PUT 'localhost: 9200/single_index? pretty'

Výsledkom tohto príkazu by mal byť stav HTTP 200 OK a správa s potvrdením: true ako:

{
uznané: pravda,
'shards_acknowledged': pravda,
'index': 'single_index'
}

Vyššie uvedená požiadavka vytvára index single_index s predvolenými nastaveniami, pretože sme neurčili žiadne konfigurácie.

Indexové pravidlá pomenovania

Pri vytváraní názvov pre indexy Elasticsearch musíte dodržať nasledujúce štandardy pomenovania:

  1. Indexový názov musí byť iba malými písmenami.
  2. Názvy indexov nemôžu začínať pomlčkou (-), podčiarkovníkom (_) alebo znakom sčítania (+)
  3. Mená nemôžu byť. alebo ..
  4. Indexové názvy nemôžu obsahovať špeciálne znaky, ako napríklad: , /, *,?,,, |, '(Medzerník), ,, #
  5. Dĺžka názvov indexov musí byť menšia ako 255 bajtov. Viacbajtové znaky sa budú započítavať do celkovej dĺžky indexového názvu. Ak má napríklad jeden znak dĺžku 8 bajtov, celková zostávajúca dĺžka názvu je 255 - 8
  6. V najnovšej verzii Elasticsearch sú názvy začínajúce sa na. sú vyhradené pre skryté indexy a interné indexy používané doplnkami Elasticsearch.

Ako vytvoriť telo indexu

Pri použití požiadavky PUT na vytvorenie indexu môžete odovzdať rôzne argumenty, ktoré definujú nastavenia pre register, ktorý chcete vytvoriť. Medzi hodnoty, ktoré môžete špecifikovať v tele, patria:

  • Prezývky: Špecifikuje názvy aliasov pre index, ktorý chcete vytvoriť; tento parameter je voliteľný.
  • Nastavenie: Toto definuje možnosti konfigurácie pre index, ktorý chcete vytvoriť. Ak nezadáte žiadne parametre, index sa vytvorí pomocou predvolených konfigurácií.
  • Mapovania: Toto definuje mapovanie pre polia v indexe. Špecifikácie, ktoré môžete zahrnúť do mapovaní, zahŕňajú:
    • Názov poľa
    • Typ údajov
    • Parameter mapovania

Príklad vytvorenia indexu s konfiguráciami tela obsahuje nasledujúca požiadavka:

PUT /single_index_w__body
{
'nastavenie': {
'number_of_shards': 2,
„číslo_replikácií“: 2
},
mapovania: {
'properties': {
'field1': {'type': 'object'}
}
}
}

Pre požiadavku ekvivalentu 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'}}}} '

Vyššie uvedená požiadavka vytvára nový index s názvom single_index_with_body s 2 číslami črepov a 2 replikami. Tiež vytvorí mapovanie s poľom názvu pole1 a typu ako objekt JSON.

Po odoslaní žiadosti dostanete odpoveď so stavom žiadosti ako:

{
uznané: pravda,
'shards_acknowledged': pravda,
'index': 'single_index_with_body'
}

Potvrdené ukazuje, či bol index úspešne vytvorený v klastri, zatiaľ čo shards_acknowledged ukazuje, či bol pred vypršaním časového limitu spustený požadovaný počet kópií horizontálnych fragmentov pre každý fragment v zadanom indexe.

Ako zobraziť index Elasticsearch

Ak chcete zobraziť informácie o indexe, ktorý ste vytvorili, použite podobnú požiadavku ako na vytvorenie indexu, ale namiesto PUT použite metódu HTTP ako:

GET /single_index_w__body

Pre cURL,

curl -XGET http: // localhost: 9200/single_index_with_body

Tento príkaz vám poskytne podrobné informácie o požadovanom indexe ako:

{
'single_index_w__body': {
'aliasy': {},
'mapovania': {
'properties': {
'field1': {
'type': 'objekt'
}
}
},
'nastavenie' : {
'index': {
'smerovanie': {
'pridelenie' : {
'include': {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'provided_name': 'single_index_with_body',
'creation_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'verzia': {
'created': '7100299'
}
}
}
}
}

Záver

Táto príručka sa zaoberala tým, ako pracovať s Elasticsearch na vytváraní indexového API na vytváranie nových indexov. Tiež sme diskutovali o tom, ako vytvoriť vhodné názvy pre indexy a nastavenia konfigurácie.

Pomocou tejto príručky teraz môžete vytvárať a zobrazovať indexy pomocou rozhrania Elasticsearch API.