# 1、RESTful接口格式
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口
URL的格式:http://localhost:9200/<index>/<type>/[<id>]
其中index、type是必须提供的。
id是可选的,不提供es会自动生成。
index、type将信息进行分层,利于管理。
index可以理解为数据库;type理解为数据表;id相当于数据库表中记录的主键,是唯一的。
# 2、HTTP客户端
操作REST API常用的有通过CRUL命令,Chrome Sense插件,httpie,kibana中的Dev Tools,head等,下面主要介绍CRUL命令、kibana中的Dev Tools工具和head
## Dev Tools
```
GET _search
{
"query" : {
"match_all" : {}
}
}
```
![](https://box.kancloud.cn/31f4ef689d50ceab72e6a48c9f94bcc3_1436x480.png)
## head
![](https://box.kancloud.cn/5478f9ffe7db3c4a881fc99ea8397b57_1305x713.png)
# 3、索引文档的crud
格式:http://127.0.0.1:9200/<index>/<type>/id
![](https://box.kancloud.cn/a60ba98ab6168dde40e6a265aee313d1_1288x649.png)
# 4 查看所有索引和集群
![](https://box.kancloud.cn/b50bef2246e453bc5555b53c65a70546_1618x263.png)
可以看到集群的名字是默认的"elasticsearch",集群的状态时"green"。
1 、绿色,最健康的状态,代表所有的分片包括备份都可用
2 、黄色,基本的分片可用,但是备份不可用(也可能是没有备份)
3 、红色,部分的分片可用,表明分片有一部分损坏。此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好。
当使用elasticsearch作为集群名字时,会使用单播,查询本机上是否还运行着其他的节点。如果有,则组成一个集群。
(如果使用其他的名字作为集群名字,那么就可能采用多播了!这个在工作中,经常会遇到,大家使用的是一个集群名字,分片总是被搞在一起,导致有人的机器下线后,自己的也无法使用)
# 常用命令
## ELasticsearch集群已经启动并且正常运行
http://127.0.0.1:9200/?pretty
## 计算集群中的文档数量
curl -XGET http://127.0.0.1:9200/_count?pretty -d "{\"query\": {\"match_all\": {} }}"
##