Introducció
En aquest tema, explorarem el concepte de mapeig i analitzadors a Elasticsearch. El mapeig defineix l'estructura dels documents emmagatzemats en un índex, mentre que els analitzadors processen el text per fer-lo cercable. Comprendre aquests conceptes és fonamental per optimitzar la cerca i l'emmagatzematge de dades a Elasticsearch.
Què és el Mapeig?
El mapeig és el procés de definir l'estructura dels documents en un índex. Això inclou especificar els tipus de dades per a cada camp, com ara text, nombre, data, etc. El mapeig també permet definir com es processaran i indexaran aquests camps.
Tipus de Dades Comuns
- text: Utilitzat per a camps que contenen text complet. Aquest tipus de camp és analitzat.
- keyword: Utilitzat per a camps que contenen valors exactes, com ara codis postals o identificadors. Aquest tipus de camp no és analitzat.
- integer: Utilitzat per a nombres enters.
- float: Utilitzat per a nombres amb decimals.
- date: Utilitzat per a dates.
- boolean: Utilitzat per a valors veritat (true/false).
Exemple de Mapeig
PUT /my_index
{
"mappings": {
"properties": {
"title": {
"type": "text"
},
"author": {
"type": "keyword"
},
"publish_date": {
"type": "date"
},
"price": {
"type": "float"
}
}
}
}En aquest exemple, creem un índex anomenat my_index amb un mapeig que defineix quatre camps: title, author, publish_date i price.
Què és un Analitzador?
Un analitzador és un component que processa el text per fer-lo cercable. Un analitzador típicament inclou tres components principals:
- Tokenitzador: Divideix el text en paraules o tokens.
- Filtres de Token: Modifiquen els tokens generats pel tokenitzador (per exemple, convertint-los a minúscules).
- Filtres de Caràcters: Modifiquen el text abans de la tokenització (per exemple, eliminant caràcters especials).
Analitzador Per Defecte
Elasticsearch utilitza un analitzador per defecte que inclou un tokenitzador de paraules i filtres de minúscules.
Exemple d'Analitzador Personalitzat
PUT /my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_custom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"asciifolding"
]
}
}
}
},
"mappings": {
"properties": {
"content": {
"type": "text",
"analyzer": "my_custom_analyzer"
}
}
}
}En aquest exemple, creem un analitzador personalitzat anomenat my_custom_analyzer que utilitza el tokenitzador estàndard i dos filtres: lowercase i asciifolding. Aquest analitzador s'aplica al camp content.
Exercicis Pràctics
Exercici 1: Crear un Índex amb Mapeig
- Crea un índex anomenat
libraryamb els següents camps:book_title(text)author_name(keyword)publication_year(integer)genre(keyword)
Solució
PUT /library
{
"mappings": {
"properties": {
"book_title": {
"type": "text"
},
"author_name": {
"type": "keyword"
},
"publication_year": {
"type": "integer"
},
"genre": {
"type": "keyword"
}
}
}
}Exercici 2: Crear un Analitzador Personalitzat
- Crea un índex anomenat
articlesamb un analitzador personalitzat que:- Utilitzi el tokenitzador
whitespace. - Inclogui els filtres
lowercaseistop(per eliminar paraules buides). - Aplica aquest analitzador al camp
body.
- Utilitzi el tokenitzador
Solució
PUT /articles
{
"settings": {
"analysis": {
"analyzer": {
"my_article_analyzer": {
"type": "custom",
"tokenizer": "whitespace",
"filter": [
"lowercase",
"stop"
]
}
}
}
},
"mappings": {
"properties": {
"body": {
"type": "text",
"analyzer": "my_article_analyzer"
}
}
}
}Resum
En aquesta secció, hem après sobre el mapeig i els analitzadors a Elasticsearch. Hem vist com definir l'estructura dels documents amb mapeigs i com processar el text amb analitzadors. També hem practicat la creació d'índexs amb mapeigs i analitzadors personalitzats. Aquests conceptes són fonamentals per optimitzar la cerca i l'emmagatzematge de dades a Elasticsearch. En el proper tema, explorarem les plantilles d'índex.
Curs d'Elasticsearch
Mòdul 1: Introducció a Elasticsearch
- Què és Elasticsearch?
- Instal·lant Elasticsearch
- Conceptes Bàsics: Nodes, Clústers i Índexs
- Arquitectura d'Elasticsearch
Mòdul 2: Començant amb Elasticsearch
Mòdul 3: Tècniques Avançades de Cerca
Mòdul 4: Modelatge de Dades i Gestió d'Índexs
Mòdul 5: Rendiment i Escalabilitat
- Optimitzant el Rendiment de la Cerca
- Escalant Elasticsearch
- Monitorització i Manteniment
- Còpia de Seguretat i Restauració
Mòdul 6: Seguretat i Control d'Accés
- Assegurant Elasticsearch
- Autenticació i Autorització d'Usuaris
- Control d'Accés Basat en Rols
- Auditoria i Compliment
Mòdul 7: Integracions i Ecosistema
- Elasticsearch amb Logstash
- Elasticsearch amb Kibana
- Elasticsearch amb Beats
- Elasticsearch amb Altres Eines
