Output Ports
| Port | Description |
| success | The Elasticsearch operation completed successfully. Output fields are available for use in downstream nodes. |
| error | The operation failed. Possible causes: authentication failure, index not found (404), document not found, connection timeout, or malformed Query DSL JSON. |
document/create Output
| Field | Type | Description |
_id | string | The document ID assigned by Elasticsearch. Either the ID you provided or an auto-generated ID. |
_index | string | The name of the index the document was written to. |
result | string | "created" for a new document or "updated" if the ID already existed. |
_version | integer | The document version number. Starts at 1 and increments on each update. |
document/get Output
| Field | Type | Description |
_id | string | The document ID. |
_index | string | The index the document belongs to. |
_version | integer | Current version number of the document. |
_source | object | The full document body — all indexed fields and their values as originally written. |
found | boolean | true if the document exists. false routes to the error port. |
document/search Output
| Field | Type | Description |
hits | array | Array of matching document objects. Each hit contains _id, _index, _score (relevance score), and _source (document body). When Simplify is true, each element is just the _source object directly. |
total | integer | Total number of documents matching the query across the full index (not just the returned page). |
took | integer | Execution time in milliseconds as reported by Elasticsearch. Does not include network round-trip time. |
aggregations | object | Aggregation results keyed by aggregation name. Only present when the query includes an aggs block. Structure varies by aggregation type. |
max_score | float | The highest relevance score among the returned hits. |
Example: document/search Response
{
"hits": [
{
"_id": "prod-1042",
"_index": "products",
"_score": 4.82,
"_source": {
"title": "Wireless Noise-Cancelling Headphones",
"brand": "SoundPeak",
"price": 129.99,
"category": "electronics",
"tags": ["bluetooth", "noise-cancelling", "premium"],
"in_stock": true
}
},
{
"_id": "prod-0891",
"_index": "products",
"_score": 3.17,
"_source": {
"title": "Wired Studio Headphones",
"brand": "SoundPeak",
"price": 89.99,
"category": "electronics",
"tags": ["wired", "studio"],
"in_stock": true
}
}
],
"total": 2,
"took": 4,
"max_score": 4.82,
"aggregations": null
}
Aggregation Response Format
When a search query includes an aggs block, the aggregations output field contains results keyed by the aggregation name you defined. The structure below shows a terms aggregation on the category field:
{
"hits": [],
"total": 4821,
"took": 12,
"aggregations": {
"orders_by_category": {
"buckets": [
{ "key": "electronics", "doc_count": 1842 },
{ "key": "clothing", "doc_count": 1204 },
{ "key": "books", "doc_count": 987 },
{ "key": "home", "doc_count": 788 }
]
},
"total_revenue": {
"value": 284912.50
}
}
}
document/getMany Output
| Field | Type | Description |
documents | array | Array of document objects. Each contains _id, _index, _score, and _source. When Simplify is true, returns an array of plain _source objects. |
total | integer | Total number of matching documents in the index. |
index/getMany Output
| Field | Type | Description |
indices | array | Array of index summary objects. |
indices[].name | string | Index name. |
indices[].health | string | Cluster health status for this index: green, yellow, or red. |
indices[].status | string | open or close. |
indices[].doc_count | integer | Number of documents in the index. |
indices[].store_size | string | Primary shard storage size (e.g. "4.2gb"). |
Use {{ nodes.searchProducts.output.hits }} to iterate over search results in a Loop node, or {{ nodes.searchProducts.output.total }} to include the match count in a summary notification. Reference aggregation buckets with {{ nodes.analyzeOrders.output.aggregations.orders_by_category.buckets }}.