Kā izveidot elastīgās meklēšanas indeksus

How Create Elasticsearch Indices



Elasticsearch ir daļa no populārā ELK steka, ko izmanto žurnālu analīzei un meklēšanai. Lietojumprogrammas un sistēmas pastāvīgi reģistrē datus, kas var būt ļoti noderīgi problēmu novēršanai un izsekošanai. Izmantojot ELK steku, jums ir vislabākie rīki, lai ātri un ļoti viegli veiktu šos uzdevumus.

Šajā ātrajā apmācībā mēs apskatīsim Elasticsearch, īpaši to, kā izveidot indeksus Elasticsearch dzinējā. Lai gan jums nav vajadzīgas visaptverošas zināšanas par ELK steku, lai sekotu šai apmācībai, pamatzināšanas par šādām tēmām var būt izdevīgas:







  • Izmantojot termināli, konkrēti, cURL
  • Pamatzināšanas par API un JSON
  • HTTP pieprasījuma sastādīšana

PIEZĪME: Šajā apmācībā arī tiek pieņemts, ka jūsu sistēmā ir instalēta un darbojas Elasticsearch.



Kas ir elastīgās meklēšanas indeksi?

Nepārspīlējot un nepārveidojot lietas, Elasticsearch indekss ir saistītu JSON dokumentu kolekcija.



Kā minēts iepriekšējā ierakstā, Elasticsearch indeksi ir JSON objekti - tiek uzskatīti par Elasticsearch krātuves pamatvienību. Šie saistītie JSON dokumenti tiek glabāti vienā vienībā, kas veido indeksu. Domājiet par Elasticsearch dokumentiem kā tabulām 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 elastīgās meklēšanas 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 darbības Elasticsearch klasterī. Tāpēc mēs izmantosim indeksa izveides API, lai izveidotu jaunu indeksu.



Šajā rokasgrāmatā 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 cURL kļūdas, apsveriet iespēju izmantot Kibana konsoli.

Sintakse jauna indeksa izveidei Elasticsearch klasterī ir šāda:

PUT /

Lai izveidotu indeksu, viss, kas jums jādara, ir 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
  • Indeksa lauku kartēšana

Indeksa nosaukums ir obligāts parametrs; pretējā gadījumā jūs saņemsit kļūdu URIL (/)

čokurošanās -X PUT vietējais saimnieks: 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_index

CURL izmantojiet komandu:

curl -X PUT 'localhost: 9200/single_index? pretty'

Šīs komandas rezultāts ir HTTP statuss 200 OK un ziņojums ar apstiprinātu: true kā:

{
atzīts: taisnība,
'shards_acknowgedged': taisnība,
'index': 'single_index'
}

Iepriekš minētais pieprasījums izveido indeksu single_index ar noklusējuma iestatījumiem, jo ​​mēs neesam norādījuši nekādas konfigurācijas.

Indeksu nosaukšanas noteikumi

Veidojot Elasticsearch indeksu nosaukumus, jums jāievēro šādi nosaukumu standarti:

  1. Indeksa nosaukumam jābūt tikai mazajiem burtiem.
  2. Indeksa nosaukumi nevar sākties ar domuzīmi (-), pasvītrojumu (_) vai papildinājuma zīmi (+)
  3. Nosaukumi nevar būt. vai ..
  4. Indeksa nosaukumos nedrīkst ietvert īpašas rakstzīmes, piemēram: , /, *,?,,, |, '' (Atstarpes zīme), ,, #
  5. Indeksa nosaukumu garumam jābūt mazākam par 255 baitiem. Vairāku baitu rakstzīmes tiks ieskaitītas kopējā indeksa nosaukuma garumā. Piemēram, ja viena rakstzīme ir 8 baitu gara, kopējais atlikušais vārda garums ir 255–8
  6. Jaunākajā Elasticsearch versijā nosaukumi, kas sākas ar a. ir rezervēti slēptiem indeksiem un iekšējiem indeksiem, ko izmanto Elasticsearch spraudņi.

Kā izveidot indeksa korpusu

Izmantojot indeksa izveidošanai PUT pieprasījumu, varat nodot dažādus argumentus, kas nosaka izveidotā indeksa iestatījumus. Pamattekstā var norādīt šādas vērtības:

  • Pseidonīmi: Norāda izveidotā indeksa aizstājvārdus; šis parametrs nav obligāts.
  • Iestatījumi: Tas nosaka izveidotā indeksa konfigurācijas opcijas. Ja neizdodas norādīt nevienu parametru, indekss tiek izveidots, izmantojot noklusējuma konfigurācijas.
  • Kartējumi: Tas definē indeksa lauku kartēšanu. Specifikācijas, kuras varat iekļaut kartējumos, ietver:
    • Lauka nosaukums
    • Datu veids
    • Kartēšanas parametrs

Piemēram, lai izveidotu indeksu ar ķermeņa konfigurācijām, apsveriet tālāk norādīto pieprasījumu.

PUT /single_index_with_body
{
'iestatījumi': {
'cieto_grupu skaits': 2,
'repliku skaits': 2
},
kartējumi: {
'rekvizīti': {
'field1': {'type': 'objekts'}
}
}
}

CURL ekvivalentam pieprasījumam:

curl -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 ' : {'properties': {'field1': {'type': 'object'}}}} '

Iepriekšminētais pieprasījums izveido jaunu indeksu ar nosaukumu single_index_with_body ar 2 fragmentu skaitu un 2 replikām. Tas arī izveido kartējumu ar nosaukuma lauku1 un ierakstiet kā JSON objektu.

Pēc pieprasījuma nosūtīšanas jūs saņemsit atbildi ar pieprasījuma statusu:

{
atzīts: taisnība,
'shards_acknowgedged': taisnība,
'index': 'single_index_with_body'
}

Apstiprināts parāda, vai indekss ir veiksmīgi izveidots klasterī, bet shards_acknowled - parāda, vai pirms taimauta tika palaists nepieciešamais fragmentu kopiju skaits katrai noteiktā indeksa daļai.

Kā apskatīt Elasticsearch indeksu

Lai skatītu informāciju par jūsu izveidoto indeksu, izmantojiet līdzīgu pieprasījumu indeksa izveidei, bet izmantojiet HTTP metodi, nevis PUT kā:

GET /single_index_with_body

CURL,

čokurošanās -XGET http: // localhost: 9200/single_index_with_body

Šī komanda sniegs detalizētu informāciju par pieprasīto indeksu kā:

{
'single_index_with_body': {
'pseidonīmi': {},
'kartējumi': {
'rekvizīti': {
'lauks1': {
'type': 'objekts'
}
}
},
'iestatījumi' : {
'indekss': {
'maršruts': {
'sadalīšana' : {
'iekļaut': {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'nyújtott_name': 'single_index_with_body',
'creation_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'versija': {
'izveidots': '7100299'
}
}
}
}
}

Secinājums

Šajā rokasgrāmatā tika apspriests, kā sadarboties 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.