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
library
amb 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
articles
amb un analitzador personalitzat que:- Utilitzi el tokenitzador
whitespace
. - Inclogui els filtres
lowercase
istop
(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