Ü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
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
settings.fesen.http.url | Ja | Elasticsearch/OpenSearch-Hosts (mehrere kommagetrennt) |
index | Ja | Name des Zielindexes |
settings.fesen.username | Nein | Benutzername für Authentifizierung |
settings.fesen.password | Nein | Passwort für Authentifizierung |
size | Nein | Abrufgröße beim Scrollen (Standard: 100) |
scroll | Nein | Scroll-Timeout (Standard: 1m) |
query | Nein | Query-JSON (Standard: match_all) |
fields | Nein | Abzurufende Felder (kommagetrennt) |
Skript-Einstellungen
Einfaches Mapping:
Zugriff auf verschachtelte Felder:
Verfügbare Felder
data.<field_name>- Felder des Elasticsearch-Dokumentsdata._id- Dokument-IDdata._index- Indexnamedata._type- Dokumenttyp (Elasticsearch vor Version 7)data._score- Suchpunktzahl
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:
Sortierung angeben:
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
Aggregationsergebnisse werden nicht abgerufen, nur Dokumente.
Skript-Felder
Skript:
Weiterführende Informationen
Übersicht der Datenspeicher-Konnektoren - Übersicht der Datenspeicher-Konnektoren
Datenbank-Konnektor - Datenbank-Konnektor
Datenspeicher-Crawl - Leitfaden zur Datenspeicher-Konfiguration