1. 基本概念
-
近实时(NRT)
建索引,到可搜索,一般仅需要1秒钟
; -
集群(Cluster)
集群默认名称:elasticsearch
;
节点通过名称加入集群; -
节点(Node)
启动时默认随机分配一个UUID
作为节点名,可更改;
默认加入名为elasticsearch
的集群; -
索引(Index)
具有相似结构的文档集;
索引名称须为小写字母
组合; -
Type (在6.0中已废弃)
-
文档(Document)
索引的基本对象;
格式:JSON
; -
分片与副本(Shards & Replicas)
支持水平切分/扩展;
分片可支持并行处理,可提高处理性能及数据吞吐量;
通过副本支持高可用(HA)
,同时也可以支持并行处理;
创建索引时可设置分片和副本数量,默认为:5个分片和1个副本
;
单索引最多支持20多亿
个文档;
2. REST
API
Elasticsearch提供了强大的REST
接口:
<REST Verb> /<Index>/<Type>/<ID>
2.1 基本操作
-
查看集群状态:
GET /_cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent 1475247709 17:01:49 elasticsearch green 1 1 0 0 0 0 0 0 - 100.0%
- green - 一切正常
- yellow - 某些副本存在异常
- red - 某些数据存在异常
-
列出所有节点:
GET /_cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 127.0.0.1 10 5 5 4.46 mdi * PB2SGZY
-
列出所有索引:
GET /_cat/indices?v
-
创建索引:
PUT /customer?pretty
索引名称customer
;
pretty
用于格式化输出JSON
响应; -
索引文档
PUT /customer/_doc/1?pretty { "name": "John Doe" }
{ "_index" : "customer", "_type" : "_doc", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }
-
获取文档:
GET /customer/_doc/1?pretty
{ "_index" : "customer", "_type" : "_doc", "_id" : "1", "_version" : 1, "found" : true, "_source" : { "name": "John Doe" } }
-
删除索引:
DELETE /customer?pretty
2.2. 修改数据
- 更新文档
指定ID,使用PUT
;
若ID已存在,则更新;若不存在则创建;
让系统自动生成ID,使用POST
;POST /customer/_doc?pretty { "name": "Jane Doe" }
- 删除文档
- 批处理
2.3 查询
- 搜索API
- 查询语法
- 搜索(search)
- 过滤(filter)
- 聚合(aggregation)
网友评论