ElasticSearch入门
准备好将ElasticSearch作为测试驱动器,并且亲自了解如何使用REST API来存储、搜索和分析数据了吗?
按照以下步骤,逐步完成入门教程:
- 启动并运行Elasticsearch集群
- 为一些样本文件编制索引
- 使用Elasticsearch查询语言搜索文档
- 使用存储桶和指标聚合分析结果
查看Elasticsearch简介,学习术语,并了解Elasticsearch的工作原理。如果您已经熟悉Elasticsearch并想了解它如何与其余堆栈一起工作,则可能要跳到 Elastic Stack教程,以了解如何使用Elasticsearch,Kibana,Beats和Logstash。
开始使用Elasticsearch的最快方法是 在云中开始Elasticsearch Service的14天免费试用。
启动并运行ElasticSearch
要将Elasticsearch用作测试驱动器,您可以 在Elasticsearch Service上创建 托管部署,或在您自己的Linux,macOS或Windows计算机上设置多节点Elasticsearch集群。
在Elastic Cloud上运行ElasticSearch
在Elasticsearch Service上创建部署时,该服务与Kibana和APM一起配置一个带有三节点Elasticsearch集群。
要创建部署:
- 注册免费试用版, 然后验证您的电子邮件地址。
- 为您的帐户设置密码。
- 单击创建部署。
在Linux、macOS或Windows上本地运行ElasticSearch
在Elasticsearch Service上创建部署时,将自动设置一个主节点和两个数据节点。通过从tar或zip存档安装,您可以在本地启动Elasticsearch的多个实例,以查看多节点集群的行为。
要在本地运行三节点的Elasticsearch集群:
1.下载适用于您的操作系统的Elasticsearch存档:
Linux:elasticsearch-7.6.1-linux-x86_64.tar.gz
macOS:elasticsearch-7.6.1-darwin-x86_64.tar.gz
Windows: elasticsearch-7.6.1-windows-x86_64.zip
2.提取
Linux:
tar -xvf elasticsearch-7.6.1-linux-x86_64.tar.gz
macOS:
tar -xvf elasticsearch-7.6.1-darwin-x86_64.tar.gz
Windows PowerShell:
Expand-Archive elasticsearch-7.6.1-windows-x86_64.zip
3.从bin目录启动ElasticSearch
Linux and macOS:
cd elasticsearch-7.6.1/bin
./elasticsearch
Windows:
cd elasticsearch-7.6.1\bin
.\elasticsearch.bat
你现在就运行起了单节点的ElasticSearch集群
4.启动另外两个Elasticsearch实例,以便您可以看到典型的多节点集群的行为。您需要为每个节点指定唯一的数据和日志路径。
Linux and macOS:
./elasticsearch -Epath.data=data2 -Epath.logs=log2
./elasticsearch -Epath.data=data3 -Epath.logs=log3
Windows:
.\elasticsearch.bat -E path.data=data2 -E path.logs=log2
.\elasticsearch.bat -E path.data=data3 -E path.logs=log3
为其他节点分配了唯一的ID。因为您在本地运行所有三个节点,所以它们会自动与第一个节点一起加入群集。
5.使用cat health API验证三节点集群是否正在运行。cat API以比原始JSON更易于阅读的格式返回有关集群和索引的信息。
您可以通过向Elasticsearch REST API提交HTTP请求来直接与集群交互。如果已安装并正在运行Kibana,则也可以打开Kibana并通过开发控制台提交请求。
GET /_cat/health?v
该相应状态表明ElasticSearch集群是绿色,并且它有三个节点:
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1565052807 00:53:27 elasticsearch green 3 3 6 3 0 0 0 0 - 100.0%
Note:如果您仅运行单个Elasticsearch实例,则集群状态将保持黄色。单节点群集具有完整的功能,但是无法将数据复制到另一个节点以提供弹性。副本分片必须可用,群集状态为绿色。如果群集状态为红色,则某些数据不可用。
使用CURL命令与ElasticSearch进行交互
对Elasticsearch的请求包含与任何HTTP请求相同的部分:
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
本示例使用以下变量:
<VERB>
适当的HTTP方法或动词。例如,GET,POST, PUT,HEAD,或DELETE。
<PROTOCOL>
无论是http或https。如果您在Elasticsearch前面有一个HTTPS代理,或者您使用Elasticsearch安全功能来加密HTTP通信,请使用后者。
<HOST>
Elasticsearch集群中任何节点的主机名。或者, localhost用于本地计算机上的节点。
<PORT>
运行Elasticsearch HTTP服务的端口,默认为9200。
<PATH>
API端点,可以包含多个组件,例如 _cluster/stats或_nodes/stats/jvm。
<QUERY_STRING>
任何可选的查询字符串参数。例如,?pretty 将漂亮地打印 JSON响应以使其更易于阅读。
<BODY>
JSON编码的请求正文(如有必要)。
如果启用了Elasticsearch安全功能,则还必须提供有权运行API的有效用户名(和密码)。例如,使用 -u或--ucURL命令参数。有关运行每个API所需的安全特权的详细信息,请参阅REST API。
Elasticsearch使用HTTP状态代码(例如)响应每个API请求200 OK。除HEAD请求外,它还返回JSON编码的响应正文。
其他安装选项
从存档文件安装Elasticsearch使您能够轻松地在本地安装和运行多个实例,以便您可以尝试一下。要运行一个实例,您可以在Docker容器中运行Elasticsearch,在Linux上使用DEB或RPM软件包安装Elasticsearch,在macOS上使用Homebrew进行安装,或者在Windows上使用MSI软件包安装程序进行安装。有关更多信息,请参见安装Elasticsearch。