ElasticsearchDocumentStore

Use the Elasticsearch database as your document store.

Basic Information

Overview

For details, see ElasticsearchDocumentStore in Haystack documentation.

Authorization

You need an Elasticsearch account and cloud_id and api_key to use this document store in Elastic Cloud. You can create a secret for it and then pass it its name in the api_key parameter of the document store. To learn more about secrets, see Add Secrets to Connect to Third Party Providers.

Usage

For instructions on how to create a secret to connect to the document store, write documents, and then retrieve them, see Connect to external database.

Example Configuration

In an Indexing Pipeline

To write the preprocessed files into the document store:

  1. Add DocumentWriter to your pipeline.
  2. Add ElasticsearchDocumentStore and configure it on the component card.
  3. Connect ElasticsearchDocumentStore to DocumentWriter.

In a Query Pipeline

To retrieve files from the document store:

  1. Add an Elasticsearch retriever to your pipeline.
  2. On the retriever's card, click Configure under the document_store parameter. This opens a YAML editor.

Example

The document store connected to DocumentWriter:

Elasticsearchdocumentstore connected to writer

When you switch to the YAML view, you can see that the document store is an argument of DocumentWriter and you can configure it there:

writer:
    type: haystack.components.writers.document_writer.DocumentWriter
    init_parameters:
      document_store:
        type: haystack_integrations.document_stores.elasticsearch.document_store.ElasticsearchDocumentStore #document store configuration
        init_parameters:
          index: default
          embedding_similarity_function: cosine
      policy: OVERWRITE

Init Parameters

To check the parameters you can customize for this document store, see ElasticsearchDocumentStore API reference in Haystack documentation.