Kako stvoriti indekse elastičnog pretraživanja

How Create Elasticsearch Indices



Elasticsearch jedan je dio popularnog ELK stoga koji se koristi za analizu dnevnika i pretraživanje. Aplikacije i sustavi stalno bilježe podatke koji mogu biti vrlo korisni za rješavanje problema i praćenje problema. Koristeći ELK stog imate najbolje alate za brzo i vrlo jednostavno izvršavanje ovih zadataka.

U ovom kratkom vodiču ćemo pogledati Elasticsearch, konkretno kako stvoriti indekse u Elasticsearch motoru. Iako vam za praćenje ovog vodiča nije potrebno sveobuhvatno znanje o ELK steku, osnovno razumijevanje sljedećih tema moglo bi biti korisno:







  • Koristeći terminal, točnije, cURL
  • Osnovno poznavanje API -ja i JSON -a
  • Upućivanje HTTP zahtjeva

BILJEŠKA: Ovaj vodič također pretpostavlja da imate Elasticsearch instaliran i pokrenut na vašem sustavu.



Što su indeksi elastičnog pretraživanja?

Bez previše pojednostavljivanja ili previše kompliciranja, Elasticsearch indeks je skup povezanih JSON dokumenata.



Kao što je spomenuto u prethodnom postu, Elasticsearch indeksi su JSON objekti - smatraju se osnovnom jedinicom za pohranu u Elasticsearchu. Ti povezani JSON dokumenti pohranjeni su u jednoj jedinici koja čini indeks. Zamislite dokumente Elasticsearch kao tablice u relacijskoj bazi podataka.





Povežimo indeks Elasticsearch kao bazu podataka u svijetu SQL -a.

  • MySQL => Baze podataka => Tablice => Stupci/reci
  • Elasticsearch => Indeksi => Vrste => JSON dokumenti sa svojstvima

Kako stvoriti indeks elastičnog pretraživanja

Elasticsearch koristi snažan i intuitivan REST API za izlaganje svojih usluga. Ova vam funkcionalnost omogućuje korištenje HTTP zahtjeva za izvođenje operacija na klasteru Elasticsearch. Stoga ćemo za izradu novog indeksa koristiti API za stvaranje indeksa.



U ovom ćemo vodiču koristiti cURL za slanje zahtjeva i očuvanje integriteta i upotrebljivosti za sve korisnike. Međutim, ako naiđete na pogreške s cURL -om, razmislite o upotrebi Kibana Consolea.

Sintaksa za stvaranje novog indeksa u klasteru Elasticsearch je:

PUT /

Da biste stvorili indeks, sve što trebate učiniti je proslijediti naziv indeksa bez drugih parametara, što stvara indeks koristeći zadane postavke.

Također možete navesti različite značajke indeksa, na primjer u tijelu indeksa:

  • Postavke za indeks
  • Indeksni nadimci
  • Mapiranja za indeksna polja

Naziv indeksa je obavezni parametar; u suprotnom ćete dobiti pogrešku za URIL (/)

curl -X PUT localhost: 9200
{'error': 'Neispravna HTTP metoda za uri [/] i metoda [PUT], dopušteno: [DELETE, HEAD, GET]', 'status': 405}

Da bismo stvorili novi indeks s imenom single_index, prosljeđujemo zahtjev:

PUT /single_index

Za cURL upotrijebite naredbu:

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

Ova naredba trebala bi rezultirati HTTP statusom 200 u redu i porukom s potvrđenim: true kao:

{
priznato: istina,
'shards_acknowledged': istina,
'index': 'single_index'
}

Gore navedeni zahtjev stvara indeks single_index sa zadanim postavkama jer nismo naveli nikakve konfiguracije.

Pravila imenovanja indeksa

