Ingest your files into Unstructured from Elasticsearch.

The requirements are as follows.

  • For the Unstructured Platform, 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. See Create index and Get index.

    The Elasticsearch index that you use must have a schema that is compatible with the schema of the documents that Unstructured produces for you. 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.

    You can adapt the following index schema example for your own needs:

    {
        "settings": {
            "index": {
                "knn": true,
                "knn.algo_param.ef_search": 100
            }
        },
        "mappings": {
            "properties": {
                "record_id": {
                    "type": "text"
                },
                "element_id": {
                    "type": "keyword"
                },
                "text": {
                    "type": "text"
                },
                "embeddings": {
                    "type": "dense_vector",
                    "dims": 384,
                    "index": true,
                    "similarity": "cosine"
                },
                "metadata": {
                    "type": "object",
                    "properties": {
                        "parent_id": {
                            "type": "text"
                        },
                        "page_number": {
                            "type": "integer"
                        },
                        "is_continuation": {
                            "type": "boolean"
                        },
                        "orig_elements": {
                            "type": "text"
                        }
                    }
                }
            }
        }
    }
    

    See also:

  • 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.

  • For self-managed Elasticsearch, you will need:

To create or change a Elasticsearch source connector, see the following examples.

Replace the preceding placeholders as follows:

  • <name> (required) - A unique name for this connector.
  • hosts is a required array, with <host-name> specifying the URL of the Elastic Cloud instance to access, for example: ["https://<random-number>.<region>.<cloud-provider>.cloud.es.io"].
  • <es-api-key> (required) - The Elastic Cloud API key for the target cluster.
  • <index-name> (required) - The name of the target index in the cluster.

To change a connector, replace <connector-id> with the source connector’s unique ID. To get this ID, see List source connectors.