# Retrievers

> langchain_elasticsearch → Retrievers

## Classes

- [`DistanceStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/DistanceStrategy)
- [`BaseRetrievalStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/BaseRetrievalStrategy)
- [`ApproxRetrievalStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/ApproxRetrievalStrategy)
- [`ExactRetrievalStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/ExactRetrievalStrategy)
- [`SparseRetrievalStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/SparseRetrievalStrategy)
- [`BM25RetrievalStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/BM25RetrievalStrategy)
- [`ElasticsearchChatMessageHistory`](https://reference.langchain.com/python/langchain-elasticsearch/chat_history/ElasticsearchChatMessageHistory)
- [`AsyncElasticsearchChatMessageHistory`](https://reference.langchain.com/python/langchain-elasticsearch/chat_history/AsyncElasticsearchChatMessageHistory)
- [`AsyncElasticsearchRetriever`](https://reference.langchain.com/python/langchain-elasticsearch/retrievers/AsyncElasticsearchRetriever)
- [`ElasticsearchRetriever`](https://reference.langchain.com/python/langchain-elasticsearch/retrievers/ElasticsearchRetriever)
- [`AsyncElasticsearchCache`](https://reference.langchain.com/python/langchain-elasticsearch/cache/AsyncElasticsearchCache)
- [`AsyncElasticsearchEmbeddingsCache`](https://reference.langchain.com/python/langchain-elasticsearch/cache/AsyncElasticsearchEmbeddingsCache)
- [`ElasticsearchCache`](https://reference.langchain.com/python/langchain-elasticsearch/cache/ElasticsearchCache)
- [`ElasticsearchEmbeddingsCache`](https://reference.langchain.com/python/langchain-elasticsearch/cache/ElasticsearchEmbeddingsCache)
- [`AsyncElasticsearchEmbeddings`](https://reference.langchain.com/python/langchain-elasticsearch/embeddings/AsyncElasticsearchEmbeddings)
- [`ElasticsearchEmbeddings`](https://reference.langchain.com/python/langchain-elasticsearch/embeddings/ElasticsearchEmbeddings)
- [`EmbeddingService`](https://reference.langchain.com/python/langchain-elasticsearch/embeddings/EmbeddingService)
- [`EmbeddingServiceAdapter`](https://reference.langchain.com/python/langchain-elasticsearch/embeddings/EmbeddingServiceAdapter)
- [`AsyncEmbeddingService`](https://reference.langchain.com/python/langchain-elasticsearch/embeddings/AsyncEmbeddingService)
- [`AsyncEmbeddingServiceAdapter`](https://reference.langchain.com/python/langchain-elasticsearch/embeddings/AsyncEmbeddingServiceAdapter)
- [`AsyncElasticsearchStore`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/AsyncElasticsearchStore)
- [`ElasticsearchStore`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/ElasticsearchStore)
- [`BM25Strategy`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/BM25Strategy)
- [`DenseVectorScriptScoreStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/DenseVectorScriptScoreStrategy)
- [`DenseVectorStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/DenseVectorStrategy)
- [`RetrievalStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/RetrievalStrategy)
- [`SparseVectorStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/SparseVectorStrategy)
- [`AsyncBM25Strategy`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/AsyncBM25Strategy)
- [`AsyncDenseVectorScriptScoreStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/AsyncDenseVectorScriptScoreStrategy)
- [`AsyncDenseVectorStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/AsyncDenseVectorStrategy)
- [`AsyncRetrievalStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/AsyncRetrievalStrategy)
- [`AsyncSparseVectorStrategy`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores/AsyncSparseVectorStrategy)
- [`ElasticsearchChatMessageHistory`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/chat_history/ElasticsearchChatMessageHistory)
- [`ElasticsearchRetriever`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/retrievers/ElasticsearchRetriever)
- [`ElasticsearchCache`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/cache/ElasticsearchCache)
- [`ElasticsearchEmbeddingsCache`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/cache/ElasticsearchEmbeddingsCache)
- [`ElasticsearchEmbeddings`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/embeddings/ElasticsearchEmbeddings)
- [`EmbeddingServiceAdapter`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/embeddings/EmbeddingServiceAdapter)
- [`ElasticsearchStore`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/vectorstores/ElasticsearchStore)
- [`AsyncElasticsearchChatMessageHistory`](https://reference.langchain.com/python/langchain-elasticsearch/_async/chat_history/AsyncElasticsearchChatMessageHistory)
- [`AsyncElasticsearchRetriever`](https://reference.langchain.com/python/langchain-elasticsearch/_async/retrievers/AsyncElasticsearchRetriever)
- [`AsyncElasticsearchCache`](https://reference.langchain.com/python/langchain-elasticsearch/_async/cache/AsyncElasticsearchCache)
- [`AsyncElasticsearchEmbeddingsCache`](https://reference.langchain.com/python/langchain-elasticsearch/_async/cache/AsyncElasticsearchEmbeddingsCache)
- [`AsyncElasticsearchEmbeddings`](https://reference.langchain.com/python/langchain-elasticsearch/_async/embeddings/AsyncElasticsearchEmbeddings)
- [`AsyncEmbeddingServiceAdapter`](https://reference.langchain.com/python/langchain-elasticsearch/_async/embeddings/AsyncEmbeddingServiceAdapter)
- [`AsyncElasticsearchStore`](https://reference.langchain.com/python/langchain-elasticsearch/_async/vectorstores/AsyncElasticsearchStore)

## Functions

- [`user_agent()`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/user_agent)
- [`with_user_agent_header()`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/with_user_agent_header)
- [`async_with_user_agent_header()`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/async_with_user_agent_header)
- [`model_must_be_deployed()`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/model_must_be_deployed)
- [`create_elasticsearch_client()`](https://reference.langchain.com/python/langchain-elasticsearch/client/create_elasticsearch_client)
- [`create_async_elasticsearch_client()`](https://reference.langchain.com/python/langchain-elasticsearch/client/create_async_elasticsearch_client)

## Modules

- [`langchain_elasticsearch`](https://reference.langchain.com/python/langchain-elasticsearch/langchain_elasticsearch)
- [`chat_history`](https://reference.langchain.com/python/langchain-elasticsearch/chat_history)
- [`client`](https://reference.langchain.com/python/langchain-elasticsearch/client)
- [`retrievers`](https://reference.langchain.com/python/langchain-elasticsearch/retrievers)
- [`cache`](https://reference.langchain.com/python/langchain-elasticsearch/cache)
- [`embeddings`](https://reference.langchain.com/python/langchain-elasticsearch/embeddings)
- [`vectorstores`](https://reference.langchain.com/python/langchain-elasticsearch/vectorstores)
- [`chat_history`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/chat_history)
- [`retrievers`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/retrievers)
- [`cache`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/cache)
- [`embeddings`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/embeddings)
- [`vectorstores`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/vectorstores)
- [`chat_history`](https://reference.langchain.com/python/langchain-elasticsearch/_async/chat_history)
- [`retrievers`](https://reference.langchain.com/python/langchain-elasticsearch/_async/retrievers)
- [`cache`](https://reference.langchain.com/python/langchain-elasticsearch/_async/cache)
- [`embeddings`](https://reference.langchain.com/python/langchain-elasticsearch/_async/embeddings)
- [`vectorstores`](https://reference.langchain.com/python/langchain-elasticsearch/_async/vectorstores)

## Constants

- [`logger`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/logger)
- [`EUCLIDEAN_DISTANCE`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/DistanceStrategy/EUCLIDEAN_DISTANCE)
- [`MAX_INNER_PRODUCT`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/DistanceStrategy/MAX_INNER_PRODUCT)
- [`DOT_PRODUCT`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/DistanceStrategy/DOT_PRODUCT)
- [`JACCARD`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/DistanceStrategy/JACCARD)
- [`COSINE`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/DistanceStrategy/COSINE)
- [`query_model_id`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/ApproxRetrievalStrategy/query_model_id)
- [`hybrid`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/ApproxRetrievalStrategy/hybrid)
- [`rrf`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/ApproxRetrievalStrategy/rrf)
- [`model_id`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/SparseRetrievalStrategy/model_id)
- [`k1`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/BM25RetrievalStrategy/k1)
- [`b`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/BM25RetrievalStrategy/b)
- [`messages`](https://reference.langchain.com/python/langchain-elasticsearch/chat_history/ElasticsearchChatMessageHistory/messages)
- [`logger`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/chat_history/logger)
- [`index`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/chat_history/ElasticsearchChatMessageHistory/index)
- [`session_id`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/chat_history/ElasticsearchChatMessageHistory/session_id)
- [`ensure_ascii`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/chat_history/ElasticsearchChatMessageHistory/ensure_ascii)
- [`client`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/chat_history/ElasticsearchChatMessageHistory/client)
- [`created`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/chat_history/ElasticsearchChatMessageHistory/created)
- [`logger`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/retrievers/logger)
- [`client`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/retrievers/ElasticsearchRetriever/client)
- [`index_name`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/retrievers/ElasticsearchRetriever/index_name)
- [`body_func`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/retrievers/ElasticsearchRetriever/body_func)
- [`content_field`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/retrievers/ElasticsearchRetriever/content_field)
- [`document_mapper`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/retrievers/ElasticsearchRetriever/document_mapper)
- [`logger`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/cache/logger)
- [`mapping`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/cache/ElasticsearchCache/mapping)
- [`mapping`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/cache/ElasticsearchEmbeddingsCache/mapping)
- [`client`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/embeddings/ElasticsearchEmbeddings/client)
- [`model_id`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/embeddings/ElasticsearchEmbeddings/model_id)
- [`input_field`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/embeddings/ElasticsearchEmbeddings/input_field)
- [`logger`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/vectorstores/logger)
- [`embedding`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/vectorstores/ElasticsearchStore/embedding)
- [`client`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/vectorstores/ElasticsearchStore/client)
- [`query_field`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/vectorstores/ElasticsearchStore/query_field)
- [`vector_query_field`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/vectorstores/ElasticsearchStore/vector_query_field)
- [`embeddings`](https://reference.langchain.com/python/langchain-elasticsearch/_sync/vectorstores/ElasticsearchStore/embeddings)
- [`logger`](https://reference.langchain.com/python/langchain-elasticsearch/_async/chat_history/logger)
- [`index`](https://reference.langchain.com/python/langchain-elasticsearch/_async/chat_history/AsyncElasticsearchChatMessageHistory/index)
- [`session_id`](https://reference.langchain.com/python/langchain-elasticsearch/_async/chat_history/AsyncElasticsearchChatMessageHistory/session_id)
- [`ensure_ascii`](https://reference.langchain.com/python/langchain-elasticsearch/_async/chat_history/AsyncElasticsearchChatMessageHistory/ensure_ascii)
- [`client`](https://reference.langchain.com/python/langchain-elasticsearch/_async/chat_history/AsyncElasticsearchChatMessageHistory/client)
- [`created`](https://reference.langchain.com/python/langchain-elasticsearch/_async/chat_history/AsyncElasticsearchChatMessageHistory/created)
- [`logger`](https://reference.langchain.com/python/langchain-elasticsearch/_async/retrievers/logger)
- [`client`](https://reference.langchain.com/python/langchain-elasticsearch/_async/retrievers/AsyncElasticsearchRetriever/client)
- [`index_name`](https://reference.langchain.com/python/langchain-elasticsearch/_async/retrievers/AsyncElasticsearchRetriever/index_name)
- [`body_func`](https://reference.langchain.com/python/langchain-elasticsearch/_async/retrievers/AsyncElasticsearchRetriever/body_func)
- [`content_field`](https://reference.langchain.com/python/langchain-elasticsearch/_async/retrievers/AsyncElasticsearchRetriever/content_field)
- [`document_mapper`](https://reference.langchain.com/python/langchain-elasticsearch/_async/retrievers/AsyncElasticsearchRetriever/document_mapper)
- [`logger`](https://reference.langchain.com/python/langchain-elasticsearch/_async/cache/logger)
- [`mapping`](https://reference.langchain.com/python/langchain-elasticsearch/_async/cache/AsyncElasticsearchCache/mapping)
- [`mapping`](https://reference.langchain.com/python/langchain-elasticsearch/_async/cache/AsyncElasticsearchEmbeddingsCache/mapping)
- [`client`](https://reference.langchain.com/python/langchain-elasticsearch/_async/embeddings/AsyncElasticsearchEmbeddings/client)
- [`model_id`](https://reference.langchain.com/python/langchain-elasticsearch/_async/embeddings/AsyncElasticsearchEmbeddings/model_id)
- [`input_field`](https://reference.langchain.com/python/langchain-elasticsearch/_async/embeddings/AsyncElasticsearchEmbeddings/input_field)
- [`logger`](https://reference.langchain.com/python/langchain-elasticsearch/_async/vectorstores/logger)
- [`embedding`](https://reference.langchain.com/python/langchain-elasticsearch/_async/vectorstores/AsyncElasticsearchStore/embedding)
- [`client`](https://reference.langchain.com/python/langchain-elasticsearch/_async/vectorstores/AsyncElasticsearchStore/client)
- [`query_field`](https://reference.langchain.com/python/langchain-elasticsearch/_async/vectorstores/AsyncElasticsearchStore/query_field)
- [`vector_query_field`](https://reference.langchain.com/python/langchain-elasticsearch/_async/vectorstores/AsyncElasticsearchStore/vector_query_field)
- [`embeddings`](https://reference.langchain.com/python/langchain-elasticsearch/_async/vectorstores/AsyncElasticsearchStore/embeddings)
