ConsumeElasticsearch 2025.5.31.15¶
번들¶
org.apache.nifi | nifi-elasticsearch-restapi-nar
설명¶
범위 쿼리를 사용하여 필드에 대해 페이지 매김된 쿼리를 반복적으로 실행하여 Elasticsearch 인덱스/쿼리에서 새 문서를 소비하는 프로세서입니다. 프로세서는 더 이상 사용 가능한 결과가 없거나 페이지 매김 유지 만료에 도달할 때까지 여러 페이지의 결과를 검색하고, 그 후에는 범위 쿼리가 마지막으로 검색된 문서 값을 기준으로 필드 제약 조건을 자동으로 업데이트합니다.
입력 요구 사항¶
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에서 제공하는 오류 메시지입니다. |