Paano Lumikha ng Mga Elasticsearch Indice

How Create Elasticsearch Indices



Ang Elasticsearch ay isang bahagi ng tanyag na ELK stack na ginamit para sa log analytics at paghahanap. Ang mga application at system ay patuloy na nag-log ng data na maaaring maging lubhang kapaki-pakinabang para sa pag-troubleshoot at mga problema sa pagsubaybay. Gamit ang stack ng ELK, mayroon kang mga pinakamahusay na tool upang maisagawa ang mga gawaing ito nang mabilis at napakadali.

Sa mabilis na tutorial na ito, titingnan namin ang Elasticsearch, partikular kung paano lumikha ng mga indeks sa Elasticsearch engine. Bagaman hindi mo kailangan ng anumang komprehensibong kaalaman tungkol sa ELK stack upang sundin ang tutorial na ito, ang pagkakaroon ng isang pangunahing pag-unawa sa mga sumusunod na paksa ay maaaring maging kapaki-pakinabang:







  • Paggamit ng terminal, partikular, cURL
  • Pangunahing kaalaman sa mga API at JSON
  • Gumagawa ng Kahilingan sa HTTP

TANDAAN: Ipinapalagay din ng tutorial na ito na mayroon kang naka-install at tumatakbo na Elasticsearch sa iyong system.



Ano ang Mga Indeks ng Elasticsearch?

Nang walang labis na pagpapaliwanag o labis na pagpapalabas ng mga bagay, ang isang Elasticsearch index ay isang koleksyon ng mga kaugnay na dokumento ng JSON.



Tulad ng nabanggit sa isang nakaraang post, ang mga indeks ng Elasticsearch ay mga bagay na JSON-isinasaalang-alang ang batayang yunit ng imbakan sa Elasticsearch. Ang mga nauugnay na dokumento na JSON ay nakaimbak sa isang solong yunit na bumubuo sa isang index. Isipin ang mga dokumento ng Elasticsearch bilang mga talahanayan sa isang pamanggit na database.





Iugnay natin ang isang index ng Elasticsearch bilang isang database sa mundo ng SQL.

  • MySQL => Mga Databases => Mga Talahanayan => Mga Haligi / Rows
  • Elasticsearch => Mga indeks => Mga Uri => Mga Dokumentong JSON na may Mga Katangian

Paano Lumikha ng isang Elasticsearch Index

Gumagamit ang Elasticsearch ng isang malakas at intuitive na REST API upang mailantad ang mga serbisyo nito. Pinapayagan ka ng pagpapaandar na ito na gumamit ng mga kahilingan sa HTTP upang magsagawa ng mga pagpapatakbo sa Elasticsearch cluster. Samakatuwid, gagamitin namin ang lumikha ng index API upang lumikha ng isang bagong index.



Para sa gabay na ito, gagamitin namin ang cURL upang maipadala ang mga kahilingan at mapanatili ang integridad at kakayahang magamit para sa lahat ng mga gumagamit. Gayunpaman, kung nakatagpo ka ng mga error sa cURL, isaalang-alang ang paggamit ng Kibana Console.

Ang syntax para sa paglikha ng isang bagong index sa Elasticsearch cluster ay:

Ilagay /

Upang lumikha ng isang index, ang kailangan mo lang gawin ay ipasa ang pangalan ng index nang walang iba pang mga parameter, na lumilikha ng isang index gamit ang mga default na setting.

Maaari mo ring tukuyin ang iba't ibang mga tampok ng index, tulad ng sa index body:

  • Ang mga setting para sa index
  • Mga alias sa index
  • Mga pagmamapa para sa mga patlang ng index

Ang index name ay isang kinakailangang parameter; kung hindi man, makakakuha ka ng isang error para sa URIL (/)

curl -X PUT localhost: 9200
{'error': 'Maling pamamaraan ng HTTP para sa uri [/] at pamamaraan na [PUT], pinapayagan: [TANGGALIN, ULO, GET]', 'katayuan': 405}

Upang lumikha ng isang bagong index na may pangalang single_index, ipinapasa namin ang kahilingan:

PUT / solong_index

Para sa cURL, gamitin ang utos:

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

Ang utos na ito ay dapat magresulta sa HTTP Status 200 OK at isang mensahe na kinikilala: totoo bilang:

{
kinikilala: totoo,
'shards_acknowledged': totoo,
'index': 'single_index'
}

Ang kahilingan sa itaas ay lumilikha ng isang index single_index na may mga default na setting dahil hindi namin tinukoy ang anumang mga pagsasaayos.

Mga Panuntunan sa Pangalan ng Index

