> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Elasticsearch 集成

> 使用 LangChain Python 与 Elasticsearch 集成。

> [Elasticsearch](https://www.elastic.co/elasticsearch/) 是一个分布式、RESTful 搜索与分析引擎。
> 它提供了一个分布式、支持多租户的全文搜索引擎，具有 HTTP Web 接口和无模式的 JSON 文档。

## 安装与设置

### 设置 Elasticsearch

有两种方式开始使用 Elasticsearch：

#### 在本地机器上安装 Elasticsearch

在本地运行 Elasticsearch 进行开发和测试的最简单方法是使用 [start-local](https://github.com/elastic/start-local) 脚本。此脚本使用 Docker 通过一个简单的命令设置 Elasticsearch。

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl -fsSL https://elastic.co/start-local | sh
```

这将创建一个 `elastic-start-local` 文件夹。要启动 Elasticsearch：

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
cd elastic-start-local
./start.sh
```

Elasticsearch 将在 `http://localhost:9200` 上可用。`elastic` 用户的密码和 API 密钥会自动生成并存储在 `elastic-start-local` 文件夹中的 `.env` 文件中。

如果你只需要 Elasticsearch 而不需要 Kibana，可以使用 `--esonly` 选项：

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl -fsSL https://elastic.co/start-local | sh -s -- --esonly
```

<Note>
  start-local 设置仅用于本地测试，不应在生产环境中使用。有关生产环境安装，请参阅官方 [Elasticsearch 文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html)。
</Note>

#### 在 Elastic Cloud 上部署 Elasticsearch

`Elastic Cloud` 是一个托管的 Elasticsearch 服务。注册 [免费试用](https://cloud.elastic.co/registration?utm_source=langchain\&utm_content=documentation)。

### 安装客户端

<CodeGroup>
  ```bash pip theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  pip install elasticsearch
  pip install langchain-elasticsearch
  ```

  ```bash uv theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  uv add elasticsearch
  uv add langchain-elasticsearch
  ```
</CodeGroup>

## 嵌入模型

参见 [使用示例](/oss/python/integrations/embeddings/elasticsearch)。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_elasticsearch import ElasticsearchEmbeddings
```

## 向量存储

参见 [使用示例](/oss/python/integrations/vectorstores/elasticsearch)。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_elasticsearch import ElasticsearchStore
```

### 第三方集成

#### EcloudESVectorStore

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_community.vectorstores.ecloud_vector_search import EcloudESVectorStore
```

## 检索器

### ElasticsearchRetriever

`ElasticsearchRetriever` 通过 Query DSL 实现了对所有 Elasticsearch 功能的灵活访问。

参见 [使用示例](/oss/python/integrations/retrievers/elasticsearch_retriever)。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_elasticsearch import ElasticsearchRetriever
```

### BM25

参见 [使用示例](/oss/python/integrations/retrievers/elastic_search_bm25)。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_community.retrievers import ElasticSearchBM25Retriever
```

## LLM 缓存

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_elasticsearch import ElasticsearchCache
```

## 字节存储

参见 [使用示例](/oss/python/integrations/stores/elasticsearch)。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_elasticsearch import ElasticsearchEmbeddingsCache
```

## 链

这是一个与 Elasticsearch 数据库交互的链。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_classic.chains.elasticsearch_database import ElasticsearchDatabaseChain
```

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档](/use-these-docs) 通过 MCP 连接到 Claude、VSCode 等，以获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/oss/python/integrations/providers/elasticsearch.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
