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?vepoch 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?vip 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)