PaginatedJsonQueryElasticsearch 2025.5.31.15

번들

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

설명

사용자가 Elasticsearch JSON DSL 로 작성된 페이지 매김 쿼리(집계 포함)를 실행할 수 있는 프로세서입니다. QUERY 특성이 채워지지 않으면 쿼리에 flowfile의 내용을 사용합니다. 검색 후/시점 쿼리에는 유효한 ‘정렬’ 필드가 포함되어야 합니다.

태그

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

입력 요구 사항

REQUIRED

민감한 동적 속성 지원

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-pagination-keep-alive

페이지 매김 “keep_alive” 기간입니다. 기간 Elasticsearch는 요청 사이에 스크롤/피트 커서를 유지합니다(모든 페이지가 반환될 것으로 예상되는 시간이 아니라 페이지 검색 사이에 요청에 허용되는 최대 시간임).

el-rest-pagination-type

사용할 페이지 매김 방법입니다. 모든 Elasticsearch 버전에서 모든 유형을 사용할 수 있는 것은 아니므로 Elasticsearch 문서를 확인하여 서비스에 적용 가능하고 권장되는 유형을 확인할 수 있습니다.

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 또는 모든 페이징된 응답의 모든 히트를 포함하는 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에 있는 집계의 수입니다

page.number

출력 flowfile에 있는 결과가 반환된 페이지(요청)의 번호(1부터 시작)입니다

hit.count

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

elasticsearch.query.error

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

참고 항목