Com crear índexs Elasticsearch

How Create Elasticsearch Indices



Elasticsearch és una part de la popular pila ELK que s’utilitza per a l’anàlisi de registres i la cerca. Les aplicacions i els sistemes registren constantment dades que poden ser molt útils per a la resolució de problemes i el seguiment de problemes. Amb la pila ELK, disposeu de les millors eines per realitzar aquestes tasques de forma ràpida i senzilla.

En aquest tutorial ràpid, veurem Elasticsearch, específicament com crear índexs al motor Elasticsearch. Tot i que no necessiteu cap coneixement exhaustiu sobre la pila ELK per seguir aquest tutorial, pot ser avantatjós tenir una comprensió bàsica dels temes següents:







  • Utilitzant el terminal, específicament, cURL
  • Coneixements bàsics d’APIs i JSON
  • Fent una sol·licitud HTTP

NOTA: Aquest tutorial també suposa que teniu instal·lat i executant Elasticsearch al vostre sistema.



Què són els índexs d'Elasticsearch?

Sense simplificar o simplificar les coses, un índex Elasticsearch és una col·lecció de documents JSON relacionats.



Com es va esmentar en una publicació anterior, els índexs d'Elasticsearch són objectes JSON, considerats la unitat base d'emmagatzematge a Elasticsearch. Aquests documents JSON relacionats s’emmagatzemen en una sola unitat que forma un índex. Penseu en els documents d’Elasticsearch com a taules d’una base de dades relacional.





Relacionem un índex Elasticsearch com a base de dades al món SQL.

  • MySQL => Bases de dades => Taules => Columnes / files
  • Elasticsearch => Índexs => Tipus => Documents JSON amb propietats

Com es crea un índex Elasticsearch

Elasticsearch utilitza una API REST potent i intuïtiva per exposar els seus serveis. Aquesta funcionalitat us permet fer servir sol·licituds HTTP per realitzar operacions al clúster Elasticsearch. Per tant, utilitzarem l'API create index per crear un índex nou.



Per a aquesta guia, utilitzarem cURL per enviar les sol·licituds i preservar la integritat i la usabilitat de tots els usuaris. Tot i això, si teniu errors amb cURL, penseu en utilitzar Kibana Console.

La sintaxi per crear un índex nou al clúster Elasticsearch és:

POSA /

Per crear un índex, tot el que heu de fer és passar el nom de l’índex sense altres paràmetres, cosa que crea un índex mitjançant la configuració predeterminada.

També podeu especificar diverses funcions de l’índex, com ara al cos de l’índex:

  • La configuració de l'índex
  • Àlies d'índex
  • Assignacions de camps d'índex

El nom de l'índex és un paràmetre obligatori; en cas contrari, obtindreu un error per a l'URIL (/)

curl -X PUT localhost: 9200
{'error': 'Mètode HTTP incorrecte per a uri [/] i mètode [PUT], permès: [SUPR, HEAD, GET]', 'status': 405}

Per crear un índex nou amb el nom single_index, passem la sol·licitud:

PUT / single_index

Per a cURL, utilitzeu l'ordre:

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

Aquesta ordre hauria de donar com a resultat l'estat HTTP 200 OK i un missatge amb el reconeixement: true com:

{
reconegut: cert,
'shards_acknowledged': cert,
'index': 'single_index'
}

La sol·licitud anterior crea un índex single_index amb la configuració predeterminada, ja que no hem especificat cap configuració.

Regles de denominació d’índexs

Quan creeu noms per a índexs d'Elasticsearch, heu de complir els estàndards de denominació següents:

  1. El nom de l’índex només ha d’estar en minúscula.
  2. Els noms de l’índex no poden començar amb un guió (-), un guió baix (_) o un signe d’addició (+)
  3. Els noms no poden ser. o ..
  4. Els noms de l’índex no poden incloure caràcters especials com: , /, *,?,,, |, '(Caràcter espacial), ,, #
  5. La longitud dels noms d'índex ha de ser inferior a 255 bytes. Els caràcters de diversos bytes comptaran a la longitud total del nom de l’índex. Per exemple, si un sol caràcter té una longitud de 8 bytes, la longitud total restant del nom és de 255 a 8
  6. A l'última versió d'Elasticsearch, noms que comencen per. es reserven per als índexs ocults i els índexs interns utilitzats pels connectors Elasticsearch.

Com es crea un cos d'índex

Quan utilitzeu la sol·licitud PUT per crear un índex, podeu passar diversos arguments que defineixin la configuració de l'índex que voleu crear. Els valors que podeu especificar al cos inclouen:

  • Àlies: Especifica els noms d'àlies per a l'índex que voleu crear; aquest paràmetre és opcional.
  • Configuració: Això defineix les opcions de configuració de l'índex que voleu crear. Si no especifiqueu cap paràmetre, l'índex es crea mitjançant configuracions predeterminades.
  • Mapes: Això defineix l'assignació dels camps de l'índex. Les especificacions que podeu incloure als mapatges inclouen:
    • El nom del camp
    • El tipus de dades
    • El paràmetre de mapatge

Per obtenir un exemple de creació d'un índex amb configuracions corporals, tingueu en compte la sol·licitud següent:

PUT / single_index_with_body
{
'configuració': {
'number_of_shards': 2,
'number_of_replicas': 2
},
assignacions: {
'propietats': {
'field1': {'type': 'objecte'}
}
}
}

Per a una sol·licitud equivalent a CURL:

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

La sol·licitud anterior crea un índex nou amb el nom single_index_with_body amb 2 números de fragments i 2 rèpliques. També crea un mapatge amb un camp de nom field1 i escriu com a objecte JSON.

Un cop hàgiu enviat la sol·licitud, obtindreu una resposta amb l'estat de la sol·licitud com a:

{
reconegut: cert,
'shards_acknowledged': cert,
'index': 'single_index_with_body'
}

Reconegut mostra si l'índex s'ha creat correctament al clúster, mentre que shards_acknowledged mostra si s'ha iniciat el nombre requerit de còpies de fragments per a cada fragment de l'índex especificat abans del temps d'espera.

Com es visualitza l’índex d’Elasticsearch

Per veure la informació sobre l'índex que heu creat, utilitzeu una sol·licitud similar a la de crear un índex, però utilitzeu el mètode HTTP en lloc de PUT com:

GET / single_index_with_body

Per a CURL,

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

Aquesta ordre us proporcionarà informació detallada sobre l’índex sol·licitat com:

{
'single_index_with_body': {
'àlies': {},
'mapatges': {
'propietats': {
'camp1': {
'type': 'objecte'
}
}
},
'configuració': {
'índex': {
'encaminament': {
'assignació': {
'incloure' : {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'provided_name': 'single_index_with_body',
'creation_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'versió': {
'created': '7100299'
}
}
}
}
}

Conclusió

En aquesta guia es va parlar de com treballar amb Elasticsearch per crear API d’índexs per crear índexs nous. També vam parlar de com crear noms adequats per als índexs i els paràmetres de configuració.

En utilitzar aquesta guia, ara podeu crear i visualitzar índexs mitjançant l’API Elasticsearch.