Übersicht
Der Elasticsearch/OpenSearch-Konnektor bietet die Funktionalität, Daten aus Elasticsearch- oder OpenSearch-Clustern abzurufen und im Fess-Index zu registrieren.
Für diese Funktion ist das Plugin fess-ds-elasticsearch erforderlich.
Unterstützte Versionen
Elasticsearch 7.x / 8.x
OpenSearch 1.x / 2.x
Voraussetzungen
Die Installation des Plugins ist erforderlich
Lesezugriff auf den Elasticsearch/OpenSearch-Cluster ist erforderlich
Berechtigungen zum Ausführen von Abfragen sind erforderlich
Plugin-Installation
Methode 1: JAR-Datei direkt platzieren
Methode 2: Über die Administrationsoberfläche installieren
Öffnen Sie „System“ -> „Plugins“
Laden Sie die JAR-Datei hoch
Starten Sie Fess neu
Konfiguration
Konfigurieren Sie über die Administrationsoberfläche unter „Crawler“ -> „Datenspeicher“ -> „Neu erstellen“.
Grundeinstellungen
| Einstellung | Beispielwert |
|---|---|
| Name | External Elasticsearch |
| Handler-Name | ElasticsearchDataStore |
| Aktiviert | Ein |
Parameter-Einstellungen
Einfache Verbindung:
Verbindung mit Authentifizierung:
Mehrere Hosts konfigurieren:
Parameterliste
Skript-Einstellungen
Einfaches Mapping:
Zugriff auf verschachtelte Felder:
Verfügbare Felder
source.<field_name>-_source-Feld des Elasticsearch-Dokumentsid- Dokument-IDindex- Indexnamescore- Suchpunktzahlversion- DokumentversionseqNo- SequenznummerprimaryTerm- PrimärtermclusterAlias- Cluster-Alias (für Cross-Cluster-Suche)hit- SearchHit-Objekt (für fortgeschrittene Nutzung)
Query-Konfiguration
Alle Dokumente abrufen
Standardmäßig werden alle Dokumente abgerufen. Wenn der query-Parameter nicht angegeben wird, wird match_all verwendet.
Nach bestimmten Bedingungen filtern
Bereichsangabe:
Mehrere Bedingungen:
Bemerkung
Der query-Parameter akzeptiert nur den Query-Body. Der äußere {"query":...}-Wrapper ist nicht erforderlich. Such-level-Optionen wie Sortierung können in diesem Parameter nicht angegeben werden.
Nur bestimmte Felder abrufen
Abruffelder mit fields-Parameter einschränken
Um alle Felder abzurufen, fields nicht angeben oder leer lassen.
Anwendungsbeispiele
Einfaches Index-Crawling
Parameter:
Skript:
Crawling von Cluster mit Authentifizierung
Parameter:
Skript:
Crawling aus mehreren Indizes
Parameter:
Skript:
OpenSearch-Cluster crawlen
Parameter:
Skript:
Crawling mit eingeschränkten Feldern
Parameter:
Skript:
Lastverteilung über mehrere Hosts
Parameter:
Skript:
Fehlerbehebung
Verbindungsfehler
Symptom: Connection refused oder No route to host
Zu überprüfen:
Überprüfen Sie, ob die Host-URL korrekt ist (Protokoll, Hostname, Port)
Überprüfen Sie, ob Elasticsearch/OpenSearch läuft
Überprüfen Sie die Firewall-Einstellungen
Bei HTTPS überprüfen Sie, ob das Zertifikat gültig ist
Authentifizierungsfehler
Symptom: 401 Unauthorized oder 403 Forbidden
Zu überprüfen:
Überprüfen Sie Benutzername und Passwort
Überprüfen Sie, ob der Benutzer die entsprechenden Berechtigungen hat:
Leseberechtigung auf den Index
Berechtigung zur Verwendung der Scroll-API
Bei Elasticsearch Security (X-Pack) überprüfen Sie, ob es korrekt konfiguriert ist
Index nicht gefunden
Symptom: index_not_found_exception
Zu überprüfen:
Überprüfen Sie den Indexnamen (einschließlich Groß-/Kleinschreibung)
Überprüfen Sie, ob der Index existiert:
Überprüfen Sie, ob das Wildcard-Muster korrekt ist (z.B.:
logs-*)
Query-Fehler
Symptom: parsing_exception oder search_phase_execution_exception
Zu überprüfen:
Überprüfen Sie, ob das Query-JSON korrekt ist
Überprüfen Sie, ob die Query mit der Elasticsearch/OpenSearch-Version kompatibel ist
Überprüfen Sie, ob die Feldnamen korrekt sind
Testen Sie die Query direkt in Elasticsearch/OpenSearch:
Scroll-Timeout
Symptom: No search context found oder Scroll timeout
Lösung:
Erhöhen Sie
scroll:Verringern Sie
size:Überprüfen Sie die Cluster-Ressourcen
Crawling großer Datenmengen
Symptom: Crawling ist langsam oder Timeout
Lösung:
Passen Sie
sizean (zu groß kann langsam sein):Schränken Sie abzurufende Felder mit
fieldseinFiltern Sie mit
querynur benötigte DokumenteTeilen Sie in mehrere Datenspeicher auf (nach Index, Zeitbereich usw.)
Speicherüberlauf
Symptom: OutOfMemoryError
Lösung:
Verringern Sie
sizeSchränken Sie abzurufende Felder mit
fieldseinErhöhen Sie die Heap-Größe von Fess
Schließen Sie große Felder aus (Binärdaten usw.)
SSL/TLS-Verbindung
Bei selbstsignierten Zertifikaten
Warnung
Verwenden Sie in Produktionsumgebungen ordnungsgemäß signierte Zertifikate.
Bei selbstsignierten Zertifikaten fügen Sie das Zertifikat zum Java Keystore hinzu:
Client-Zertifikatauthentifizierung
Wenn ein Client-Zertifikat erforderlich ist, sind zusätzliche Parameter-Einstellungen erforderlich. Details finden Sie in der Elasticsearch-Client-Dokumentation.
Erweiterte Query-Beispiele
Query mit Aggregationen
Bemerkung
Der query-Parameter akzeptiert nur den Query-Body. Aggregationen (aggs), Sortierung und andere Such-level-Optionen können nicht angegeben werden. Es werden nur Dokumente abgerufen.
Skript-Felder
Bemerkung
Elasticsearch/OpenSearch-Skriptfelder sind nicht in _source enthalten und können daher nicht über den source.*-Präfix zugegriffen werden. Um Skriptfelder zu verwenden, greifen Sie über das hit-Objekt mittels hit.getFields() zu.
Weiterführende Informationen
Übersicht der Datenspeicher-Konnektoren - Übersicht der Datenspeicher-Konnektoren
Datenbank-Konnektor - Datenbank-Konnektor
Datenspeicher-Crawl - Leitfaden zur Datenspeicher-Konfiguration