V tej hitri vadnici si bomo ogledali Elasticsearch, natančneje, kako ustvariti indekse v mehanizmu Elasticsearch. Čeprav za sledenje tej vadnici ne potrebujete celovitega znanja o ELK stacku, bi bilo koristno osnovno razumevanje naslednjih tem:
- Uporaba terminala, natančneje, cURL
- Osnovno znanje API-jev in JSON-a
- Izdelava HTTP zahteve
OPOMBA: Ta vadnica tudi predvideva, da imate Elasticsearch nameščen in zagnan v vašem sistemu.
Kaj so indeksi elastičnega iskanja?
Brez preveč poenostavljanja ali prekompliciranja stvari je indeks Elasticsearch zbirka povezanih dokumentov JSON.
Kot smo že omenili v prejšnjem prispevku, so indeksi Elasticsearch predmeti JSON in se štejejo za osnovno enoto shranjevanja v Elasticsearch. Ti povezani dokumenti JSON so shranjeni v eni enoti, ki tvori indeks. Dokumente Elasticsearch si predstavljajte kot tabele v relacijski bazi podatkov.
Povežimo indeks Elasticsearch kot bazo podatkov v svetu SQL.
- MySQL => Zbirke podatkov>> Tabele => Stolpci / vrstice
- Elasticsearch => Indeksi => Vrste => Dokumenti JSON z lastnostmi
Kako ustvariti indeks elastičnega iskanja
Elasticsearch za predstavitev svojih storitev uporablja zmogljiv in intuitiven REST API. Ta funkcionalnost vam omogoča uporabo zahtev HTTP za izvajanje operacij v gruči Elasticsearch. Zato bomo za ustvarjanje novega indeksa uporabili API za ustvarjanje indeksa.
V tem priročniku bomo uporabili cURL za pošiljanje zahtev ter ohranitev integritete in uporabnosti za vse uporabnike. Če pa naletite na napake pri curlu, razmislite o uporabi konzole Kibana.
Sintaksa za ustvarjanje novega indeksa v gruči Elasticsearch je:
PUT /Če želite ustvariti indeks, morate samo predati 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 za kazalo
- Indeksni vzdevki
- Preslikave za polja indeksa
Ime indeksa je obvezen parameter; v nasprotnem primeru boste dobili napako za URIL (/)
curl -X PUT “localhost: 9200”"error": "Napačna metoda HTTP za uri [/] in metoda [PUT], dovoljeno: [DELETE, HEAD, GET]", "status": 405
Če želite ustvariti nov indeks z imenom single_index, posredujemo zahtevo:
PUT / single_indexZa curl uporabite ukaz:
curl -X PUT "localhost: 9200 / single_index?lepa"Ta ukaz bi moral imeti za posledico status HTTP 200 OK in sporočilo s potrjenim: true kot:
"Priznano": res,
"odlomki_priznani": res,
"index": "single_index"
Zgornja zahteva ustvari indeks single_index s privzetimi nastavitvami, saj nismo podali nobene konfiguracije.
Pravila poimenovanja indeksa
Pri ustvarjanju imen za indekse Elasticsearch se morate držati naslednjih standardov poimenovanja:
- Ime indeksa mora biti samo z malimi črkami.
- Imena indeksov se ne morejo začeti s pomišljajem (-), podčrtajem (_) ali znakom seštevanja (+)
- Imena ne morejo biti . ali ..
- Imena indeksov ne smejo vsebovati posebnih znakov, kot so: \, /, *, ?, “, <, >, |, "(preslednica), ,, #
- Dolžina imen indeksov mora biti manjša od 255 bajtov. Večbajtni znaki bodo upoštevani v celotni dolžini imena indeksa. Če je na primer en znak dolg 8 bajtov, je skupna preostala dolžina imena 255 - 8
- V najnovejši različici Elasticsearch imena, ki se začnejo z . so rezervirani za skrite indekse in notranje indekse, ki jih uporabljajo vtičniki Elasticsearch.
Kako ustvariti indeksno telo
Ko za izdelavo indeksa uporabite zahtevo PUT, 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: Določa imena vzdevkov za indeks, ki ga želite ustvariti; ta parameter ni obvezen.
- Nastavitve: To določa možnosti konfiguracije za indeks, ki ga želite ustvariti. Če ne navedete 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 konfiguracijami telesa 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 kurlu:
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" 'Zgornja zahteva ustvari nov indeks z imenom single_index_with_body z dvema številkama drobcev in dvema replikama. Ustvari tudi preslikavo s poljem imena field1 in vnesite kot objekt JSON.
Ko pošljete zahtevo, boste prejeli odgovor s statusom zahteve:
"Priznano": res,
"odlomki_priznani": res,
"index": "single_index_with_body"
»Potrjeno« prikazuje, ali je bil indeks uspešno ustvarjen v gruči, medtem ko »shards_acknowledged« prikazuje, ali je bilo potrebno potrebno število kopij delcev zagnano za vsak del v določenem indeksu pred potekom časa.
Kako si ogledati indeks Elasticsearch
Če si želite ogledati podatke o indeksu, ki ste ga ustvarili, uporabite podobno zahtevo kot za ustvarjanje indeksa, vendar uporabite metodo HTTP namesto PUT kot:
GET / single_index_with_bodyZa 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": "objekt"
,
"nastavitve":
"indeks":
"usmerjanje":
"dodelitev":
"vključi":
"_tier_preference": "vsebina_podatkov"
,
"number_of_shards": "2",
"provided_name": "single_index_with_body",
"creation_date": "1611045687208",
"number_of_replicas": "2",
"uuid": "3TRkO7xmQcSUOOGtb6pXVA",
"različica":
"created": "7100299"
Zaključek
Ta priročnik je razpravljal o tem, kako z Elasticsearch ustvariti indeksni API za ustvarjanje novih indeksov. Razpravljali smo tudi o tem, kako ustvariti ustrezna imena za indekse in nastavitve konfiguracije.
Z uporabo tega vodnika lahko zdaj z API-jem Elasticsearch ustvarjate in si ogledujete indekse.