前言
Elasticsearch 是一个开源的搜索引擎,它支持全文检索、结构化搜索和分析等功能。它是一个基于 Lucene 的分布式搜索引擎,提供了 RESTful 的 API 接口,可以快速地构建大规模搜索应用程序。
在应用程序中使用 Elasticsearch,通常需要安装并配置它。为了方便地管理应用程序的依赖项,可以使用 Docker 容器来安装 Elasticsearch。本文将介绍如何在 Docker 容器中安装 Elasticsearch,并提供配置详解、示例代码,以及学习和指导意义。
步骤
1. 下载 Elasticsearch Docker 镜像
在 Docker Hub 上,有众多 Elasticsearch Docker 镜像可供选择。这里我们选用官方提供的 Elasticsearch 6.8.6 版本镜像。
使用以下命令下载镜像:
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.8.6
2. 创建 Elasticsearch 容器
在下载好 Docker 镜像后,我们可以使用以下命令运行 Elasticsearch 容器:
docker run --name es_container -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.8.6
以上命令告诉 Docker 在 es_container
容器中运行 Elasticsearch 6.8.6 版本,并将容器中的 9200 端口映射到宿主机的 9200 端口,9300 端口映射到宿主机的 9300 端口。此外,通过环境变量 discovery.type
,我们告诉 Elasticsearch 容器只有一个节点,以便在单机环境中使用。
3. 检测 Elasticsearch 是否工作正常
使用以下命令检测 Elasticsearch 是否可以正常工作:
curl -X GET "localhost:9200/_cluster/health?pretty"
如果 Elasticsearch 正确运行,将返回类似以下的输出:
-- -------------------- ---- ------- - -------------- - ----------------- -------- - --------- ----------- - ------ ----------------- - -- ---------------------- - -- ----------------------- - -- --------------- - -- ------------------- - -- --------------------- - -- ------------------- - -- --------------------------- - -- ------------------------- - -- --------------------------- - -- ---------------------------------- - -- --------------------------------- - ---- -
4. 配置 Elasticsearch
在 Elasticsearch 中,通过配置文件进行配置。在容器中,需要将配置文件挂载到容器内部。
首先,创建一个名为 config
的目录,然后将 Elasticsearch 的配置文件 elasticsearch.yml
放置其中。
mkdir config cd config touch elasticsearch.yml
在 elasticsearch.yml
中,我们可以进行 Elasticsearch 的进一步配置。
例如:
cluster.name: my_cluster node.name: my_node path.data: /var/elasticsearch/data path.logs: /var/elasticsearch/logs network.host: 0.0.0.0
其中,cluster.name
和 node.name
是 Elasticsearch 集群的名称和节点名称,path.data
和 path.logs
是 Elasticsearch 数据和日志的路径,network.host
指定了 Elasticsearch 绑定的 IP 地址。
5. 重新启动 Elasticsearch 容器
为了应用新的配置,需要停止并重新启动 Elasticsearch 容器,并将配置文件挂载到容器中。
首先,停止 Elasticsearch 容器。
docker stop es_container
然后,重新启动 Elasticsearch 容器,并将 config
目录挂载到容器中的 /usr/share/elasticsearch/config
目录。
docker run --name es_container -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v "$PWD/config":/usr/share/elasticsearch/config docker.elastic.co/elasticsearch/elasticsearch:6.8.6
6. 检测 Elasticsearch 是否工作正常
使用以下命令检测 Elasticsearch 是否可以正常工作:
curl -X GET "localhost:9200/_cluster/health?pretty"
如果 Elasticsearch 正确运行,将返回类似以下的输出:
-- -------------------- ---- ------- - -------------- - ------------- -------- - --------- ----------- - ------ ----------------- - -- ---------------------- - -- ----------------------- - -- --------------- - -- ------------------- - -- --------------------- - -- ------------------- - -- --------------------------- - -- ------------------------- - -- --------------------------- - -- ---------------------------------- - -- --------------------------------- - ---- -
示例代码
下面是一些示例代码,演示如何使用 Elasticsearch 的 RESTful API 进行搜索。
添加数据
curl -X POST "localhost:9200/my_index/my_type/1" -H 'Content-Type: application/json' -d' { "title": "Elasticsearch", "content": "Elasticsearch is a search engine based on Lucene.", "tags": ["search", "engine", "Lucene"] } '
搜索数据
curl -X GET "localhost:9200/my_index/my_type/_search?q=Lucene&pretty"
-- -------------------- ---- ------- ---- -- --- ----------------------------------------- -- -------------- ----------------- --- - -------- - -------- - ---------- ------- ------- - - - -
总结
在 Docker 容器中安装 Elasticsearch,可以方便地管理应用程序的依赖项,并且能够快速地进行开发、测试和部署。通过配置 Elasticsearch,可以满足更加复杂的应用程序需求。
本文介绍了如何在 Docker 容器中安装 Elasticsearch,并提供了详细的配置说明和示例代码。希望能够对前端类开发人员有所帮助,同时也欢迎大家提出建议和反馈。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6459b3fa968c7c53b0bce3eb