Retrieves a document from Elasticsearch using the specified connection properties and the identifier of the document to retrieve. If the cluster has been configured for authorization and/or secure transport (SSL/TLS) and the Shield plugin is available, secure connections can be made. This processor supports Elasticsearch 2.x clusters.


elasticsearch, fetch, read, get


In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, whether a property supports the NiFi Expression Language, and whether a property is considered "sensitive", meaning that its value will be encrypted. Before entering a value in a sensitive property, ensure that the nifi.properties file has an entry for the property nifi.sensitive.props.key.

NameDefault ValueAllowable ValuesDescription
Cluster NameelasticsearchName of the ES cluster (for example, elasticsearch_brew). Defaults to 'elasticsearch'
Supports Expression Language: true
ElasticSearch HostsElasticSearch Hosts, which should be comma separated and colon for hostname/port host1:port,host2:port,.... For example testcluster:9300. This processor uses the Transport Client to connect to hosts. The default transport client port is 9300.
Supports Expression Language: true
SSL Context ServiceController Service API:
The SSL Context Service used to provide client certificate information for TLS/SSL connections. This service only applies if the Elasticsearch endpoint(s) have been secured with TLS/SSL.
Shield Plugin FilenameSpecifies the path to the JAR for the Elasticsearch Shield plugin. If the Elasticsearch cluster has been secured with the Shield plugin, then the Shield plugin JAR must also be available to this processor. Note: Do NOT place the Shield JAR into NiFi's lib/ directory, doing so will prevent the Shield plugin from being loaded.
Supports Expression Language: true
UsernameUsername to access the Elasticsearch cluster
Supports Expression Language: true
PasswordPassword to access the Elasticsearch cluster
Sensitive Property: true
Supports Expression Language: true
ElasticSearch Ping Timeout5sThe ping timeout used to determine when a node is unreachable. For example, 5s (5 seconds). If non-local recommended is 30s
Supports Expression Language: true
Sampler Interval5sHow often to sample / ping the nodes listed and connected. For example, 5s (5 seconds). If non-local recommended is 30s.
Supports Expression Language: true
Document IdentifierThe identifier for the document to be fetched
Supports Expression Language: true
IndexThe name of the index to read from
Supports Expression Language: true
TypeThe type of this document (used by Elasticsearch for indexing and searching)
Supports Expression Language: true
Character SetUTF-8Specifies the character set of the document data.
Supports Expression Language: true


retryA FlowFile is routed to this relationship if the document cannot be fetched but attempting the operation again may succeed
successAll FlowFiles that are read from Elasticsearch are routed to this relationship
failureAll FlowFiles that cannot be read from Elasticsearch are routed to this relationship
not foundA FlowFile is routed to this relationship if the specified document does not exist in the Elasticsearch cluster

Reads Attributes:

None specified.

Writes Attributes:

filenameThe filename attributes is set to the document identifier
es.indexThe Elasticsearch index containing the document
es.typeThe Elasticsearch document type

State management:

This component does not store state.


This component is not restricted.

Input requirement:

This component requires an incoming relationship.