在您的本地机器上运行Elasticsearch以进行开发
#发展 #php #docker #elasticsearch

Elasticsearch的开源版本是许多事情的最佳解决方案。我们可以在日常开发人员生活中使用它作为搜索引擎,为用户或分析存储创造快速且相关的搜索体验,以制作一些不错的仪表板。

如果您想尝试与Elasticsearch一起工作,则此帖子适合您。我将向您展示您需要知道的所有您在本地计算机上运行和管理Elasticsearch。

Docker

在本地运行和管理Elasticsearch的最简单方法是Docker。如果您尚未安装Docker,请按照以下步骤:

  1. 运行此命令以下载Docker安装脚本。
$ curl -fsSL https://get.docker.com -o install-docker.sh
  1. 下载后,安装脚本运行此命令以在系统上安装Docker。
$ sudo sh install-docker.sh

运行Elasticsearch

假设Docker启动并运行,请使用以下命令运行Elasticsearch:

$ docker run -p 9200:9200 --name elasticsearch -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2-amd64

此命令将用版本7.10.2标记的Elasticsearch开源(OSS)图像将端口9200绑定到您的本地主机,并将发现类型设置为“单节点”。

让我们看看这一切的含义。

  • Elasticsearch使用标志-p 9200:9200在端口9200上操作,我们将此端口从Docker容器绑定到本地机器。在http://localhost:9200上提供Elasticsearch2。
  • 使用—name elasticsearch我们命名我们的docker容器,以便以后可以轻松地引用。
  • 当Elasticsearch在生产环境中运行时,通常是多个Elasticsearch 节点运行的集群。这些节点通过网络相互通信,并随时准备 Discover 想要加入群集的新节点。由于我们在本地机器上运行Elasticsearch用于开发目的,因此禁用此行为是有意义的。通过环境变量discovery.type=single-node,我们告诉alasticsearch,它不应该在网络中寻找其他elasticsearch节点。
  • 最后,我们拉动了Elasticsearch(docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2-amd64)的 oss 图像。 OSS代表开源软件。它是Elasticsearch的开源版本,它比完整版本更轻巧,并且包含搜索和分析引擎的所有必要功能。

OOS版本已在Apache 2.0许可下获得许可,使我们可以自由使用,修改和分发Elasticsearch,而无需任何许可限制。

Here you can find all the official Elasticsearch docker images provided by Elastic the company behind Elasticsearch.

docker run命令完成运行后,您可以检查Elasticsearch是否也与curl一起运行。

$ curl -X GET http://localhost:9200

如果一切都正确,您会在控制台中看到此输出

{
  "name" : "0a25fd395139",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "nBknoxw0QyG-fHS8j9dW8w",
  "version" : {
    "number" : "7.10.2",
    "build_flavor" : "oss",
    "build_type" : "docker",
    "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",
    "build_date" : "2021-01-13T00:42:12.435326Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

开始,停止和重新启动Elasticsearch:

将Elasticsearch作为Docker容器运行后,您可以使用以下命令控制其生命周期:

  • 停止Elasticsearch:
$ docker stop elasticsearch

此命令优雅地停止运行的Elasticsearch容器。

  • 启动Elasticsearch:
$ docker start elasticsearch

此命令启动了先前创建的Elasticsearch Container。

  • 重新启动Elasticsearch:
$ docker restart elasticsearch

此命令重新启动Elasticsearch容器并应用任何配置更改或从崩溃中恢复。

处理Elasticsearch Crashes

如果您的Elasticsearch Crashes和docker restart elasticsearch无法解决问题,则可以随时擦除所有Elasticsearch数据并开始新的。

Elasticsearch将其数据存储在Docker容器中的/usr/share/elasticsearch/data/nodes文件夹中。如果删除此文件夹,您将有一个新的elasticsearch可以使用。

使用以下命令删除Docker容器中的nodes文件夹。

$ docker exec -it elasticsearch rm -rf /usr/share/elasticsearch/data/nodes

此命令删除存储在容器的/usr/share/elasticsearch/data/nodes目录中的Elasticsearch数据。但是,请记住,执行此命令将导致数据丢失,如果您在Elasticsearch中有数据不想丢失的数据,则不应该使用它。

删除nodes文件夹后,重新启动ElasticSearch以重新创建必要的数据结构至关重要。使用docker restart elasticsearch命令来执行此操作。

结论:

使用Docker运行Elasticsearch提供了一种管理Elasticsearch的方便方法。通过遵循概述的步骤,您可以快速使用Docker运行Elasticsearch并开始使用它。

既然您正在运行Elasticsearch,那么在以后的帖子中,我将向您展示如何使用Elasticsearch为应用程序创建强大的搜索。