Übersicht
Fess speichert seine Daten in OpenSearch. Die Einstellung search_engine.type teilt Fess mit, mit welcher Art von OpenSearch es verbunden ist. Davon hängt ab, welche Indexdefinitionen Fess erstellt und welche Funktionen es bietet.
Beim Standardwert default erwartet Fess ein OpenSearch, in dem die vier CodeLibs-Plugins installiert sind (opensearch-analysis-fess, opensearch-analysis-extension, opensearch-minhash und opensearch-configsync; siehe Auswahl der Installationsmethode). Um sich mit einem reinen OpenSearch ohne diese Plugins zu verbinden, zum Beispiel mit einem verwalteten Dienst, auf dem Sie keine eigenen Plugins installieren können, setzen Sie den Wert auf vanilla.
Typen
| Wert | Beschreibung |
|---|---|
default | OpenSearch mit den CodeLibs-Plugins. Dies ist der Standardwert. |
vanilla | Ein reines OpenSearch ohne die CodeLibs-Plugins. Neu in 15.9. Die Indexdefinitionen werden aus fess_indices/_vanilla/ gelesen. Fess 15.8 und früher kennen diesen Wert nicht; verwenden Sie dort cloud. |
aws | Wie vanilla, vorgesehen für Amazon OpenSearch Service. Siehe Amazon OpenSearch Service. |
cloud | Ein veralteter Alias für vanilla. Fess schreibt beim Start eine Warnung ins Log. Ändern Sie den Wert auf vanilla. |
| Jeder andere Wert | Wird wie default behandelt, mit dem Unterschied, dass Definitionsdateien unter fess_indices/_<Typ>/ Vorrang vor den gleichnamigen Dateien unter fess_indices/ haben. |
Fess erkennt die Plugins nicht automatisch; Sie legen den Typ selbst fest. Legen Sie ihn vor dem ersten Start fest. Die Indexdefinitionen werden beim Erstellen eines Index angewendet. Eine spätere Änderung des Werts ändert daher die bereits vorhandenen Indizes nicht.
Ohne die Plugins nicht verfügbare Funktionen
Mit vanilla und aws (einschließlich des veralteten cloud) stehen die folgenden Funktionen nicht zur Verfügung. Die davon abhängigen Einträge der Administrationsoberfläche werden ausgeblendet.
Wörterbuchverwaltung: [System > Wörterbuch] wird ausgeblendet. Die Wörterbuchseiten und die Wörterbuch-Administrations-API (
/api/admin/dict/) können nicht verwendet werden. Auch „Wörterbücher zurücksetzen“ und „Dokumentenindex neu laden“ auf der Seite Wartung werden ausgeblendet. Die Analyzer verwenden die in der Indexdefinition enthaltenen Regeln, keine Wörterbuchdateien.Zusammenfassen von Ergebnissen: „Doppelte Ergebnisse ausblenden“ unter Allgemein wird ausgeblendet; das Zusammenfassen ist immer ausgeschaltet.
Duplikaterkennung: Die Inhaltssignatur, mit der Dokumente mit gleichem Inhalt gefunden werden, wird nicht berechnet. Die Registerkarte „Duplikate“ des Dokumentberichts wird ausgeblendet (der Bericht über inaktive Dokumente bleibt verfügbar), und der Suchparameter
sdh(ähnliche Dokumente) wird ignoriert.Analyzer: Japanisch, Koreanisch und vereinfachtes Chinesisch werden statt mit den CodeLibs-Tokenizern mit den OpenSearch-Analyzern Kuromoji, Nori und SmartCN zerlegt, sodass sich die Tokens von denen bei
defaultunterscheiden. Für Vietnamesisch (Felder*_vi) und traditionelles Chinesisch (Felder*_zh-tw) wird ein leerer Analyzer verwendet, der keine Terme registriert. Dokumente in diesen Sprachen werden weiterhin in den sprachunabhängigen Felderncontentundtitleindexiert.
Erforderliche OpenSearch-Plugins
Die Indexdefinitionen für vanilla und aws verwenden Analyzer und einen Vektor-Feldtyp, die von offiziellen OpenSearch-Plugins bereitgestellt werden. Das OpenSearch, mit dem Sie sich verbinden, muss diese Plugins enthalten:
analysis-kuromojianalysis-norianalysis-smartcnopensearch-knn(k-NN)
Die CodeLibs-Plugins sind nicht erforderlich. Bei einem OpenSearch, das Sie selbst betreiben, installieren Sie ein Plugin mit opensearch-plugin install, zum Beispiel bin/opensearch-plugin install analysis-nori. Zu Amazon OpenSearch Service siehe Amazon OpenSearch Service.
Ist der Typ vanilla oder aws, listet Fess beim Start die installierten Plugins auf (GET /_cat/plugins). Fehlt eines der oben genannten Plugins, schreibt es eine Warnung ins Log, die die fehlenden Plugins nennt, und startet weiter. Schlägt die Anfrage fehl, zum Beispiel weil der Dienst sie nicht zulässt, wird die Prüfung übersprungen.
Typ festlegen
Docker
Setzen Sie die Umgebungsvariable SEARCH_ENGINE_TYPE für den Dienst fess01 in compose.yaml:
vanilla kann mit Images ab Fess 15.9 verwendet werden. Setzen Sie bei einem älteren Image SEARCH_ENGINE_TYPE=cloud. Zu den übrigen Docker-Einstellungen siehe Installation mit Docker (Detailliert).
Bemerkung
Bei den 15.8-Images von Fess gibt nur die -noble-Variante (zum Beispiel ghcr.io/codelibs/fess:15.8.0-noble) SEARCH_ENGINE_TYPE an Fess weiter. Das Standard-Image von 15.8 (auf Alpine-Basis) schreibt den Wert zwar nach /etc/default/fess, übergibt ihn aber nicht als -Dfess.config.search_engine.type an die JVM; die Einstellung hat dort daher keine Wirkung. Ab 15.9 wird sie auch vom Standard-Image beachtet.
Installationen ohne Docker
bin/fess.in.sh liest SEARCH_ENGINE_TYPE nicht. Verwenden Sie stattdessen eine der folgenden Möglichkeiten.
Schreiben Sie
search_engine.typeinfess_config.properties(app/WEB-INF/classes/fess_config.propertiesbei der ZIP-Variante,/etc/fess/fess_config.propertiesbei den RPM- und DEB-Varianten).Hängen Sie in
bin/fess.in.shder ZIP-Variante (unter Windowsbin\fess.in.bat) eine JVM-Option anFESS_JAVA_OPTSan.
Starten Sie Fess nach der Änderung neu. Der Crawler und die übrigen Job-Prozesse erhalten die Einstellung von Fess; Sie müssen sie dafür nicht gesondert setzen.
Verbindungseinstellungen
Die Verbindung zu OpenSearch wird wie bei jedem anderen Typ konfiguriert.
| Einstellung | Beschreibung |
|---|---|
search_engine.http.url | Der HTTP-Endpunkt von OpenSearch. Ist die Umgebungsvariable SEARCH_ENGINE_HTTP_URL gesetzt, hat sie Vorrang. |
search_engine.username / search_engine.password | Benutzername und Passwort für die HTTP-Basic-Authentifizierung. Sie werden nur verwendet, wenn beide gesetzt sind. In Docker verwenden Sie die Umgebungsvariablen SEARCH_ENGINE_USERNAME und SEARCH_ENGINE_PASSWORD. |
search_engine.http.ssl.certificate_authorities | Der Pfad einer CA-Zertifikatsdatei (X.509), mit der das Serverzertifikat eines HTTPS-Endpunkts geprüft wird. Sie wird nicht benötigt, wenn das Zertifikat von einer CA ausgestellt wurde, der Java bereits vertraut. |
Ein Eintrag aus fess_config.properties kann auch als -Dfess.config.<Eintragsname> in FESS_JAVA_OPTS angegeben werden (siehe Installation mit Docker (Detailliert)).
Amazon OpenSearch Service
Um eine Domain von Amazon OpenSearch Service zu verwenden, setzen Sie search_engine.type auf aws (vanilla verhält sich genauso).
Voraussetzungen
Die Domain führt OpenSearch 3.x aus. Fess prüft die Engine beim Start und startet mit allem anderen als OpenSearch 3 nicht.
Die unter „Erforderliche OpenSearch-Plugins“ aufgeführten Plugins sind in der Domain verfügbar. In Amazon OpenSearch Service ist Nori ein optionales Paket: Ordnen Sie es der Domain zu, bevor Sie Fess starten.
Der Endpunkt verwendet HTTPS.
Die differenzierte Zugriffssteuerung (Fine-Grained Access Control) ist aktiviert und enthält einen internen Benutzer, mit dem sich Fess anmeldet (HTTP-Basic-Authentifizierung). Das Signieren von Anfragen mit AWS-IAM-Anmeldedaten (SigV4) wird noch nicht unterstützt; eine Domain, die nur IAM-signierte Anfragen akzeptiert, kann daher nicht verwendet werden.
Beispielkonfiguration
Prüfungen beim Start
Die unter „Erforderliche OpenSearch-Plugins“ beschriebene Plugin-Prüfung läuft auch bei
aws. Haben Sie vergessen, Nori zuzuordnen, erscheint infess.logeine Warnung.Weist die Domain eine Anfrage mit HTTP 401 oder 403 ab, schreibt Fess eine Warnung ins Log. Führt dies zu einem fehlgeschlagenen Start, verweist die Fehlermeldung auf Benutzername, Passwort und Zugriffsrichtlinie der Domain.
DNS-Cache-TTL
Der Endpunkt eines verwalteten Dienstes kann sich im Lauf der Zeit auf andere IP-Adressen auflösen, und die JVM speichert das Ergebnis einer DNS-Abfrage im Cache. Eine kurze Cache-Dauer ermöglicht es Fess, einer solchen Änderung zu folgen. Setzen Sie -Dsun.net.inetaddr.ttl=5 (Sekunden) an den folgenden beiden Stellen.
Der Fess-Prozess: Hängen Sie die Option an
FESS_JAVA_OPTSan.Die Job-Prozesse: Die Prozesse für Crawler, Suggest, Chunk und Miniaturansichten werden von Fess als eigene JVMs gestartet und erben
FESS_JAVA_OPTSnicht. Fügen Sie dieselbe Option am Ende vonjvm.crawler.options,jvm.suggest.options,jvm.chunk.optionsundjvm.thumbnail.optionsinfess_config.propertieshinzu. Jeder dieser Werte enthält eine Option pro Zeile, und jede Zeile endet mit\n\.Fügen Sie die Zeile nach den vorhandenen Zeilen an, und verfahren Sie bei den anderen drei Einträgen ebenso.
In Docker geben Sie FESS_JAVA_OPTS in den Umgebungsvariablen der Compose-Datei an. Um die Einträge jvm.*.options zu ändern, binden Sie eine geänderte fess_config.properties ein (siehe Installation mit Docker (Detailliert)).