Für die Erstellung und Bereitstellung der Beispiele aus diesem Dokument wird die folgende Software von Drittanbietern benötigt:
Wenn Sie Microsoft Windows verwenden: Installieren Sie das Mindbreeze SDK, indem Sie MesSDKSetup.exe ausführen.
Wenn Sie Linux oder OSX verwenden: Entpacken Sie die Datei mes-devel-<version>.zip in einen Ordner Ihrer Wahl und fügen Sie den Ordner SDK/bin aus dem Archiv zu Ihrer Path-Variable hinzu.
Das Mindbreeze Software Development Toolkit enthält ein Werkzeug zum Generieren von Mindbreeze-Plugin-Projekten: mesjavaplugin.bat für Microsoft Windows-Installationen und mesjavaplugin.sh für Unix-basierte Systeme. Das Tool kann für die Generierung der folgenden Mindbreeze Erweiterungstypen verwendet werden:
Wenn das Werkzeug mesjavaplugin ohne Parameter aufgerufen wird, zeigt es seine Verwendung anhand von Beispielen an:
Der Parameter <name> ist der Name des Plugins. Das Projekt wird in einem Ordner mit dem Namen dieses Parameters in Kleinbuchstaben im aktuellen Pfad erstellt.
Der Parameter <base package> ist das Java-Paket, in dem die Quelldateien erstellt werden.
Führen Sie die folgenden Schritte aus, um ein Post-Filter-Transformation Plugin zum Bearbeiten oder Hinzufügen benutzerdefinierter Metadaten zu erstellen und bereitzustellen:
Hinweis: Der Name der Java-Datei ist <name>PostFilter.java, wobei <name> der Name des Plugin-Parameters aus dem vorherigen Schritt ist.
private void processRequest(FilterAndIndexRequest.Builder request) {
// Clone the request
Metadata.Builder metadataBuilder = request.getContentBuilder().getMetadataBuilder();
NamedValue.Builder namedValueBuilder = NamedValue.newBuilder();
namedValueBuilder.setName("meta");
namedValueBuilder.addValue(ValueHelper.newBuilder("value"));
metadataBuilder.addMetadatum(namedValueBuilder)
}
Führen Sie die folgenden Schritte aus, um ein Item-Transformer-Plugin zum Bearbeiten oder Hinzufügen benutzerdefinierter Metadaten zu erstellen:
private void processItem(Item.Builder itemBuilder) {
itemBuilder.addProperty(
NamedValue.newBuilder()
.setName("meta")
.addValue(ValueHelper.newBuilder("value"))
);
}
Wie Sie in beiden Beispielen sehen konnten, ist es möglich, Eigenschaften für die installierten Plugins über die Konfigurationsschnittstelle zu definieren, indem benutzerdefinierte Plugin-Eigenschaften hinzugefügt werden.
Diese Konfigurationseigenschaften sind im Quellcode des Plugins über die Properties-Map zugänglich:
Map<String, List<String>> properties = null;
Die Init-Methode, die die Konfigurationseigenschaften abruft, wird automatisch aufgerufen, wenn das Plugin die Schnittstelle com.mindbreeze.enterprisesearch.mesapi.Initializable implementiert.
Das vorherige Beispiel eines Item Transformer Plugins, das nun einen Metadatenwert auf einen Konfigurationsparameter namens „meta“ setzt, sieht wie folgt aus:
private void processItem(Item.Builder itemBuilder) {
if (properties != null && properties.containsKey("meta")) {
List<String> values = properties.get("meta");
if (values != null && !values.isEmpty()) {
String value = values.get(0);
if (value != null) {
itemBuilder.addProperty(
NamedValue.newBuilder()
.setName("meta")
.addValue(ValueHelper.newBuilder(value))
);
}
}
}
}
Die Plugin-Beschreibung „plugins.xml“ beschreibt die im Archiv verfügbaren Plugins. Die Gliederung ist wie folgt:
version
plugins
Plugin
id
kind
extension
code
wenn “kind” CODE ist
properties
für vordefinierte Eigenschaften, die an das Plugin übergeben werden
config_options
<Group>
<label>
<LangString>
<lang>en</lang>
<value>Base Configuration</value>
</LangString>
</label>
<level>DEFAULT_LEVEL</level>
<option>
<Option>
<name>meta</name>
<input>TEXT</input>
<hint>The value that is added as the meta property.</hint>
<label>
<LangString>
<lang>en</lang>
<value>meta property value</value>
</LangString>
</label>
<option />
</Option>
</option>
</Group>
</config_option>