Portal Community

When to Use

getMany vs search: document/getMany uses a simple field-match filter. It does not support Query DSL constructs like bool, multi_match, range, or aggregations. If you need those, use document/search.

Configuration

Connection

FieldRequiredDescription
HostRequiredElasticsearch cluster URL, e.g. https://localhost:9200.
UsernameOptionalElasticsearch username (required if security is enabled).
PasswordOptionalPassword for the specified username.
IgnoreSSLOptionalDefault false. Skip TLS validation. Development use only.

Operation

FieldRequiredDescription
IndexNameRequiredThe index to query.
LimitOptionalMaximum number of documents to return. Default 50. Ignored when ReturnAll is true.
ReturnAllOptionalDefault false. When true, pages through all documents automatically and returns the complete result set regardless of size.
FilterOptionalA plain JSON object of field-value pairs used as a filter. Example: {"status": "active", "region": "us-east"}. All specified fields must match (implicit AND). Leave empty to return all documents up to the limit.

Validation Errors

Error CodeCause
VAL_MISSING_INDEXIndexName is empty.

Output

Success Port

FieldTypeDescription
documentsarrayList of document objects. Each entry is the full document body as stored in Elasticsearch, equivalent to _source from a get operation.
totalHitsintegerTotal number of matching documents in the index. May be greater than documents.length when Limit is applied and ReturnAll is false.

Error Port

Fires on connection failure, authentication error, or if the index does not exist. The output contains errorCode and message fields.

Access documents downstream with {{ $output.nodeName.documents }} — this is an array you can pass directly to a loop node. To check how many were returned vs the total available, compare {{ $output.nodeName.documents.length }} with {{ $output.nodeName.totalHits }}.

Examples

Retrieve All Active Products

{
  "resource": "document",
  "operation": "getMany",
  "IndexName": "products",
  "Limit": 100,
  "Filter": {
    "status": "active"
  }
}

Returns up to 100 active products. Connect the output to a loop node and iterate over {{ $output.getProducts.documents }}.

Full Index Export with ReturnAll

{
  "resource": "document",
  "operation": "getMany",
  "IndexName": "audit-log-2025",
  "ReturnAll": true
}

Retrieves every document in the index regardless of count. Use for data migration or archive workflows where completeness is required.

Multi-Field Filter

{
  "resource": "document",
  "operation": "getMany",
  "IndexName": "orders",
  "Limit": 50,
  "Filter": {
    "status": "pending",
    "region": "{{ $json.region }}"
  }
}

All filter fields use an implicit AND — only documents matching every field are returned.