ConsumeElasticsearch 2025.5.31.15

번들

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

설명

범위 쿼리를 사용하여 필드에 대해 페이지 매김된 쿼리를 반복적으로 실행하여 Elasticsearch 인덱스/쿼리에서 새 문서를 소비하는 프로세서입니다. 프로세서는 더 이상 사용 가능한 결과가 없거나 페이지 매김 유지 만료에 도달할 때까지 여러 페이지의 결과를 검색하고, 그 후에는 범위 쿼리가 마지막으로 검색된 문서 값을 기준으로 필드 제약 조건을 자동으로 업데이트합니다.

태그

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

입력 요구 사항

FORBIDDEN

민감한 동적 속성 지원

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-split-up-aggregations

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

el-rest-split-up-hits

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

el-rest-type

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

es-rest-additional-filters

1개 이상의 쿼리 필터가 Lucene 구문이 아닌 JSON 구문으로 되어 있습니다. 예: [{“match”:{“somefield”:”somevalue”}}, {“match”:{“anotherfield”:”anothervalue”}}]. 이 필터는 Bool 쿼리 필터의 일부로 사용됩니다.

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-range-field

“gt” 바운드 일치를 사용하여 Elasticsearch 범위 쿼리의 일부로 추적할 필드입니다. 이 필드는 검색을 위해 Elasticsearch 문서 내에 존재해야 합니다.

es-rest-range-format

“Range Query Field”가 날짜 필드인 경우 “Initial Value”를 이 형식의 날짜로 변환합니다. 지정하지 않으면 Elasticsearch는 “Range Query Field”의 매핑에서 제공하는 날짜 형식을 사용합니다. 유효한 구문은 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html을 참조하십시오

es-rest-range-initial-value

프로세서가 이전에 실행되지 않은 경우 쿼리에 사용할 초기 값입니다. 프로세서가 이전에 실행되어 해당 상태에 값을 저장한 적이 있는 경우 이 속성은 무시됩니다. 값이 제공되지 않고 프로세서가 이전에 실행되지 않은 경우 범위 쿼리 범위가 사용되지 않습니다. 즉, 모든 문서가 지정된 “Sort Order”로 검색됩니다.

es-rest-range-time-zone

“Range Query Field”가 날짜 필드인 경우 이 타임존을 사용하여 “Initial Value”를 UTC 로 변환합니다. 유효한 값은 ISO 8601 UTC 오프셋(예: “+01:00” 또는 “-08:00”), IANA 타임존(예: “유럽/런던”) IDs 입니다.

es-rest-size

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

es-rest-sort-order

“Range Query Field”를 정렬할 순서입니다. “Range Query Field” 필드에 대한 “sort” 절은 제공된 모든 “Sort” 절 앞에 추가됩니다. “Range Query Field” 필드에 “sort” 절이 이미 있는 경우 업데이트되지 않습니다.

상태 관리

범위

설명

CLUSTER

이 프로세서의 호출 사이에 페이지 매김 상태(스크롤/ PiT)가 만료될 때까지(현재 시간이 마지막 쿼리 실행과 페이지 매김 유지 간격보다 늦을 때) 페이지 매김 상태(scrollId, searchAfter, pitId, hitCount, pageCount, pageExpirationTimestamp, trackingRangeValue)가 유지됩니다.

관계

이름

설명

집계

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

실패

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

히트

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

retry

서버/클러스터 가용성으로 인해 실패하는 모든 flowfile은 이 관계로 이동합니다.

Writes 특성

이름

설명

mime.type

application/json

page.number

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

hit.count

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

elasticsearch.query.error

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

참고 항목