官方站点
https://www.elastic.co/cn/
ES 的基本概念
ES 集群
ES cluster 的集群启动方式
1.启动时通过多播(默认)或者单播的方式 通过 9300/tcp 查找同一集群中的其他节点, 并与之建立通信,
2.集群中的所有节点会选举出主节点,主节点负责管理整个集群的状态,并决定集群内的 各shard 的分布方式
3.在用户角度而言,每个节点均可接受并相应用户的各类请求
ES 集群相关的信息
集群的三种状态
- green
- yelllow
- red
GET /_cluster/health
status 字段指示着当前集群在总体上是否工作正常。它的三种颜色含义如下:
green
所有的主分片和副本分片都正常运行。
yellow
所有的主分片都正常运行,但不是所有的副本分片都正常运行。
red
有主分片没能正常运行。
在本章节剩余的部分,我们将解释什么是 主 分片和 副本 分片,以及上面提到的这些颜色的实际意义。
ES 的配置信息
ES 的端口信息
1.9200/tcp 端口 es 的访问端口
2.9300/tcp 端口 参与集群的事务端口
与 ES 的交互
一个 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 代理)
HOST
Elasticsearch 集群中任意节点的主机名,或者用 localhost 代表本地机器上的节点。
PORT
运行 Elasticsearch HTTP 服务的端口号,默认是 9200 。
PATH
API 的终端路径(例如 _count 将返回集群中文档数量)。Path 可能包含多个组件,例如:_cluster/stats 和 _nodes/stats/jvm 。
QUERY_STRING
任意可选的查询字符串参数
(例如 ?pretty 将格式化地输出 JSON 返回值,使其更容易阅读)
?v 可以显示详细的参数
BODY
一个 JSON 格式的请求体 (如果请求需要的话)
与 ES交互
# 查看es 显示的格式
curl -X GET 127.0.0.1:9200/?pretty
# 查看es 的所有请求操作
curl -X GET '127.0.0.1:9200/_cat'
?v 可以显示详细的参数
?help 可以显示帮组文档
# 查看集群的健康状态
curl -XGET 127.0.0.1:9200/_cluster/health?pretty
#查看集群的 状态
curl -XGET "127.0.0.1:9200/_cluster/state?pretty"
#查看集群的版本
curl -XGET "127.0.0.1:9200/_cluster/state/version?pretty"
# 查看集群的 主节点
curl -XGET "127.0.0.1:9200/_cluster/state/master_node?pretty"
# 查看节点信息
curl -XGET 127.0.0.1:9200/_nodes
ES 常用概念
es 的查询操作分为两个阶段
分散阶段
合并阶段
查询方式:
向es 发起请求的方式有2种:
1.通过restful request api 查询,也称为 query string :
2.通过rest request body进行查询
es 是面向文档的
es 与传统的关系型数据库的对比
relationDb(mysql) -->databases -->tables -->rows --> columns
elasticsearch -->indices --> type -->documents --> fileds