Selles lühikeses õpetuses vaatleme Elasticsearchi, täpsemalt seda, kuidas luua indekseid Elasticsearchi mootoris. Kuigi te ei vaja selle õpetuse järgimiseks põhjalikke teadmisi ELK -pinu kohta, võib järgmiste teemade põhiteadmine olla kasulik:
- Kasutades terminali, täpsemalt cURL
- Põhiteadmised API -de ja JSON -i kohta
- HTTP -päringu tegemine
MÄRGE: See õpetus eeldab ka seda, et teie arvutisse on Elasticsearch installitud ja käivitatud.
Mis on Elasticsearchi indeksid?
Elasticsearchi indeks on asju lihtsustamata või üleliia keeruliseks muutmata seotud JSON -dokumentide kogum.
Nagu eelmises postituses mainitud, on Elasticsearchi indeksid JSON -objektid, mida peetakse Elasticsearchi salvestusruumi põhiühikuks. Need seotud JSON -dokumendid salvestatakse ühte üksusesse, mis moodustab indeksi. Mõelge Elasticsearchi dokumentidele kui relatsiooniandmebaasi tabelitele.
Seostame Elasticsearchi indeksi andmebaasina SQL -maailmas.
- MySQL => Andmebaasid => Tabelid => Veerud/read
- Elasticsearch => Indeksid => Tüübid => Omadustega JSON -dokumendid
Elasticsearchi indeksi loomine
Elasticsearch kasutab oma teenuste tutvustamiseks võimsat ja intuitiivset REST API -d. See funktsioon võimaldab teil HTTP -päringuid kasutada Elasticsearchi klastri toimingute tegemiseks. Seetõttu kasutame uue indeksi loomiseks indeksi loomise API -d.
Selle juhendi jaoks kasutame päringute saatmiseks cURL -i ning säilitame kõigi kasutajate terviklikkuse ja kasutatavuse. Kui aga cURL -i kasutamisel ilmneb tõrkeid, kaaluge Kibana Console'i kasutamist.
Elasticsearchi klastris uue indeksi loomise süntaks on järgmine:
PUT /Indeksi loomiseks piisab, kui edastada indeksi nimi ilma muude parameetriteta, mis loob vaikeseadeid kasutades indeksi.
Samuti saate määrata indeksi erinevaid funktsioone, näiteks indeksi põhiosas.
- Indeksi seaded
- Indeksi varjunimed
- Indeksiväljade vastendused
Indeksinimi on nõutav parameeter; vastasel juhul kuvatakse viga URIL -i jaoks (/)
curl -X PUT localhost: 9200{'error': 'Vale HTTP -meetod uri [/] ja meetodi [PUT] jaoks, lubatud: [DELETE, HEAD, GET]', 'status': 405}
Uue indeksi loomiseks nimega single_index edastame taotluse:
PUT /single_indexCURL -i jaoks kasutage käsku:
curl -X PUT 'localhost: 9200/single_index? pretty'Selle käsu tulemuseks peaks olema HTTP olek 200 OK ja sõnum kinnitusega: true kui:
{tunnistas: tõsi,
'shards_acknowged': tõsi,
'index': 'single_index'
}
Ülaltoodud taotlus loob vaikeseadetega indeksi single_index, kuna me ei määranud ühtegi konfiguratsiooni.
Indeksi nimetamise reeglid
Elasticsearchi indeksite nimede loomisel peate järgima järgmisi nimetamisstandardeid:
- Indeksi nimi peab olema ainult väiketähtedega.
- Indeksinimed ei saa alata kriipsuga (-), alajooniga (_) ega lisamärgiga (+)
- Nimed ei saa olla. või ..
- Indeksinimed ei tohi sisaldada selliseid erimärke nagu: , /, *,?,,, |, '' (Tühik), ,, #
- Indeksinimede pikkus peab olema väiksem kui 255 baiti. Mitmebaidised märgid arvestatakse registrinime kogupikkuses. Näiteks kui üks märk on 8 baiti pikk, on nime ülejäänud pikkus 255–8
- Elasticsearchi uusimas versioonis on a -ga algavad nimed. on reserveeritud peidetud indeksitele ja siseindeksitele, mida kasutavad Elasticsearchi pistikprogrammid.
Kuidas luua indeksi keha
Kui kasutate indeksi loomiseks PUT -päringut, saate edastada erinevaid argumente, mis määravad loodava indeksi seaded. Väärtused, mida saate kehas määrata, on järgmised:
- Varjunimed: Määrab loodud indeksi varjunimed; see parameeter on valikuline.
- Seaded: See määrab loodud indeksi konfiguratsioonivalikud. Kui te parameetreid ei määra, luuakse indeks vaikeseadistuste abil.
- Kaardistused: See määratleb indeksi väljade kaardistamise. Kaardistustele lisatavad spetsifikatsioonid on järgmised:
- Välja nimi
- Andmetüüp
- Kaardistamise parameeter
Kehakonfiguratsioonidega indeksi loomise näite puhul kaaluge järgmist taotlust:
PUT /üksikindeks_kehaga{
'seaded': {
'raskete arv': 2,
'replica number': 2
},
kaardistused: {
'omadused': {
'field1': {'type': 'objekt'}
}
}
}
CURL -i samaväärse taotluse korral tehke järgmist.
curl -XPUT 'http: // localhost: 9200/single_index_with_body' -H 'Content -Type: application/json' -d '{' settings ': {' number_of_shards ': 2,' number_of_replicas ': 2},' kaardistused ' : {'omadused': {'väli1': {'tüüp': 'objekt'}}}} 'Ülaltoodud taotlus loob uue indeksi nimega single_index_with_body, millel on 2 kildude arvu ja 2 koopiat. Samuti loob see kaardistuse nimeväljaga1 ja sisestage see JSON -objektina.
Kui olete päringu saatnud, saate vastuse koos taotluse olekuga:
{tunnistas: tõsi,
'shards_acknowged': tõsi,
'index': 'single_index_with_body'
}
Kinnitatud näitab, kas indeks on klastris edukalt loodud, samas kui shards_acknowled näitab, kas määratud ajavahemiku iga killu jaoks käivitati nõutav arv kildude koopiaid enne aegumist.
Kuidas vaadata Elasticsearchi indeksit
Teie loodud indeksi kohta teabe vaatamiseks kasutage sarnast taotlust indeksi loomisega, kuid kasutage PUT asemel HTTP -meetodit järgmiselt:
GET /single_index_with_bodyCURL -i jaoks
curl -XGET http: // localhost: 9200/single_index_with_bodySee käsk annab teile üksikasjalikku teavet soovitud indeksi kohta järgmiselt:
{'single_index_with_body': {
'varjunimed': {},
'kaardistused': {
'omadused': {
'väli1': {
'type': 'objekt'
}
}
},
'seaded': {
'indeks': {
'marsruutimine': {
'eraldamine': {
'include': {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'nyújtott_nimi': 'single_index_with_body',
'creation_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'versioon': {
'loodud': '7100299'
}
}
}
}
}
Järeldus
Selles juhendis arutati, kuidas koostöös Elasticsearchiga luua indeksi API uute indeksite loomiseks. Samuti arutasime, kuidas luua indeksitele ja konfiguratsiooniseadetele sobivad nimed.
Selle juhendi abil saate nüüd indekseid luua ja vaadata, kasutades Elasticsearch API -d.