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à
Plugini 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
