Elasticsearch propose une variété de plugins qui vous permettent de personnaliser et d'améliorer des fonctionnalités telles que la recherche et l'analyse. Il existe de nombreux plugins créés par la communauté ainsi que les plugins officiels inclus dans le projet Elasticsearch. Ici, nous allons vous expliquer comment créer votre propre plug-in.
Les plugins Elasticsearch incluent Analysis Plugin et [Mapper Plugin](https: / /www.elastic.co/guide/en/elasticsearch/plugins/6.5/mapper.html) et ainsi de suite. Avant de créer votre propre plug-in, vous devez être clair sur les fonctionnalités que vous souhaitez ajouter à Elasticseach et quel type de plug-in est cette fonctionnalité.
Par exemple, si vous souhaitez améliorer la fonction de recherche en japonais, divisez-la avec Filtre d'analyse japonais (kuromoji). Si vous avez besoin de traiter davantage les jetons, vous devez créer votre propre plug-in d'analyse (filtre de jetons).
Il y a très peu d'informations sur les plugins homebrew Elasticsearch, très limités dans les versions japonaises et récentes.
GitHub propose également une variété de projets de plug-ins, mais seuls quelques-uns sont compatibles avec les versions plus récentes. Donc, tout d'abord, recherchez une implémentation de référence (code source) à partir des plugins officiels d'Elasticsearch (Core Plugins).
Si vous créez votre propre plug-in Analysis, reportez-vous au code source du plug-in dont le nom commence par ʻanalysis-`dans le référentiel suivant.
Les fichiers requis sont les quatre suivants.
pom.xml
plugin.xml
plugin-descriptor.properties
(Nom du plugin) Plugin.java
La classe Java du corps du plug, qui est construite, est chargée au démarrage.Au lieu d'écrire ces fichiers à partir de zéro, c'est une bonne idée de copier le projet de plug-in référencé, de vous assurer que la construction est réussie, puis de le personnaliser progressivement.
Par exemple, dans le elasticsearch-concatenation-token-filter que j'ai créé, c'est comme suit.
.
├── README.md
├── pom.xml
├── src
│ └── main
│ ├── assemblies
│ │ └── plugin.xml
│ ├── java
│ │ └── com
│ │ └── github
│ │ └── ryohashimoto
│ │ └── elasticsearch
│ │ ├── index
│ │ │ └── analysis
│ │ │ ├── ConcatenationTokenFilter.java
│ │ │ └── ConcatenationTokenFilterFactory.java
│ │ └── plugin
│ │ └── analysis
│ │ └── ConcatenationTokenFilterPlugin.java
| └── resources
| └── plugin-descriptor.properties
└── target
Lorsque le projet est prêt, implémentez le code source du plug-in en Java.
Là encore, les classes Java à implémenter font référence au code source des plugins existants.
Par exemple, elasticsearch-concatenation-token-filter implémente la classe TokenFilter et sa classe Factory.
ConcatenationTokenFilterPlugin.java
)public class ConcatenationTokenFilterPlugin extends Plugin implements AnalysisPlugin {
@Override
public Map<String, AnalysisProvider<TokenFilterFactory>> getTokenFilters() {
return singletonMap("concatenation", ConcatenationTokenFilterFactory::new);
}
}
ConcatenationTokenFilterFactory.java
)public class ConcatenationTokenFilterFactory extends AbstractTokenFilterFactory {
public ConcatenationTokenFilterFactory(IndexSettings indexSettings, Environment environment, String name, Settings settings) {
super(indexSettings, name, settings);
}
@Override
public TokenStream create(TokenStream tokenStream) {
return new ConcatenationTokenFilter(tokenStream);
}
}
ConcatenationTokenFilter.java
)public class ConcatenationTokenFilter extends TokenFilter {
...
}
Vérifiez le paramètre pom.xml
car vous devez faire correspondre la version d'Elasticsearch que vous utilisez lors de la création du plug-in avec la version d'Elasticsearch que vous installez.
Par exemple, si vous souhaitez utiliser Elasticsearch 6.5.0 pour la génération et l'installation:
<elasticsearch.version>6.5.0</elasticsearch.version>
Construisez avec la commande suivante.
mvn package
Si la sortie BUILD SUCCESS
est sortie comme indiqué ci-dessous, cela signifie que la construction a réussi.
[INFO] Building zip: /Users/ryo/Repos/elasticsearch-concatenation-token-filter/target/releases/elasticsearch-concatenation-token-filter-6.5.0.1.zip
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.833 s
[INFO] Finished at: 2018-12-09T23:22:14+09:00
[INFO] ------------------------------------------------------------------------
Utilisez la commande suivante pour effectuer l'installation.
elasticsearch-plugin install file://(Chemin du fichier du plug-in)
Dans la partie (plug file path)
ici, spécifiez le chemin du fichier ZIP produit par le mvn package
(la partie après leBuilding zip:
).
Si l'installation réussit, définissez-le en fonction du type de plug-in et essayez de l'utiliser.
Pour le plug-in Analysis, essayez de l'appliquer aux paramètres de l'analyseur pour vous assurer d'obtenir les bons résultats.
C'est facile, mais j'ai résumé comment créer et utiliser vous-même les plugins Elasticsearch. Je suis heureux que vous puissiez l'utiliser comme référence.
Recommended Posts