JsonQueryElasticsearch 2025.10.9.21¶
Bundle¶
org.apache.nifi | nifi-elasticsearch-restapi-nar
Description¶
Un processeur qui permet à l’utilisateur d’exécuter une requête (avec des agrégations) écrite avec Elasticsearch JSON DSL. La pagination des requêtes n’est pas automatique pour l’utilisateur. Si une relation entrante est ajoutée à ce processeur, le contenu du FlowFile sera utilisé pour la requête. Une attention particulière doit être portée à la taille de la requête car la totalité de la réponse d’Elasticsearch sera chargée en mémoire en une seule fois et convertie dans les flowfiles résultants.
Exigences en matière d’entrées¶
ALLOWED
Prend en charge les propriétés dynamiques sensibles¶
false
Propriétés¶
Propriété |
Description |
|---|---|
Format des résultats d’agrégation |
Format de la sortie des agrégations. |
Répartition des résultats d’agrégation |
Générer en sortie un FlowFile contenant toutes les agrégations ou un FlowFile pour chaque agrégation. |
Agrégations |
Une ou plusieurs agrégations de requêtes (ou « aggs »), en syntaxe JSON. Exemple : {« items »: {« terms »: {« field »: « product », « size »: 10}}} |
Service client |
Un service client Elasticsearch à utiliser pour l’exécution des requêtes. |
Champs |
Champs des documents indexés à récupérer, dans la syntaxe JSON. Exemple : [« user.id », « http.response.* », {« field »: « @timestamp », « format »: « epoch_millis »}] |
Index |
Le nom de l’index à utiliser. |
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. |
Sortie aucun résultat |
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. |
Requête |
Requête dans la syntaxe JSON et non dans la syntaxe Lucene. Ex : {« query »:{« match »:{« somefield »: »somevalue »}}}. Si ce paramètre n’est pas défini, la requête sera lue à partir du contenu du FlowFile. Si la requête (propriété et contenu du FlowFile) est vide, un objet JSON vide par défaut sera utilisé, ce qui aboutira à une requête « match_all » dans Elasticsearch. |
Attribut de requête |
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é. |
Clause de requête |
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. |
Style de définition des requêtes |
Manière dont la requête JSON sera définie pour être utilisée par le processeur. |
Champs de script |
Champs à créer en utilisant l’évaluation du script lors de l’exécution de la requête, dans la syntaxe JSON. Ex: {« test1 »: {« script »: {« lang »: « painless », « source »: « doc[ “price”].value * 2 »}}, « test2 »: {« script »: {« lang »: « painless », « source »: « doc[ “price”].value * params.factor », « params »: {« factor »: 2.0}}}} |
Format des résultats de recherche |
Format de la sortie des Hits. |
Fractionnement des résultats de recherche |
Retourner un FlowFile contenant tous les conteneurs ou un FlowFile pour chaque conteneur. |
Taille |
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. |
Trier |
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 »}}] |
Type |
Le type de ce document (utilisé par Elasticsearch pour l’indexation et la recherche). |
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. |
original |
Tous les FlowFiles originaux qui ne génèrent pas d’erreur 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 |
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. |