Kako ustvariti indekse elastičnega iskanja

How Create Elasticsearch Indices



Elasticsearch je del priljubljenega sklada ELK, ki se uporablja za analizo dnevnikov in iskanje. Aplikacije in sistemi nenehno beležijo podatke, ki so lahko zelo koristni za odpravljanje težav in sledenje težavam. Z uporabo sklada ELK imate najboljša orodja za hitro in zelo enostavno izvajanje teh nalog.

V tej kratki vadnici bomo pogledali Elasticsearch, natančneje, kako ustvariti indekse v motorju Elasticsearch. Čeprav za izvedbo te vadnice ne potrebujete obsežnega znanja o nizu ELK, bi bilo dobro, če bi razumeli naslednje teme:







  • Z uporabo terminala, natančneje, cURL
  • Osnovno znanje o API -jih in JSON -u
  • Pošiljanje zahteve HTTP

OPOMBA: Ta vadnica tudi predvideva, da imate v sistemu nameščen in zagnan Elasticsearch.



Kaj so indeksi elastičnega iskanja?

Ne da bi stvari preveč poenostavili ali zakomplicirali, je indeks Elasticsearch zbirka sorodnih dokumentov JSON.



Kot je bilo omenjeno v prejšnji objavi, so indeksi Elasticsearch predmeti JSON - veljajo za osnovno enoto za shranjevanje v Elasticsearch. Ti povezani dokumenti JSON so shranjeni v eni sami enoti, ki sestavlja indeks. Na dokumente Elasticsearch pomislite kot na tabele v relacijski bazi podatkov.





Povežimo indeks Elasticsearch kot bazo podatkov v svetu SQL.

  • MySQL => Podatkovne baze => Tabele => Stolpci/vrstice
  • Elasticsearch => Indeksi => Vrste => Dokumenti JSON z lastnostmi

Kako ustvariti indeks elastičnega iskanja

Elasticsearch uporablja močan in intuitiven API REST za razkrivanje svojih storitev. Ta funkcija vam omogoča uporabo zahtev HTTP za izvajanje operacij v gruči Elasticsearch. Zato bomo za ustvarjanje novega indeksa uporabili API za ustvarjanje indeksa.



Za ta priročnik bomo uporabili cURL za pošiljanje zahtev in ohranili integriteto in uporabnost za vse uporabnike. Če pa pri cURL naletite na napake, razmislite o uporabi konzole Kibana.

Sintaksa za ustvarjanje novega indeksa v gruči Elasticsearch je:

PUT /

Če želite ustvariti indeks, morate le prenesti ime indeksa brez drugih parametrov, kar ustvari indeks s privzetimi nastavitvami.

Določite lahko tudi različne funkcije indeksa, na primer v telesu indeksa:

  • Nastavitve indeksa
  • Indeksni vzdevki
  • Preslikave za indeksna polja

Ime indeksa je obvezen parameter; v nasprotnem primeru boste dobili napako za URIL (/)

curl -X PUT localhost: 9200
{'error': 'Nepravilna metoda HTTP za uri [/] in metoda [PUT], dovoljena: [DELETE, HEAD, GET]', 'status': 405}

Za izdelavo novega indeksa z imenom single_index posredujemo zahtevo:

PUT /single_index

Za cURL uporabite ukaz:

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

Ta ukaz bi moral imeti za posledico status HTTP 200 OK in sporočilo s potrjenim: true kot:

{
priznano: res,
'shards_acknowledged': res,
'index': 'single_index'
}

Zgornja zahteva ustvarja indeks single_index s privzetimi nastavitvami, saj nismo podali nobenih konfiguracij.

Pravila poimenovanja indeksa

Pri ustvarjanju imen za indekse Elasticsearch se morate držati naslednjih standardov poimenovanja:

  1. Ime indeksa mora biti samo z malimi črkami.
  2. Imena indeksov se ne morejo začeti s pomišljajem (-), podčrtajem (_) ali znakom za dodajanje (+)
  3. Imena ne morejo biti. ali ..
  4. Imena indeksov ne smejo vsebovati posebnih znakov, kot so: , /, *,?,,, |, `(Presledek), ,, #
  5. Dolžina imen indeksov mora biti manjša od 255 bajtov. Večbajtni znaki bodo šteli v skupno dolžino imena indeksa. Če je na primer en znak dolg 8 bajtov, je skupna preostala dolžina imena 255 - 8
  6. V najnovejši različici programa Elasticsearch so imena, ki se začnejo z. so rezervirani za skrite indekse in notranje indekse, ki jih uporabljajo vtičniki Elasticsearch.

Kako ustvariti indeksno telo

Pri uporabi zahteve PUT za ustvarjanje indeksa lahko posredujete različne argumente, ki določajo nastavitve indeksa, ki ga želite ustvariti. Vrednosti, ki jih lahko določite v telesu, vključujejo:

  • Vzdevki: Podaja imena vzdevkov za indeks, ki ga želite ustvariti; ta parameter ni obvezen.
  • Nastavitve: To določa konfiguracijske možnosti za indeks, ki ga želite ustvariti. Če ne podate nobenih parametrov, se indeks ustvari s privzetimi konfiguracijami.
  • Preslikave: To definira preslikavo polj v indeksu. Specifikacije, ki jih lahko vključite v preslikave, vključujejo:
    • Ime polja
    • Vrsta podatkov
    • Parameter preslikave

Za primer ustvarjanja indeksa s telesnimi konfiguracijami upoštevajte spodnjo zahtevo:

PUT /single_index_with_body
{
'nastavitve': {
'number_of_shards': 2,
'number_of_replicas': 2
},
preslikave: {
'lastnosti': {
'field1': {'type': 'object'}
}
}
}

Za zahtevo, enakovredno 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},' preslikave ' : {'properties': {'field1': {'type': 'object'}}}} '

Zgornja zahteva ustvari nov indeks z imenom single_index_with_body z 2 števili delcev in 2 replikama. Ustvari tudi preslikavo z imenom polja field1 in vnese kot objekt JSON.

Ko pošljete zahtevo, boste prejeli odgovor s stanjem zahteve:

{
priznano: res,
'shards_acknowledged': res,
'index': 'single_index_with_body'
}

Priznano prikazuje, ali je bil indeks uspešno ustvarjen v gruči, medtem ko shards_acknowledged prikazuje, ali je bilo za vsako drobce v podanem indeksu pred časovno omejitvijo zagnano zahtevano število kopij drobcev.

Kako si ogledati indeks Elasticsearch

Če si želite ogledati informacije o indeksu, ki ste ga ustvarili, uporabite podobno zahtevo kot pri ustvarjanju indeksa, vendar uporabite metodo HTTP namesto PUT kot:

GET /single_index_with_body

Za cURL,

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

Ta ukaz vam bo dal podrobne informacije o zahtevanem indeksu kot:

{
'single_index_with_body': {
'vzdevki': {},
'preslikave': {
'lastnosti': {
'field1': {
'type': 'object'
}
}
},
'nastavitve': {
'index': {
'usmerjanje': {
'allocation': {
'include': {
'_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ček

Ta priročnik je razpravljal o tem, kako v sodelovanju z Elasticsearch ustvariti indeks API za ustvarjanje novih indeksov. Govorili smo tudi o tem, kako ustvariti ustrezna imena za indekse in nastavitve konfiguracije.

S tem priročnikom lahko zdaj ustvarite in si ogledate indekse z uporabo Elasticsearch API.