Elasticsearch verfügt über eine Vielzahl von Plugins, mit denen Sie Funktionen wie Suche und Analyse anpassen und verbessern können. Es gibt viele Plugins, die von der Community erstellt wurden, sowie die offiziellen Plugins, die im Elasticsearch-Projekt enthalten sind. Hier erklären wir Ihnen, wie Sie Ihr eigenes Plug-In erstellen.
Zu den Elasticsearch-Plugins gehören Analyse-Plugin und [Mapper-Plugin](https: / /www.elastic.co/guide/en/elasticsearch/plugins/6.5/mapper.html) und so weiter. Bevor Sie Ihr eigenes Plug-In erstellen, müssen Sie sich darüber im Klaren sein, welche Funktionen Sie zu Elasticseach hinzufügen möchten und welche Art von Plug-In diese Funktion ist.
Wenn Sie beispielsweise die Suchfunktion auf Japanisch verbessern möchten, teilen Sie sie mit Japanischer (kuromoji) Analysefilter. Wenn Sie die erstellten Token weiter verarbeiten müssen, müssen Sie Ihr eigenes Analyse-Plug-In (Token-Filter) erstellen.
Es gibt nur sehr wenige Informationen zu Homebrew-Elasticsearch-Plugins, die in japanischen und neueren Versionen sehr begrenzt sind.
GitHub hat auch eine Vielzahl von Plug-In-Projekten, aber nur wenige sind mit neueren Versionen kompatibel. Suchen Sie zunächst nach einer Referenzimplementierung (Quellcode) aus den offiziellen Elasticsearch-Plugins (Core Plugins).
Wenn Sie ein eigenes Analyse-Plug-In erstellen, lesen Sie den Quellcode des Plug-Ins, dessen Name im folgenden Repository mit "Analyse" beginnt.
Die erforderlichen Dateien sind die folgenden vier.
pom.xml
plugin.xml
plugin-descriptor.properties
(Plugin Name) Plugin.java
Die Java-Klasse des Plug-Body, der erstellt wird, wird beim Start geladen.Anstatt diese Dateien von Grund auf neu zu schreiben, ist es eine gute Idee, das referenzierte Plug-In-Projekt zu kopieren, sicherzustellen, dass der Build erfolgreich ist, und es dann schrittweise anzupassen.
Im von mir erstellten elasticsearch-concatenation-token-filter sieht es beispielsweise wie folgt aus.
.
├── 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
Wenn das Projekt fertig ist, implementieren Sie den Quellcode des Plug-Ins in Java.
Auch hier beziehen sich die zu implementierenden Java-Klassen auf den Quellcode vorhandener Plugins.
Als Beispiel implementiert elasticsearch-concatenation-token-filter die TokenFilter-Klasse und ihre Factory-Klasse.
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 {
...
}
Überprüfen Sie die Einstellung "pom.xml", da Sie die Version von Elasticsearch, die Sie beim Erstellen des Plug-Ins verwenden, mit der Version von Elasticsearch abgleichen müssen, die Sie installieren.
Wenn Sie beispielsweise Elasticsearch 6.5.0 sowohl zum Erstellen als auch zum Installieren verwenden möchten:
<elasticsearch.version>6.5.0</elasticsearch.version>
Erstellen Sie mit dem folgenden Befehl.
mvn package
Wenn die Ausgabe "BUILD SUCCESS" wie unten gezeigt ausgegeben wird, bedeutet dies, dass der Build erfolgreich war.
[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] ------------------------------------------------------------------------
Verwenden Sie den folgenden Befehl, um die Installation durchzuführen.
elasticsearch-plugin install file://(Plugin-Dateipfad)
Geben Sie hier im Teil (Plug-File-Pfad)
den Pfad der ZIP-Datei an, die vom mvn-Paket
ausgegeben wird (der Teil nach dem Building zip:
).
Wenn die Installation erfolgreich ist, stellen Sie sie entsprechend der Art des Plug-Ins ein und versuchen Sie es zu verwenden.
Versuchen Sie, das Analyse-Plug-In auf die Analyseeinstellungen anzuwenden, um sicherzustellen, dass Sie die richtigen Ergebnisse erhalten.
Es ist einfach, aber ich habe zusammengefasst, wie Sie Elasticsearch-Plugins selbst erstellen und verwenden. Ich bin froh, wenn Sie es als Referenz verwenden können.
Recommended Posts