Šajā ātrajā apmācībā mēs apskatīsim Elasticsearch, jo īpaši to, kā izveidot indeksus Elasticsearch motorā. Lai gan, lai sekotu šai apmācībai, jums nav nepieciešamas visaptverošas zināšanas par ELK steku, varētu būt noderīgi izprast šīs tēmas:
- Izmantojot termināli, konkrēti, cURL
- Pamatzināšanas par API un JSON
- HTTP pieprasījuma veikšana
PIEZĪME: Šajā apmācībā arī tiek pieņemts, ka jūsu sistēmā ir instalēta un darbojas Elasticsearch.
Kas ir Elasticsearch indeksi?
Nepārspīlējot un nesarežģot lietas, Elasticsearch indekss ir saistīto JSON dokumentu kolekcija.
Kā minēts iepriekšējā ziņojumā, Elasticsearch indeksi ir JSON objekti, kas tiek uzskatīti par Elasticsearch krātuves pamatvienību. Šie saistītie JSON dokumenti tiek glabāti vienā vienībā, kas veido indeksu. Iedomājieties Elasticsearch dokumentus kā tabulas relāciju datu bāzē.
Saistīsim Elasticsearch indeksu kā datu bāzi SQL pasaulē.
- MySQL => datu bāzes => tabulas => kolonnas / rindas
- Elasticsearch => Indeksi => Veidi => JSON dokumenti ar rekvizītiem
Kā izveidot Elasticsearch indeksu
Elasticsearch izmanto spēcīgu un intuitīvu REST API, lai atklātu savus pakalpojumus. Šī funkcionalitāte ļauj izmantot HTTP pieprasījumus, lai veiktu operācijas Elasticsearch klasterī. Tāpēc, lai izveidotu jaunu indeksu, mēs izmantosim index index API.
Šajā ceļvedī mēs izmantosim cURL, lai nosūtītu pieprasījumus un saglabātu integritāti un lietojamību visiem lietotājiem. Tomēr, ja rodas kļūdas ar cURL, apsveriet iespēju izmantot Kibana Console.
Sintakse jauna indeksa izveidošanai Elasticsearch klasterī ir šāda:
PUT /Lai izveidotu indeksu, jums tikai jānodod indeksa nosaukums bez citiem parametriem, kas izveido indeksu, izmantojot noklusējuma iestatījumus.
Varat arī norādīt dažādas indeksa funkcijas, piemēram, indeksa pamattekstā:
- Indeksa iestatījumi
- Indeksa aizstājvārdi
- Kartes indeksu laukiem
Indeksa nosaukums ir obligāts parametrs; pretējā gadījumā jūs saņemsit kļūdu par URIL (/)
čokurošanās -X PUT “localhost: 9200”"error": "Nepareiza HTTP metode uri [/] un metodei [PUT], atļauta: [DELETE, HEAD, GET]", "status": 405
Lai izveidotu jaunu indeksu ar nosaukumu single_index, mēs nododam pieprasījumu:
PUT / single_indexCURL izmantojiet komandu:
čokurošanās -X PUT "localhost: 9200 / single_index?glīts "Šīs komandas rezultātam vajadzētu būt HTTP statusam 200 OK un ziņojumam ar apstiprinājumu: true kā:
“Atzīts”: taisnība,
"shards_acknowledged": taisnība,
"index": "single_index"
Iepriekš minētais pieprasījums izveido indeksu single_index ar noklusējuma iestatījumiem, jo mēs nenorādījām nekādas konfigurācijas.
Indeksa nosaukšanas noteikumi
Veidojot Elasticsearch indeksu nosaukumus, jums jāievēro šādi nosaukuma standarti:
- Indeksa nosaukumam jābūt tikai ar mazajiem burtiem.
- Indeksa nosaukumus nevar sākt ar domuzīmi (-), pasvītrojumu (_) vai papildinājuma zīmi (+)
- Vārdi nevar būt . vai…
- Indeksa nosaukumos nedrīkst būt īpašas rakstzīmes, piemēram: \, /, *, ?, “, <, >, |, "(atstarpes raksturs), ,, #
- Indeksa nosaukumu garumam jābūt mazākam par 255 baitiem. Vairāku baitu rakstzīmes tiks skaitītas kopējā indeksa nosaukuma garumā. Piemēram, ja vienas rakstzīmes garums ir 8 baiti, nosaukuma kopējais atlikušais garums ir 255–8
- Elasticsearch jaunākajā versijā nosaukumi, kas sākas ar a . ir rezervēti slēptajiem indeksiem un iekšējiem indeksiem, kurus izmanto Elasticsearch spraudņi.
Kā izveidot indeksu pamattekstu
Izmantojot PUT pieprasījumu indeksa izveidei, varat nodot dažādus argumentus, kas nosaka izveidojamā indeksa iestatījumus. Vērtības, kuras varat norādīt pamattekstā, ietver:
- Pseidonīmi: Norāda izveidotā indeksa aizstājvārdus; šis parametrs nav obligāts.
- Iestatījumi: Tas nosaka izveidojamā indeksa konfigurācijas opcijas. Ja neizdodas norādīt parametrus, indekss tiek izveidots, izmantojot noklusējuma konfigurācijas.
- Kartējumi: Tas nosaka indeksēšanas lauku kartēšanu. Kartēs iekļautās specifikācijas ietver:
- Lauka nosaukums
- Datu tips
- Kartēšanas parametrs
Piemēram, kā izveidot indeksu ar ķermeņa konfigurācijām, apsveriet tālāk minēto pieprasījumu:
PUT / single_index_with_body"iestatījumi":
"skaita_skaidras": 2,
"Kopiju skaits": 2
,
“Kartējumi”:
"īpašības":
"field1": "type": "object"
CURL līdzvērtīgam pieprasījumam
čokurošanās -XPUT "http: // localhost: 9200 / single_index_with_body" -H 'Content-Type: application / json' -d '"settings": "number_of_shards": 2, "number_of_replicas": 2, "kartējumi" : "īpašības": "lauks1": "tips": "objekts" 'Iepriekš minētais pieprasījums izveido jaunu indeksu ar nosaukumu single_index_with_body ar 2 gabaliņiem skaidiņu un 2 kopijām. Tas arī izveido kartēšanu ar lauka nosaukumu field1 un tipu kā JSON objektu.
Pēc pieprasījuma nosūtīšanas jūs saņemsit atbildi ar pieprasījuma statusu kā:
“Atzīts”: taisnība,
"shards_acknowledged": taisnība,
"index": "single_index_with_body"
“Apstiprināts” parāda, vai indekss tika veiksmīgi izveidots klasterī, savukārt “shards_acknowledged” parāda, vai katram no norādītajā rādītājā esošajiem fragmentiem pirms taimauta tika sākts nepieciešamais skaidu kopiju skaits.
Kā apskatīt Elasticsearch indeksu
Lai skatītu informāciju par izveidoto indeksu, izmantojiet līdzīgu pieprasījumu kā indeksa izveidei, bet PUT vietā izmantojiet HTTP metodi kā:
GET / single_index_with_bodyPar cURL,
čokurošanās -XGET “http: // localhost: 9200 / single_index_with_body”Šī komanda sniegs jums detalizētu informāciju par pieprasīto indeksu kā:
"single_index_with_body":
"aizstājvārdi": ,
"kartējumi":
"īpašības":
"field1":
"type": "object"
,
"iestatījumi" :
"rādītājs":
"maršrutēšana":
"sadalīšana" :
"iekļaut":
"_tier_preference": "data_content"
,
"skaita_skaidras": "2",
"nosacījums_nosaukums": "viens_indekss_ar_body",
"creation_date": "1611045687208",
"Repliku skaits": "2",
"uuid": "3TRkO7xmQcSUOOGtb6pXVA",
"versija":
"izveidots": "7100299"
Secinājums
Šajā rokasgrāmatā tika apspriests, kā strādāt ar Elasticsearch, lai izveidotu indeksa API, lai izveidotu jaunus indeksus. Mēs arī apspriedām, kā izveidot piemērotus nosaukumus indeksiem un konfigurācijas iestatījumiem.
Izmantojot šo rokasgrāmatu, tagad varat izveidot un skatīt indeksus, izmantojot Elasticsearch API.