SearchElasticsearch 2025.5.31.15

Bundle

org.apache.nifi | nifi-elasticsearch-restapi-nar

Description

Un processeur qui permet à l’utilisateur d’exécuter de manière répétée une requête paginée (avec agrégations) écrite avec Elasticsearch JSON DSL. Les requêtes de type « recherche après » ou « point dans le temps » doivent comporter un champ « tri » valide. Le processeur récupérera plusieurs pages de résultats jusqu’à ce qu’il n’y ait plus de résultats disponibles ou que l’expiration de Pagination Keep Alive soit atteinte ; la requête redémarrera alors en commençant par la première page de résultats.

Balises

elasticsearch, elasticsearch5, elasticsearch6, elasticsearch7, elasticsearch8, json, page, query, scroll, search

Exigences en matière d’entrées

FORBIDDEN

Prend en charge les propriétés dynamiques sensibles

false

Propriétés

Propriété

Description

Max JSON Field String Length

Longueur maximale autorisée pour une valeur de chaîne lors de l’analyse d’un document ou d’un attribut JSON.

el-query-attribute

Si l’option est activée, la requête exécutée sera définie sur chaque FlowFile de résultats dans l’attribut spécifié.

el-rest-client-service

Un service client Elasticsearch à utiliser pour l’exécution des requêtes.

el-rest-fetch-index

Le nom de l’index à utiliser.

el-rest-format-aggregations

Format de la sortie des agrégations.

el-rest-format-hits

Format de la sortie des Hits.

el-rest-output-no-hits

Générer un FlowFile « hits » en sortie même si aucun hit n’a été trouvé pour la requête. Si cette propriété est définie sur true, un FlowFile « hits » vide sera généré en sortie même si des « agrégations » sont générées en sortie.

el-rest-pagination-keep-alive

Période de persistance (« keep_alive ») de la pagination. Période pendant laquelle Elasticsearch maintiendra le curseur de scroll/PIT en vie entre deux requêtes (il ne s’agit pas du temps attendu pour que toutes les pages soient récupérées, mais du temps maximum autorisé pour les requêtes entre les récupérations de pages).

el-rest-pagination-type

Méthode de pagination à utiliser. Tous les types ne sont pas disponibles pour toutes les versions d’Elasticsearch. Consultez la documentation d’Elasticsearch pour savoir lesquels sont applicables et recommandés pour votre service.

el-rest-query

Requête dans la syntaxe JSON et non dans la syntaxe Lucene. Ex : {« query »:{« match »:{« somefield »: »somevalue »}}}. Si la requête est vide, un objet JSON par défaut sera utilisé, ce qui aboutira à une requête « match_all » dans Elasticsearch.

el-rest-query-clause

Clause « query » dans la syntaxe JSON et non dans la syntaxe Lucene. Ex : {« match »:{« somefield »: »somevalue »}}. Si la requête est vide, un objet JSON par défaut sera utilisé, ce qui aboutira à une requête « match_all » dans Elasticsearch.

el-rest-query-definition-style

Manière dont la requête JSON sera définie pour être utilisée par le processeur.

el-rest-split-up-aggregations

Générer en sortie un FlowFile contenant toutes les agrégations ou un FlowFile pour chaque agrégation.

el-rest-split-up-hits

Générer en sortie un FlowFile contenant tous les résultats ou un FlowFile pour chaque résultat, ou encore un FlowFile contenant tous les résultats de toutes les réponses paginées.

el-rest-type

Le type de ce document (utilisé par Elasticsearch pour l’indexation et la recherche).

es-rest-query-aggs

Une ou plusieurs agrégations de requêtes (ou « aggs »), en syntaxe JSON. Exemple : {« items »: {« terms »: {« field »: « product », « size »: 10}}}

es-rest-query-fields

Champs des documents indexés à récupérer, dans la syntaxe JSON. Exemple : [« user.id », « http.response.* », {« field »: « @timestamp », « format »: « epoch_millis »}]

es-rest-query-script-fields

Champs à créer à l’aide d’une évaluation de script lors de l’exécution de la requête, dans la syntaxe JSON. Exemple : {« test1 »: {« script »: {« lang »: « painless », « source »: « doc[“price”].value * 2 »}}, « test2 »: {« script »: {« lang »: « painless », « source »: « doc[“price”].value * params.factor », « params »: {« factor »: 2.0}}}}

es-rest-query-sort

Trier les résultats en fonction d’un ou plusieurs champs, dans la syntaxe JSON. Exemple : [{« price » : {« order » : « asc », « mode » : « avg »}}, {« post_date » : {« format »: « strict_date_optional_time_nanos »}}]

es-rest-size

Le nombre maximum de documents à récupérer dans la requête. Si la requête est paginée, cette taille s’applique à chaque page de la requête, et non à la taille du jeu de résultats.

restart-on-finish

Indique si le processeur doit démarrer une nouvelle recherche avec la même requête une fois qu’une recherche paginée est terminée.

Gestion de l’État

Champs d’application

Description

LOCAL

L’état de pagination (scrollId, searchAfter, pitId, hitCount, pageCount, pageExpirationTimestamp) est conservé entre les exécutions de ce processeur jusqu’à ce que le Scroll/PiT ait expiré (lorsque l’heure actuelle est postérieure à la dernière exécution de requête plus l’intervalle Pagination Keep Alive).

Relations

Nom

Description

aggregations

Les agrégations sont routées vers cette relation.

failure

Tous les FlowFiles qui échouent pour des raisons indépendantes de la disponibilité du serveur sont dirigés vers cette relation.

hits

Les résultats des recherches sont routés vers cette relation.

retry

Tous les FlowFiles qui échouent en raison de la disponibilité du serveur/cluster sont dirigés vers cette relation.

Écrit les attributs

Nom

Description

mime.type

application/json

aggregation.name

Le nom de l’agrégation dont les résultats se trouvent dans le FlowFile en sortie

aggregation.number

Le numéro de l’agrégation dont les résultats se trouvent dans le FlowFile sortant

page.number

Le numéro de la page (requête), à partir de 1, dans laquelle ont été renvoyés les résultats qui se trouvent dans le FlowFile de sortie

hit.count

Le nombre d’occurrences dans le FlowFile de sortie

elasticsearch.requête.erreur

Le message d’erreur fourni par Elasticsearch en cas d’erreur de requête sur l’index.

Voir aussi :