SearchElasticsearch 2025.10.9.21¶
Bundle¶
org.apache.nifi | nifi-elasticsearch-restapi-nar
Beschreibung¶
Ein Prozessor, mit dem der Benutzer wiederholt eine paginierte Abfrage (mit Aggregationen) ausführen kann, die mit Elasticsearch JSON DSL geschrieben wurde. „Search After“-/„Point in Time“-Abfragen müssen ein gültiges „Sort“-Feld enthalten. Der Prozessor ruft mehrere Ergebnisseiten ab, bis entweder keine Ergebnisse mehr verfügbar sind oder das Zeitlimit für „Pagination Keep Alive“ erreicht ist. Danach wird die Abfrage mit der ersten Ergebnisseite neu gestartet.
Eingabeanforderung¶
FORBIDDEN
Unterstützt sensible dynamische Eigenschaften¶
false
Eigenschaften¶
Eigenschaft |
Beschreibung |
|---|---|
Aggregation Results Format |
Format der Aggregationsausgabe. |
Aggregation Results Split |
Ob ein FlowFile mit allen Aggregationen oder ein FlowFile für jede einzelne Aggregation ausgegeben wird. |
Aggregations |
Eine oder mehrere Abfrage-Aggregationen (oder „aggs“), in der JSON-Syntax. Bsp.: {„items“: {„terms“: {„field“: „product“, „size“: 10}}} |
Client Service |
Ein Elasticsearch-Clientdienst, der für Abfragen verwendet wird. |
Felder |
Felder der indizierten Dokumente, die abgerufen werden sollen, in JSON-Syntax. Bsp: [„user.id“, „http.response.*“, {„field“: „@timestamp“, „format“: „epoch_millis“}] |
Index |
Der Name des zu verwendenden Indexes. |
Max JSON Field String Length |
Die maximal zulässige Länge eines Zeichenfolgenwertes bei der Analyse eines JSON-Dokuments oder -Attributs. |
Output No Hits |
Ein „Treffer“-FlowFile ausgeben, auch wenn keine Treffer für die Abfrage gefunden wurden. Bei „true“ wird ein leeres „Treffer“-Flowfile ausgegeben, auch wenn „Aggregationen“ ausgegeben werden. |
Pagination Keep Alive |
„Keep_alive“-Zeitraum der Paginierung. Zeitraum, in dem Elasticsearch den Scroll-/PIT-Cursor zwischen Anfragen aktiv hält (dies ist nicht die erwartete Zeit zur Rückgabe aller Seiten, sondern die maximal zulässige Zeit zwischen den Seitenabrufen). |
Pagination Type |
Zu verwendende Paginierungsmethode. Nicht alle Typen sind für alle Elasticsearch-Versionen verfügbar. Prüfen Sie in der Elasticsearch-Dokumentation, welche Typen für Ihren Dienst geeignet und empfohlen sind. |
Query |
Eine Abfrage in JSON-Syntax, nicht in Lucene-Syntax. Beispiel: {„query“:{„match“:{„somefield“:“somevalue“}}}. Wenn die Abfrage leer ist, wird ein standardmäßiges JSON-Objekt verwendet, was zu einer „match_all“-Abfrage in Elasticsearch führt. |
Query Attribute |
Wenn diese Option gesetzt ist, wird die ausgeführte Abfrage auf jedes Ergebnis-Flowfile im angegebenen Attribut gesetzt. |
Query Clause |
Eine „Abfrage“-Klausel in JSON-Syntax, nicht in Lucene-Syntax. Beispiel: {„match“:{„somefield“:“somevalue“}}. Wenn die Abfrage leer ist, wird ein standardmäßiges JSON-Objekt verwendet, was zu einer „match_all“-Abfrage in Elasticsearch führt. |
Query Definition Style |
Wie die JSON-Abfrage für die Verwendung durch den Prozessor definiert werden soll. |
Restart On Finish |
Ob der Prozessor eine weitere Suche mit der gleichen Abfrage starten soll, nachdem eine paginierte Suche abgeschlossen wurde. |
Script Fields |
Felder, die mithilfe der Skriptauswertung zur Laufzeit der Abfrage erstellt werden sollen, in JSON-Syntax. Beispiel: {„test1“: {„script“: {„lang“: „painless“, „source“: „doc[ ‚price‘].value * 2“}}, „test2“: {„script“: {„lang“: „painless“, „source“: „doc[ ‚price‘].value * params.factor“, „params“: {„factor“: 2.0}}}} |
Search Results Format |
Format der Trefferausgabe. |
Search Results Split |
Ob ein FlowFile mit allen Treffern oder ein FlowFile für jeden einzelnen Treffer oder ein FlowFile mit allen Treffern aus allen paginierten Antworten ausgegeben wird. |
Size (Größe) |
Die maximale Anzahl von Dokumenten, die in der Abfrage abgerufen werden sollen. Wenn die Abfrage paginiert ist, gilt diese Größe für jede Seite der Abfrage, nicht für die Größe des gesamten Resultsets. |
Sort |
Sortieren der Ergebnisse nach einem oder mehreren Feldern, in der JSON-Syntax. Bsp: [{„price“ : {„order“ : „asc“, „mode“ : „avg“}}, {„post_date“ : {„format“: „strict_date_optional_time_nanos“}}] |
Type |
Der Typ dieses Dokuments (wird von Elasticsearch für die Indizierung und Suche verwendet). |
Statusmanagement¶
Bereiche |
Beschreibung |
|---|---|
LOCAL |
Der Paginierungsstatus (scrollId, searchAfter, pitId, hitCount, pageCount, pageExpirationTimestamp) wird zwischen den Aufrufen dieses Prozessors beibehalten, bis Scroll/PiT abgelaufen ist (wenn die aktuelle Zeit nach der letzten Abfrageausführung plus dem Keep-Alive-Intervall lder Paginierung liegt). |
Beziehungen¶
Name |
Beschreibung |
|---|---|
aggregate |
Aggregationen werden an diese Beziehung weitergeleitet. |
failure |
Alle FlowFiles, die aus Gründen, die nicht mit der Serververfügbarkeit zusammenhängen, fehlschlagen, werden an diese Beziehung weitergeleitet. |
hits |
Suchtreffer werden an diese Beziehung weitergeleitet. |
retry |
Alle FlowFiles, die aufgrund der Server-/Clusterverfügbarkeit fehlschlagen, werden an diese Beziehung weitergeleitet. |
Schreibt Attribute¶
Name |
Beschreibung |
|---|---|
mime.type |
application/json |
aggregation.name |
Der Name der Aggregation, deren Ergebnisse im Ausgabe-FlowFile enthalten sind |
aggregation.number |
Die Nummer der Aggregation, deren Ergebnisse im Ausgabe-FlowFile enthalten sind |
page.number |
Die Nummer der Seite (Anfrage), beginnend bei 1, auf der die im Ausgabe-FlowFile enthaltenen Ergebnisse zurückgegeben wurden. |
hit.count |
Die Anzahl im Ausgabe-FlowFile enthaltenen Treffer |
elasticsearch.query.error |
Die von Elasticsearch bereitgestellte Fehlermeldung, wenn beim Abfragen des Index ein Fehler auftritt. |