Elasticsearch 简介

作者: freefishz2 | 来源:发表于2018-09-06 10:22 被阅读12次

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)

相关文章

网友评论

    本文标题:Elasticsearch 简介

    本文链接:https://www.haomeiwen.com/subject/lklyyftx.html