JsonQueryElasticsearch 2025.5.31.15

번들

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

설명

사용자가 Elasticsearch JSON DSL 로 작성된 쿼리(집계 포함)를 실행할 수 있는 프로세서입니다. 사용자에 대한 쿼리의 페이지 매김을 자동으로 수행하지 않습니다. 이 프로세서에 수신 관계가 추가되면 쿼리에 flowfile의 내용을 사용합니다. Elasticsearch의 전체 응답이 한꺼번에 메모리에 로딩되고 결과 Flowfile로 변환되므로 쿼리 크기에 주의를 기울여야 합니다.

태그

elasticsearch, elasticsearch5, elasticsearch6, elasticsearch7, elasticsearch8, get, json, query, read

입력 요구 사항

ALLOWED

민감한 동적 속성 지원

false

속성

속성

설명

Max JSON Field String Length

JSON 문서 또는 특성을 구문 분석할 때 허용되는 문자열 값의 최대 길이입니다.

el-query-attribute

설정하면 실행된 쿼리가 지정된 특성의 각 결과 flowfile에 설정됩니다.

el-rest-client-service

쿼리 실행에 사용할 Elasticsearch 클라이언트 서비스입니다.

el-rest-fetch-index

사용할 인덱스의 이름입니다.

el-rest-format-aggregations

집계 출력 형식입니다.

el-rest-format-hits

히트 출력의 형식입니다.

el-rest-output-no-hits

쿼리에 대한 히트 항목이 없는 경우에도 ‘히트’ flowfile을 출력합니다. true이면 ‘집계’가 출력되더라도 빈 ‘히트’ flowfile이 출력됩니다.

el-rest-query

Lucene 구문이 아닌 JSON 구문의 쿼리입니다. 예: {“query”:{“match”:{“somefield”:”somevalue”}}}. 이 매개 변수를 설정하지 않으면 flowfile 내용에서 쿼리를 읽습니다. 쿼리(속성 및 Flowfile 내용)가 비어 있는 경우, 기본 빈 JSON 오브젝트가 사용되며, 이는 Elasticsearch에서 “match_all” 쿼리 결과를 생성합니다.

el-rest-query-clause

루씬 구문이 아닌 JSON 구문의 “쿼리” 절입니다. 예: {“match”:{“somefield”:”somevalue”}}. 쿼리가 비어 있으면 기본 JSON 오브젝트가 사용되며, 이는 Elasticsearch에서 “match_all” 쿼리를 생성합니다.

el-rest-query-definition-style

프로세서에서 사용하기 위해 JSON 쿼리를 정의하는 방법입니다.

el-rest-split-up-aggregations

모든 집계를 포함하는 flowfile 또는 각 개별 집계에 대해 1개의 flowfile을 출력합니다.

el-rest-split-up-hits

모든 히트를 포함하는 flowfile 또는 각 개별 히트마다 1개의 flowfile을 출력합니다.

el-rest-type

이 문서의 유형(인덱스 및 검색을 위해 Elasticsearch에서 사용)입니다.

es-rest-query-aggs

JSON 구문으로 작성된 1개 이상의 쿼리 집계(또는 “aggs”)입니다. 예: {“items”: {“terms”: {“field”: “product”, “size”: 10}}}

es-rest-query-fields

JSON 구문으로 작성된 검색할 인덱스된 문서의 필드입니다. 예: [“user.id”, “http.response.*”, {“field”: “@timestamp”, “format”: “epoch_millis”}]

es-rest-query-script-fields

JSON 구문으로 작성된 쿼리 런타임에 스크립트 평가를 사용하여 생성할 필드입니다. 예: {“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

JSON 구문으로 작성된 1개 이상의 필드를 기준으로 결과를 정렬합니다. 예: [{“price” : {“order” : “asc”, “mode” : “avg”}}, {“post_date” : {“format”: “strict_date_optional_time_nanos”}}]

es-rest-size

쿼리에서 검색할 최대 문서 수입니다. 쿼리가 페이지 매김된 경우 이 “size”는 전체 결과 세트의 “size”가 아니라 쿼리의 각 페이지에 적용됩니다.

관계

이름

설명

집계

집계는 이 관계로 라우팅됩니다.

실패

서버 가용성과 무관한 이유로 실패하는 모든 flowfile은 이 관계로 이동합니다.

히트

검색 히트는 이 관계로 라우팅됩니다.

원본

오류가 발생하지 않는 모든 원본 플로우 파일은 이 관계로 이동합니다.

Writes 특성

이름

설명

mime.type

application/json

aggregation.name

결과가 출력 flowfile에 있는 집계의 이름입니다

aggregation.number

결과가 출력 flowfile에 있는 집계의 수입니다

hit.count

출력 flowfile에 있는 히트 수입니다

elasticsearch.query.error

인덱스 쿼리에 오류가 있는 경우 Elasticsearch에서 제공하는 오류 메시지입니다.

참고 항목