First time creating a connector? Read this first.
Requirements
You will need:- For the Unstructured Pipelines or the Unstructured API, only Elastic Cloud instances are supported.
- For Unstructured Ingest, Elastic Cloud instances and self-manged Elasticsearch instances are supported.
-
For Elastic Cloud, you will need an Elastic Cloud service instance.
-
For self-managed Elasticsearch, you will need a self-managed Elasticsearch instance.
-
You will need the name of the index on the instance.
For the destination connector, if you need to create an index, you can use for example the following
curlcommand. Replace the following placeholders:-
Replace
<host>:<port>with the instance’s host identifier and port number. -
Replace one of the following, and remove the other:
- For an instance’s user and password combination, replace
<username>with your Elasticsearch or Elastic Cloud instance’s user name, replace<password>with your password, and then remove--user "Authorization: ApiKey <your-api-key>". - For an Elastic Cloud API key, replace
<your-api-key>with your Elastic Cloud API key, and then remove--user "<username>:<password>".
- For an instance’s user and password combination, replace
-
Replace
<index-name>with the name of the new index on the instance. -
Replace
<index-schema>with the schema for the index. A schema is optional; see the explanation following thiscurlcommand for more information.
To learn more, see Create index and Get index. For the destination connector, the index does not need to contain a schema beforehand. If Unstructured encounters an index without a schema, Unstructured will automatically create a compatible schema for you before inserting items into the index. Nonetheless, to reduce possible schema compatibility issues, Unstructured recommends that you create a schema that is compatible with Unstructured’s schema. Unstructured cannot provide a schema that is guaranteed to work in all circumstances. This is because these schemas will vary based on your source files’ types; how you want Unstructured to partition, chunk, and generate embeddings; any custom post-processing code that you run; and other factors. For objects in themetadatafield that Unstructured produces and that you want to store in an Elasticsearch or Elastic Cloud index, you must create fields in your index’s schema that follows Unstructured’smetadatafield naming convention. For example, if Unstructured produces ametadatafield with the following child objects:You can adapt the following index schema example for your own needs. Note that outside ofmetadata, the following fields are required by Unstructured whenever you create your own index schema:element_idrecord_id, which is required by Unstructured for intelligent record updates.type, which is not required, but highly recommended.textembeddingsif embeddings are generated; make sure to setdimsto the same number of dimensions as the embedding model generates.
See also:Therecord_id,element_id, andidfields are closely related, but each has a distinct purpose. For more information, see How connectors use record IDs, element IDs, and IDs.- An Introduction to Elasticsearch Mapping
- Explicit mapping
- Dynamic field mapping
- Unstructured document elements and metadata
-
Replace
-
For Elastic Cloud, you will need the Elastic Cloud service instance’s API key. If you are using Unstructured Ingest, you will also need the instance’s Cloud ID. To get these, see your Elasticsearch Service web console or Elastic Cloud API keys.
When generating an Elastic Cloud service instance’s API key through the Elasticsearch Service web console, be sure after you click Create API key to select Encoded to get the API key’s value. (The Encoded API key value is the Base64 encoding of the UTF-8 representation of the API key’s ID and key value joined by a colon [:].)
-
For self-managed Elasticsearch, you will need:
- The self-managed instance’s hostname and port number. See Networking.
- If you’re using basic authentication to the self-managed instance, the user’s name and password.
-
If you’re using token-based authentication to the self-managed instance, the bearer token or API key for the instance. See Token-based authentication services and Create API key.
When generating an API key for a self-managed Elasticsearch instance by calling POST /_security/api_key, be sure to use the
encodedvalue in the response payload. (Thisencodedvalue is the Base64 encoding of the UTF-8 representation of the payload’sidandapi_keyvalues joined by a colon [:]). Do not use theapi_keyvalue by itself. - If you’re using certificate authentication to the self-managed instance, the path to the Certificate Authority (CA) file on the instance, and the certificate fingerprint. See SSL certificate API and Where can I see my Certificate Fingerprint?.
Examples
To create an Elasticsearch destination connector, see the following examples. For more information on working with destination connectors using the Unstructured API, see Destination endpoints.Configuration settings
Replace the preceding placeholders as follows:A unique name for this connector.
An array of Elastic Cloud instance URLs, for example
["https://<random-number>.<region>.<cloud-provider>.cloud.es.io"].The Elastic Cloud API key for the target cluster.
The name of the target index in the cluster.