Prilikom stvaranja naziva za indekse Elasticsearch morate se pridržavati sljedećih standarda imenovanja:

  1. Naziv indeksa mora biti samo malim slovima.
  2. Nazivi indeksa ne mogu započeti crticom (-), podvlakom (_) ili znakom za dodavanje (+)
  3. Imena ne mogu biti. ili ..
  4. Nazivi indeksa ne mogu sadržavati posebne znakove kao što su: , /, *,?,,, |, `(Razmak), ,, #
  5. Duljina naziva indeksa mora biti manja od 255 bajtova. Višebajtni znakovi računat će se u ukupnu duljinu naziva indeksa. Na primjer, ako jedan znak ima 8 bajtova, ukupna preostala duljina imena je 255 - 8
  6. U najnovijoj verziji Elasticsearch imena koja počinju s. rezervirani su za skrivene indekse i interne indekse koje koriste dodaci Elasticsearch.

Kako stvoriti tijelo indeksa

Kada koristite PUT zahtjev za stvaranje indeksa, možete proslijediti različite argumente koji definiraju postavke za indeks koji želite stvoriti. Vrijednosti koje možete navesti u tijelu uključuju:

  • Pseudonimi: Navodi pseudonime za indeks koji želite stvoriti; ovaj parametar nije obavezan.
  • Postavke: Ovo definira mogućnosti konfiguracije za indeks koji želite stvoriti. Ako ne navedete bilo koji parametar, indeks se stvara pomoću zadanih konfiguracija.
  • Mapiranja: Ovo definira mapiranje polja u indeksu. Specifikacije koje možete uključiti u mapiranja uključuju:
    • Naziv polja
    • Tip podataka
    • Parametar preslikavanja

Za primjer stvaranja indeksa s konfiguracijama tijela, razmotrite donji zahtjev:

PUT /single_index_with_body
{
'postavke': {
'number_of_shards': 2,
'broj_replikata': 2
},
preslikavanja: {
'Svojstva': {
'field1': {'type': 'object'}
}
}
}

Za zahtjev ekvivalentan cURL -u:

curl -XPUT 'http: // localhost: 9200/single_index_with_body' -H 'Content -Type: application/json' -d '{' settings ': {' number_of_shards ': 2,' number_of_replicas ': 2},' preslikavanja ' : {'properties': {'field1': {'type': 'object'}}}} '

Gornji zahtjev stvara novi indeks s imenom single_index_with_body s 2 broja ulomaka i 2 replike. Također stvara mapiranje s poljem imena field1 i upisuje kao JSON objekt.

Nakon što pošaljete zahtjev, dobit ćete odgovor sa statusom zahtjeva kao:

{
priznato: istina,
'shards_acknowledged': istina,
'index': 'single_index_with_body'
}

Potvrđeno pokazuje je li indeks uspješno kreiran u klasteru, dok shards_acknowledged pokazuje je li potreban broj kopija ulomaka pokrenut za svaki ulomak u navedenom indeksu prije isteka vremena.

Kako pregledati indeks Elasticsearch

Da biste vidjeli podatke o indeksu koji ste stvorili, upotrijebite zahtjev sličan zahtjevu za stvaranje indeksa, ali upotrijebite HTTP metodu umjesto PUT -a kao:

GET /single_index_with_body

Za cURL,

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

Ova naredba će vam dati detaljne informacije o traženom indeksu kao:

{
'single_index_with_body': {
'alias': {},
'preslikavanja': {
'Svojstva' : {
'polje1': {
'type': 'object'
}
}
},
'postavke': {
'indeks': {
'usmjeravanje': {
'alokacija': {
'uključi': {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'provided_name': 'single_index_with_body',
'creation_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'verzija': {
'created': '7100299'
}
}
}
}
}

Zaključak

Ovaj vodič raspravljao je o tome kako raditi s Elasticsearch -om na stvaranju indeksa API -ja za stvaranje novih indeksa. Također smo razgovarali o tome kako stvoriti prikladna imena za indekse i konfiguracijske postavke.

Pomoću ovog vodiča sada možete stvarati i pregledavati indekse pomoću Elasticsearch API -ja.