PaginatedJsonQueryElasticsearch 2025.5.31.15¶
Bundle¶
org.apache.nifi | nifi-elasticsearch-restapi-nar
Description¶
Un processeur qui permet à l’utilisateur d’exécuter une requête paginée (avec agrégations) écrite avec Elasticsearch JSON DSL. Il utilisera le contenu du FlowFile pour la requête, à moins que l’attribut QUERY ne soit renseigné. Les requêtes de type « recherche après » ou « point dans le temps » doivent comporter un champ « tri » valide.
Exigences en matière d’entrées¶
REQUIRED
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 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. |
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. |
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 |
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. |