Tässä pikaoppaassa tarkastelemme Elasticsearchia ja erityisesti sitä, miten luodaan indeksejä Elasticsearch-moottoriin. Vaikka et tarvitse kattavaa tietoa ELK-pinoista tämän opetusohjelman seuraamiseksi, seuraavien aiheiden perustiedot voivat olla hyödyllisiä:
- Erityisesti päätelaitteen avulla cURL
- Perustiedot API: sta ja JSON: sta
- HTTP-pyynnön tekeminen
MERKINTÄ: Tässä opetusohjelmassa oletetaan myös, että Elasticsearch on asennettu ja käynnissä järjestelmässäsi.
Mitä ovat elasticsearch-indeksit?
Elasticsearch-hakemisto on kokoelma asiaan liittyviä JSON-asiakirjoja yksinkertaistamatta tai yksinkertaistamatta asioita.
Kuten edellisessä viestissä mainittiin, Elasticsearch-indeksit ovat JSON-objekteja, joita pidetään Elasticsearchin tallennustilan perusyksikkönä. Nämä liittyvät JSON-asiakirjat tallennetaan yhteen yksikköön, joka muodostaa hakemiston. Ajattele Elasticsearch-dokumentteja taulukoina relaatiotietokannassa.
Liitetään Elasticsearch-hakemisto tietokantaan SQL-maailmassa.
- MySQL => Tietokannat => Taulukot => Sarakkeet / rivit
- Elasticsearch => Indeksit => Tyypit => JSON-dokumentit, joilla on ominaisuudet
Kuinka luoda Elasticsearch-hakemisto
Elasticsearch käyttää tehokkaan ja intuitiivisen REST-sovellusliittymän paljastamaan palvelunsa. Tämän toiminnon avulla voit käyttää HTTP-pyyntöjä toimintojen suorittamiseen Elasticsearch-klusterille. Siksi käytämme Create index API: ta uuden indeksin luomiseen.
Tässä oppaassa käytämme cURL: ää pyyntöjen lähettämiseen ja eheyden ja käytettävyyden säilyttämiseen kaikille käyttäjille. Jos kuitenkin kohtaat virheitä cURL: n kanssa, harkitse Kibana Consolen käyttöä.
Syntaksi uuden hakemiston luomiseen Elasticsearch-klusteriin on:
PUT /Hakemiston luominen edellyttää, että siirrät indeksin nimen ilman muita parametreja, mikä luo hakemiston oletusasetuksilla.
Voit määrittää myös indeksin eri ominaisuuksia, kuten hakemiston rungossa:
- Hakemiston asetukset
- Hakemiston aliakset
- Hakemistokenttien yhdistämiset
Indeksin nimi on pakollinen parametri; muuten saat virheilmoituksen URIL (/)
curl -X PUT “paikallinen isäntä: 9200”"error": "Virheellinen HTTP-menetelmä urille [/] ja menetelmä [PUT], sallittu: [POISTA, HEAD, GET]", "status": 405
Jos haluat luoda uuden hakemiston nimellä single_index, välitämme pyynnön:
PUT / single_indexKäytä cURL-komentoa komennolla:
curl -X PUT "paikallinen isäntä: 9200 / single_index?nätti"Tämän komennon tulisi antaa HTTP Status 200 OK ja viesti kuitatulla: true as:
"Tunnustettu": totta,
"shards_acknowledged": totta,
"index": "single_index"
Yllä oleva pyyntö luo hakemiston single_index oletusasetuksilla, koska emme määrittäneet kokoonpanoja.
Hakemiston nimeämissäännöt
Kun luot nimiä Elasticsearch-indekseille, sinun on noudatettava seuraavia nimistandardeja:
- Hakemiston nimen on oltava vain pieniä kirjaimia.
- Indeksinimet eivät voi alkaa viivalla (-), alaviivalla (_) tai lisäysmerkillä (+)
- Nimet eivät voi olla . tai…
- Hakemistonimissä ei saa olla erikoismerkkejä, kuten: \, /, *, ?, ", <, >, |, "(välilyönti), ,, #
- Hakemistonimien pituuden on oltava alle 255 tavua. Monitavuiset merkit lasketaan hakemiston nimen kokonaispituudeksi. Esimerkiksi, jos yksittäisen merkin pituus on 8 tavua, nimen jäljellä oleva kokonaispituus on 255-8
- Elasticsearchin uusimmassa versiossa nimet, jotka alkavat a: lla . varataan piilotetuille ja sisäisille indekseille, joita Elasticsearch-laajennukset käyttävät.
Hakemiston rungon luominen
Kun PUT-pyyntöä käytetään indeksin luomiseen, voit välittää useita argumentteja, jotka määrittävät luodun hakemiston asetukset. Rungossa määritettäviä arvoja ovat:
- Aliakset: Määrittää aliaksien nimet luotavalle hakemistolle; tämä parametri on valinnainen.
- Asetukset: Tämä määrittelee luomasi hakemiston kokoonpanovaihtoehdot. Jos et määritä mitään parametreja, hakemisto luodaan oletusasetuksilla.
- Kartoitukset: Tämä määrittelee hakemiston kenttien kartoituksen. Määrityksiin voit sisällyttää kartoituksia:
- Kentän nimi
- Tietotyyppi
- Kartoitusparametri
Harkitse alla olevaa pyyntöä esimerkkinä kehon määrityksillä indeksin luomisesta:
PUT / single_index_with_body"asetukset":
"sirpaleiden lukumäärä": 2,
"Kopioiden lukumäärä": 2
,
"Kartoitukset":
"ominaisuudet":
"field1": "type": "object"
CURL-vastaavaa pyyntöä varten:
curl -XPUT "http: // localhost: 9200 / single_index_with_body" -H 'Sisältötyyppi: application / json' -d '"settings": "number_of_shards": 2, "number_of_replicas": 2, "mappings" : "properties": "field1": "type": "object" 'Yllä oleva pyyntö luo uuden hakemiston nimellä single_index_with_body, jossa on 2 kpl sirpaleita ja 2 kopiota. Se luo myös kartoituksen nimikentän1 kentällä ja kirjoita JSON-objektiksi.
Kun lähetät pyynnön, saat vastauksen, jonka tila on:
"Tunnustettu": totta,
"shards_acknowledged": totta,
"index": "single_index_with_body"
"Hyväksytty" osoittaa, luodaanko hakemisto onnistuneesti klusterissa, kun taas "shards_acknowledged" osoittaa, aloitettiinko vaadittu määrä sirukopioita kullekin määritetyn indeksin sirulle ennen aikakatkaisua.
Kuinka tarkastella Elasticsearch-hakemistoa
Jos haluat tarkastella luomasi indeksin tietoja, käytä samanlaista pyyntöä kuin hakemiston luomisessa, mutta käytä HTTP-menetelmää PUT: n sijaan seuraavasti:
GET / single_index_with_bodyCURL: lle,
käpristyminen -XGET “http: // localhost: 9200 / single_index_with_body”Tämä komento antaa sinulle yksityiskohtaisia tietoja pyydetystä hakemistosta seuraavasti:
"single_index_with_body":
"aliakset": ,
"kartoitukset":
"ominaisuudet":
"field1":
"type": "object"
,
"asetukset" :
"indeksi" :
"reititys":
"allokointi":
"sisältää" :
"_tier_preference": "data_content"
,
"number_of_shards": "2",
"edellyttäen_nimi": "single_index_with_body",
"creation_date": "1611045687208",
"replikoiden numero": "2",
"uuid": "3TRkO7xmQcSUOOGtb6pXVA",
"version":
"luotu": "7100299"
Johtopäätös
Tässä oppaassa keskusteltiin siitä, miten Elasticsearchin kanssa luodaan indeksisovellusliittymä uusien indeksien luomiseksi. Keskustelimme myös siitä, kuinka luoda sopivat nimet indekseille ja kokoonpanoasetuksille.
Tämän oppaan avulla voit nyt luoda ja tarkastella indeksejä Elasticsearch-sovellusliittymän avulla.