Els plugins personalitzats a Elasticsearch permeten estendre les funcionalitats natives del sistema per adaptar-lo a necessitats específiques. En aquest tema, aprendrem com crear, instal·lar i gestionar plugins personalitzats a Elasticsearch.
Continguts
Introducció als Plugins
Els plugins són components addicionals que es poden afegir a Elasticsearch per proporcionar funcionalitats addicionals. Alguns exemples de plugins inclouen connectors per a bases de dades, analitzadors de text personalitzats, i extensions per a la seguretat.
Avantatges dels Plugins
- Extensibilitat: Permeten afegir noves funcionalitats sense modificar el codi base d'Elasticsearch.
- Modularitat: Faciliten la gestió de funcionalitats addicionals de manera independent.
- Personalització: Poden ser dissenyats per satisfer necessitats específiques de l'usuari o de l'aplicació.
Estructura d'un Plugin
Un plugin d'Elasticsearch té una estructura específica que ha de seguir per ser reconegut i utilitzat pel sistema. A continuació es mostra l'estructura bàsica d'un plugin:
my-plugin/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── myplugin/ │ │ │ └── MyPlugin.java │ │ └── resources/ │ │ └── plugin-descriptor.properties ├── build.gradle └── settings.gradle
Fitxers Clau
- MyPlugin.java: La classe principal del plugin que estendrà
Plugin
i implementarà les interfícies necessàries. - plugin-descriptor.properties: Fitxer de configuració que descriu el plugin.
- build.gradle: Fitxer de configuració de Gradle per a la construcció del plugin.
Creació d'un Plugin
Pas 1: Configuració del Projecte
Crea un nou projecte Gradle amb l'estructura esmentada anteriorment.
settings.gradle
build.gradle
plugins { id 'java' } repositories { mavenCentral() } dependencies { compileOnly 'org.elasticsearch:elasticsearch:7.10.0' } jar { manifest { attributes( 'Elasticsearch-Version': '7.10.0', 'Plugin-Class': 'org.myplugin.MyPlugin' ) } }
Pas 2: Implementació del Plugin
Crea la classe principal del plugin.
MyPlugin.java
package org.myplugin; import org.elasticsearch.plugins.Plugin; public class MyPlugin extends Plugin { // Implementació del plugin }
Pas 3: Descripció del Plugin
Crea el fitxer plugin-descriptor.properties
.
plugin-descriptor.properties
Instal·lació i Desinstal·lació de Plugins
Instal·lació
Per instal·lar un plugin, utilitza la següent comanda:
Desinstal·lació
Per desinstal·lar un plugin, utilitza la següent comanda:
Exemple Pràctic
A continuació, implementarem un plugin senzill que afegeix un nou tipus de camp personalitzat.
MyPlugin.java
package org.myplugin; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.plugins.MapperPlugin; import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.TextFieldMapper; import java.util.Map; import java.util.Collections; public class MyPlugin extends Plugin implements MapperPlugin { @Override public Map<String, Mapper.TypeParser> getMappers() { return Collections.singletonMap("my_custom_field", new TextFieldMapper.TypeParser()); } }
Aquest plugin afegeix un nou tipus de camp anomenat my_custom_field
que es comporta com un camp de text.
Exercicis Pràctics
-
Crear un Plugin de Salutació
- Crea un plugin que afegeixi un nou endpoint REST que retorni un missatge de salutació.
- Pista: Utilitza la interfície
RestHandler
.
-
Plugin d'Analitzador Personalitzat
- Implementa un plugin que afegeixi un nou analitzador de text personalitzat.
- Pista: Utilitza la interfície
AnalysisPlugin
.
Conclusió
En aquest tema, hem après què són els plugins personalitzats a Elasticsearch, com es poden crear i instal·lar, i hem vist un exemple pràctic d'implementació. Els plugins són una eina poderosa per estendre les capacitats d'Elasticsearch i adaptar-lo a necessitats específiques.
Amb aquesta base, estàs preparat per explorar i crear els teus propis plugins personalitzats per a Elasticsearch.
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