Übersicht
Bei normaler Suche in Fess wird durch Paging-Funktion nur eine bestimmte Anzahl von Suchergebnissen angezeigt. Wenn Sie alle Suchergebnisse auf einmal abrufen möchten, verwenden Sie die Scroll-Search-Funktion.
Diese Funktion ist nützlich, wenn alle Suchergebnisse verarbeitet werden müssen, z. B. für Massen-Datenexport, Backup oder Analyse großer Datenmengen.
Anwendungsfälle
Scroll-Suche eignet sich für folgende Zwecke:
Vollständiger Export von Suchergebnissen
Abruf großer Datenmengen für Datenanalyse
Datenabruf in Batch-Verarbeitung
Datensynchronisation mit externen Systemen
Datenerfassung für Berichtsgenerierung
Warnung
Scroll-Suche gibt große Datenmengen zurück und verbraucht daher mehr Serverressourcen im Vergleich zur normalen Suche. Aktivieren Sie nur bei Bedarf.
Konfigurationsmethode
Aktivierung der Scroll-Suche
Standardmäßig ist Scroll-Suche aus Sicherheits- und Leistungsgründen deaktiviert. Zur Aktivierung ändern Sie in fess_config.properties oder /etc/fess/fess_config.properties folgende Einstellung:
Bemerkung
Nach Konfigurationsänderung muss Fess neu gestartet werden.
Konfiguration von Response-Feldern
Sie können Felder anpassen, die in Suchergebnissen enthalten sind. Standardmäßig werden nur Grundfelder zurückgegeben, Sie können jedoch zusätzliche Felder angeben.
Bei Angabe mehrerer Felder trennen Sie diese durch Kommas.
Timeout-Einstellung für Scroll
Sie können die Gültigkeitsdauer des Scroll-Kontexts konfigurieren. Standard ist 1 Minute.
Einheiten: - s: Sekunden - m: Minuten - h: Stunden
Verwendungsmethode
Grundlegende Verwendung
Zugriff auf Scroll-Suche erfolgt über folgende URL:
Suchergebnisse werden im NDJSON-Format (Newline Delimited JSON) zurückgegeben. Pro Zeile wird ein Dokument im JSON-Format ausgegeben.
Beispiel:
Request-Parameter
Für Scroll-Suche können folgende Parameter verwendet werden:
| Parametername | Beschreibung |
|---|---|
q | Suchabfrage (erforderlich) |
size | Anzahl pro Scroll-Abruf (Standard: 100) |
scroll | Gültigkeitszeit des Scroll-Kontexts (Standard: 1m) |
fields.label | Filterung nach Label |
Angabe von Suchabfragen
Sie können Suchabfragen wie bei normaler Suche angeben.
Beispiel: Schlüsselwortsuche
Beispiel: Feldspezifische Suche
Beispiel: Vollständiger Abruf (ohne Suchbedingung)
Angabe der Abrufanzahl
Sie können die Anzahl pro Scroll-Abruf ändern.
Bemerkung
Zu großer size-Parameter erhöht Speichernutzung. Normalerweise wird Bereich von 100–1000 empfohlen.
Filterung nach Label
Sie können nur Dokumente bestimmter Labels abrufen.
Bei erforderlicher Authentifizierung
Bei Verwendung rollenbasierter Suche müssen Sie Authentifizierungsinformationen einschließen.
Oder mit API-Token:
Response-Format
NDJSON-Format
Scroll-Such-Response wird im NDJSON-Format (Newline Delimited JSON) zurückgegeben. Jede Zeile repräsentiert ein Dokument.
Beispiel:
Response-Felder
Standardmäßig enthaltene Hauptfelder:
url: Dokument-URLtitle: Titelcontent: Haupttext (Auszug)score: Such-Scoreboost: Boost-Wertcreated: Erstellungsdatumlast_modified: Letztes Änderungsdatum
Datenverarbeitungsbeispiele
Verarbeitungsbeispiel mit Python
Speichern in Datei
Beispiel zum Speichern von Suchergebnissen in Datei:
Konvertierung zu CSV
Beispiel für Konvertierung zu CSV mit jq-Befehl:
Datenanalyse
Beispiel für Analyse abgerufener Daten:
Leistung und Best Practices
Effiziente Verwendung
Angemessene size-Parameter-Einstellung
Zu klein erhöht Kommunikations-Overhead
Zu groß erhöht Speichernutzung
Empfohlen: 100–1000
Optimierung von Suchbedingungen
Suchbedingungen so angeben, dass nur benötigte Dokumente abgerufen werden
Vollständigen Abruf nur bei wirklichem Bedarf ausführen
Nutzung von Off-Peak-Zeiten
Abruf großer Datenmengen in Zeiten niedriger Systemlast ausführen
Verwendung in Batch-Verarbeitung
Regelmäßige Datensynchronisation als Batch-Job ausführen
Optimierung der Speichernutzung
Bei Verarbeitung großer Datenmengen verwenden Sie Streaming-Verarbeitung zur Reduzierung der Speichernutzung.
Sicherheitsüberlegungen
Zugriffsbeschränkung
Da Scroll-Suche große Datenmengen zurückgibt, konfigurieren Sie angemessene Zugriffsbeschränkungen.
IP-Adressen-Beschränkung
Zugriff nur von bestimmten IP-Adressen erlauben
API-Authentifizierung
API-Token oder Basic-Authentifizierung verwenden
Rollenbasierte Beschränkung
Zugriff nur für Benutzer mit bestimmten Rollen erlauben
Rate-Limiting
Zur Vermeidung übermäßigen Zugriffs wird Konfiguration von Rate-Limiting im Reverse-Proxy empfohlen.
Fehlersuche
Scroll-Suche nicht verfügbar
Überprüfen Sie, ob
api.search.scrollauftruegesetzt ist.Überprüfen Sie, ob Fess neu gestartet wurde.
Überprüfen Sie Fehlerprotokolle.
Timeout-Fehler tritt auf
Erhöhen Sie Wert von
api.search.scroll.timeout.Verkleinern Sie
size-Parameter für verteilte Verarbeitung.Grenzen Sie Suchbedingungen ein, um abzurufende Datenmenge zu reduzieren.
Speichermangel-Fehler
Verkleinern Sie
size-Parameter.Erhöhen Sie Heap-Speichergröße von Fess.
Überprüfen Sie Heap-Speichergröße von OpenSearch.
Response ist leer
Überprüfen Sie, ob Suchabfrage korrekt ist.
Überprüfen Sie, ob angegebene Labels oder Filterbedingungen korrekt sind.
Überprüfen Sie Berechtigungseinstellungen für rollenbasierte Suche.
Referenzinformationen
Suchfunktionen - Details zu Suchfunktionen
Suchbezogene Konfigurationen - Suchbezogene Konfigurationen