Kapag lumilikha ng mga pangalan para sa mga indeks ng Elasticsearch, dapat kang sumunod sa mga sumusunod na pamantayan sa pagbibigay ng pangalan:

  1. Ang pangalan ng index ay dapat nasa mas mababang kaso lamang.
  2. Ang mga pangalan ng index ay hindi maaaring magsimula sa isang dash (-), isang underscore (_), o isang karagdagan na pag-sign (+)
  3. Ang mga pangalan ay hindi maaaring. o ..
  4. Hindi maaaring isama sa mga pangalan ng index ang mga espesyal na character tulad ng: , /, *,?,, |, '(Character space), ,, #
  5. Ang haba ng mga pangalan ng index ay dapat mas mababa sa 255 bytes. Ang mga character na multi-byte ay bibilangin sa kabuuang haba ng pangalan ng index. Halimbawa, kung ang isang solong character ay 8 bytes ang haba, ang kabuuang natitirang haba ng pangalan ay 255 - 8
  6. Sa pinakabagong bersyon ng Elasticsearch, mga pangalan na nagsisimula sa a. ay nakalaan para sa mga nakatagong indeks at panloob na mga indeks na ginagamit ng mga plugin ng Elasticsearch.

Paano Lumikha ng isang Body ng Index

Kapag ginagamit ang kahilingan sa PUT upang lumikha ng isang index, maaari kang pumasa sa iba't ibang mga argumento na tumutukoy sa mga setting para sa index na nais mong likhain. Ang mga halagang maaari mong tukuyin sa katawan ay kasama ang:

  • Mga Alias: Tinutukoy ang mga pangalan ng alias para sa index na nais mong likhain; opsyonal ang parameter na ito.
  • Mga setting: Tinutukoy nito ang mga pagpipilian sa pagsasaayos para sa index na nais mong likhain. Kung nabigo kang tumukoy ng anumang mga parameter, nilikha ang index gamit ang mga default na pagsasaayos.
  • Mga pagmamapa: Tinutukoy nito ang pagmamapa para sa mga patlang sa index. Ang mga pagtutukoy na maaari mong isama sa mga pagmamapa ay kinabibilangan ng:
    • Ang pangalan ng patlang
    • Ang uri ng data
    • Ang parameter ng pagmamapa

Para sa isang halimbawa ng paglikha ng isang index na may mga pagsasaayos ng katawan, isaalang-alang ang kahilingan sa ibaba:

PUT / solong_index_with_body
{
'mga setting': {
'number_of_shards': 2,
'number_of_replicas': 2
},
mga pagmamapa: {
'ari-arian': {
'field1': {'type': 'object'}
}
}
}

Para sa isang katumbas na kahilingan sa cURL:

curl -XPUT 'http: // localhost: 9200 / single_index_with_body' -H 'Content-Type: application / json' -d '{' setting ': {' number_of_shards ': 2,' number_of_replicas ': 2},' mappings ' : {'assets': {'field1': {'type': 'object'}}}} '

Lumilikha ang kahilingan sa itaas ng isang bagong index na may pangalang single_index_with_body na may 2 bilang ng mga shard at 2 mga replika. Lumilikha din ito ng isang pagmamapa na may isang patlang ng pangalan na patlang1 at i-type bilang isang object na JSON.

Kapag naipadala mo na ang kahilingan, makakatanggap ka ng isang tugon sa katayuan ng kahilingan bilang:

{
kinikilala: totoo,
'shards_acknowledged': totoo,
'index': 'single_index_with_body'
}

Ipinapakita ng kinilala kung ang index ay matagumpay na nilikha sa kumpol, habang ang shards_acknowledged ay nagpapakita kung ang kinakailangang bilang ng mga shard copy ay nagsimula para sa bawat shard sa tinukoy na index bago mag-time out.

Paano Makita ang Elasticsearch Index

Upang matingnan ang impormasyon tungkol sa index na iyong nilikha, gumamit ng katulad na kahilingan sa paglikha ng isang index, ngunit gamitin ang pamamaraan na HTTP sa halip na PUT bilang:

GET / single_index_with_body

Para sa cURL,

curl -XGET http: // localhost: 9200 / single_index_with_body

Ang utos na ito ay magbibigay sa iyo ng detalyadong impormasyon tungkol sa hiniling na index bilang:

{
'single_index_with_body': {
'mga alias': {},
'mappings': {
'ari-arian' : {
'field1': {
'type': 'object'
}
}
},
'mga setting': {
'index': {
'pagruruta': {
'alokasyon' : {
'isama': {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'Provided_name': 'single_index_with_body',
'paglikha_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'bersyon': {
'nilikha': '7100299'
}
}
}
}
}

Konklusyon

Tinalakay ng gabay na ito kung paano gumana sa Elasticsearch upang lumikha ng index API upang lumikha ng mga bagong indeks. Tinalakay din namin kung paano lumikha ng mga angkop na pangalan para sa mga indeks at setting ng pagsasaayos.

Sa pamamagitan ng paggamit ng gabay na ito, maaari ka na ngayong lumikha at tumingin ng mga indeks gamit ang Elasticsearch API.