Šioje trumpoje pamokoje apžvelgsime „Elasticsearch“, ypač tai, kaip sukurti indeksus „Elasticsearch“ variklyje. Nors jums nereikia jokių išsamių žinių apie ELK kaminą, kad galėtumėte vadovautis šia pamoka, gali būti naudinga turėti pagrindinį supratimą apie šias temas:
- Naudojant terminalą, konkrečiai, cURL
- Pagrindinės API ir JSON žinios
- Pateikia HTTP užklausą
PASTABA: Šioje pamokoje taip pat daroma prielaida, kad jūsų sistemoje įdiegta ir veikia „Elasticsearch“.
Kas yra Elasticsearch indeksai?
„Elasticsearch“ indeksas, nepalengvindamas ir nepersunkdamas dalykų, yra susijusių JSON dokumentų rinkinys.
Kaip minėta ankstesniame įraše, „Elasticsearch“ indeksai yra JSON objektai, laikomi pagrindiniu „Elasticsearch“ saugojimo vienetu. Šie susiję JSON dokumentai saugomi viename indekse. Pagalvokite apie „Elasticsearch“ dokumentus kaip apie santykių duomenų bazės lenteles.
Susiekime „Elasticsearch“ indeksą kaip duomenų bazę SQL pasaulyje.
- MySQL => Duomenų bazės => Lentelės => Stulpeliai/eilutės
- Elasticsearch => Indeksai => Tipai => JSON dokumentai su ypatybėmis
Kaip sukurti Elasticsearch indeksą
„Elasticsearch“ savo paslaugoms atskleisti naudoja galingą ir intuityvią REST API. Ši funkcija leidžia naudoti HTTP užklausas operacijoms „Elasticsearch“ grupėje atlikti. Todėl, norėdami sukurti naują indeksą, naudosime kūrimo indekso API.
Šiame vadove mes naudosime cURL, kad išsiųstume užklausas ir išsaugotume visų vartotojų vientisumą ir patogumą. Tačiau jei su „CURL“ susiduriate su klaidomis, apsvarstykite galimybę naudoti „Kibana Console“.
Naujo indekso kūrimo sintaksė „Elasticsearch“ grupėje yra tokia:
PUT /Norėdami sukurti indeksą, jums tereikia perduoti indekso pavadinimą be kitų parametrų, o tai sukuria indeksą pagal numatytuosius nustatymus.
Taip pat galite nurodyti įvairias indekso funkcijas, pvz., Rodyklės tekste:
- Indekso nustatymai
- Indekso slapyvardžiai
- Rodyklės laukų susiejimas
Indekso pavadinimas yra būtinas parametras; priešingu atveju gausite klaidą dėl URIL (/)
curl -X PUT localhost: 9200{'error': 'Neteisingas HTTP metodas uri [/] ir metodui [PUT], leidžiamas: [DELETE, HEAD, GET]', 'status': 405}
Norėdami sukurti naują indeksą pavadinimu single_index, perduodame užklausą:
PUT /single_indexCURL naudokite komandą:
curl -X PUT 'localhost: 9200/single_index? pretty'Šios komandos rezultatas turėtų būti HTTP būsena 200 Gerai ir pranešimas su patvirtintu: tiesa kaip:
{pripažino: tiesa,
'shards_acknowledged': tiesa,
'index': 'single_index'
}
Aukščiau pateikta užklausa sukuria indeksą single_index su numatytais nustatymais, nes nenurodėme jokių konfigūracijų.
Rodyklės pavadinimo taisyklės
Kurdami „Elasticsearch“ indeksų pavadinimus, turite laikytis šių pavadinimo standartų:
- Indekso pavadinimas turi būti rašomas tik mažosiomis raidėmis.
- Rodyklės pavadinimai negali prasidėti brūkšneliu (-), pabraukimu (_) arba papildymo ženklu (+)
- Pavadinimai negali būti. arba ..
- Rodyklės pavadinimuose negali būti specialiųjų simbolių, tokių kaip: , /, *,?,,, |, '' (Tarpo simbolis), ,, #
- Rodyklės pavadinimų ilgis turi būti mažesnis nei 255 baitai. Kelių baitų simboliai bus įskaičiuoti į visą indekso pavadinimo ilgį. Pavyzdžiui, jei vienas simbolis yra 8 baitų ilgio, visas likęs vardo ilgis yra 255–8
- Naujausioje „Elasticsearch“ versijoje pavadinimai, prasidedantys a. yra skirti paslėptiems indeksams ir vidiniams indeksams, kuriuos naudoja „Elasticsearch“ papildiniai.
Kaip sukurti indeksą
Naudodami PUT užklausą kurdami indeksą, galite pateikti įvairius argumentus, kurie apibrėžia norimo sukurti indekso nustatymus. Vertės, kurias galite nurodyti tekste, yra šios:
- Pseudonimai: Nurodo norimo sukurti indekso slapyvardžius; šis parametras yra neprivalomas.
- Nustatymai: Tai apibrėžia norimo sukurti indekso konfigūravimo parinktis. Jei nenurodysite jokių parametrų, indeksas bus sukurtas naudojant numatytas konfigūracijas.
- Susiejimai: Tai apibrėžia indekso laukų susiejimą. Specifikacijos, kurias galite įtraukti į žemėlapius, yra šios:
- Lauko pavadinimas
- Duomenų tipas
- Susiejimo parametras
Jei norite sukurti rodyklės su kūno konfigūracijomis pavyzdį, apsvarstykite toliau pateiktą užklausą:
PUT /single_index_with_body{
'nustatymai': {
„kietųjų skaičius“: 2,
„Replikacijų skaičius“: 2
},
susiejimai: {
'ypatybės': {
'field1': {'type': 'objektas'}
}
}
}
CURL lygiavertei užklausai:
curl -XPUT 'http: // localhost: 9200/single_index_with_body' -H 'Turinio tipas: application/json' -d '{' settings ': {' number_of_shards ': 2,' number_of_replicas ': 2},' mappings ' : {'properties': {'field1': {'type': 'object'}}}} 'Aukščiau pateikta užklausa sukuria naują indeksą pavadinimu single_index_with_body su 2 skaičiais šukių ir 2 kopijomis. Taip pat sukuriamas susiejimas su vardo lauko 1 lauku ir įvedamas kaip JSON objektas.
Kai išsiųsite užklausą, gausite atsakymą su užklausos būsena:
{pripažino: tiesa,
'shards_acknowledged': tiesa,
'index': 'single_index_with_body'
}
Patvirtinta rodo, ar indeksas buvo sėkmingai sukurtas grupėje, o shards_acknowled - rodo, ar prieš pasibaigiant nustatytam indeksui, buvo paleistas reikiamas visų fragmentų kopijų skaičius.
Kaip peržiūrėti „Elasticsearch“ indeksą
Norėdami peržiūrėti informaciją apie jūsų sukurtą indeksą, naudokite panašią užklausą, kaip kuriant indeksą, tačiau vietoj PUT naudokite HTTP metodą kaip:
GET /single_index_with_bodyCURL,
curl -XGET http: // localhost: 9200/single_index_with_bodyŠi komanda suteiks jums išsamią informaciją apie prašomą indeksą:
{'single_index_with_body': {
„slapyvardžiai“: {},
'susiejimai': {
'ypatybės': {
'field1': {
'type': 'objektas'
}
}
},
'nustatymai': {
'indeksas' : {
'maršrutas': {
'paskirstymas': {
'include': {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'submitted_name': 'single_index_with_body',
'creation_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'versija': {
'sukurta': '7100299'
}
}
}
}
}
Išvada
Šiame vadove buvo aptarta, kaip dirbti su „Elasticsearch“ kuriant indekso API, kad būtų sukurti nauji indeksai. Taip pat aptarėme, kaip sukurti tinkamus indeksų ir konfigūracijos parametrų pavadinimus.
Naudodamiesi šiuo vadovu, dabar galite kurti ir peržiūrėti indeksus naudodami „Elasticsearch“ API.