介绍
Elasticsearch 是一种基于 Lucene 的全文搜索引擎,具有开放源代码和高度可扩展性的特点。Elasticsearch 适用于大型数据集和复杂查询。本文将详细介绍在 Docker 容器中部署 Elasticsearch 的方法及注意事项。
步骤
安装 Docker
首先,确保 Docker 已经安装在您的计算机上。如果您尚未安装 Docker,请访问官方网站以获取更多信息。
在 Docker 中安装 Elasticsearch
执行以下命令以在 Docker 中安装 Elasticsearch 容器:
docker run -d --name elasticsearch --rm -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.7.1
这将安装 Elasticsearch 7.7.1 版本,其中 -d
表示容器在后台运行,--name
将容器命名为 elasticsearch
,--rm
表示容器停止后会自动删除,-p
表示端口映射,discovery.type=single-node
表示本地运行单节点 Elasticsearch。
此命令一旦执行,Elasticsearch 将在 Docker 容器中运行,并监听本地端口 9200
和 9300
。
确认 Elasticsearch 是否安装成功
使用以下命令来确认 Elasticsearch 是否安装成功:
curl -X GET "http://localhost:9200/"
如果安装成功,你应该看到如下的成功响应:
-- -------------------- ---- ------- - ------ - --------- -------------- - ----------------- -------------- - --------- --------- - - -------- - -------- -------------- - ---------- ------------ - --------- ------------ - ------------------------------------------- ------------ - ------------------------------ ---------------- - ------ ---------------- - -------- ------------------------------------ - -------- ------------------------------------- - ------------- -- --------- - ---- ----- --- ------- -
连接 Elasticsearch
使用 Elasticsearch 的 Restful API,可以通过 curl 命令轻松连接 Elasticsearch。
如下是一个简单的示例。我们将创建一个名为 myindex
的索引,并添加一个名为 mydoc
的文档:
-- -------------------- ---- ------- ---- -- --- ------------------------------- -- -------------- ----------------- --- - ------------ -------------- --------- ------------- -- --------------- ------------- - - - --
对于文档:
curl -X PUT "http://localhost:9200/myindex/_doc/mydoc" -H 'Content-Type: application/json' -d' { "title":"My article", "description":"This is my first article." }'
确认文档的存储是否成功,可以使用以下命令:
curl -X GET "http://localhost:9200/myindex/_doc/mydoc"
注意事项
- Elasticsearch 的默认配置在生产环境下通常不是最佳选择。生产环境下需要将 Elasticsearch 部署到集群中进行扩展并修改它的配置。
- 将 Elasticsearch 部署在 Docker 容器中并不是最好的解决方案,最好的方案还是部署在真实的服务器环境中。
结论
在本文中,我们介绍了如何在 Docker 容器中部署 Elasticsearch,并提供了一些基本的 Restful API 调用示例。希望这对于使用 Elasticsearch 的开发人员来说,能够有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66fb776244713626015d4941