ElasticSearch-5.6.8(二) 术语和认识RESTful

前面我们已经搭建了一个单节点的ES接下来我们就在这个实例上测试。然后呢虽然es支持在命令行使用curl 的方式操作ES即下面这种
curl
但相对麻烦,所以我接下来我会使用kibana的 Dev Tools 来操作es
kibana界面

术语

  • 集群

    集群(cluster)即是由多个或一个elasticsearch实例组成的整体。可以通过GET /_cluster/health命令查看集群状态
    还可用GET /_cluster/state 此命令会列出集群下大多数信息,报错集群下的节点信息,集群元信息,还能看到所有的索引和它们的信息。虽然很强大但信息太多了反倒感觉没啥用了。

  • 节点

    节点(node)节点就是一个es实例。可以通过GET /_nodes/state查看所有节点信息也可以通过GET /_nodes/节点id查看某一个节点的信息

  • 分片

    分片(hards)es的最小工作单位,一个分片其实就是一个索引的所有数据的一部分。分片分为主分片(primary shard)和复制分片(replica shard),主分片的作用是把一个索引分成几份来存储,里面存着一份份完整的文档,而复制分片是主分片的备份。可以在新建时设置它们的数量

PUT /my #索引名称
{
  "settings": {
    "number_of_shards": 3, #主分片数
    "number_of_replicas": 1 #复制分片数
  }
}

主分片数在新建好以后就不能修改了,除非你删掉重建,但复制分片数量是允许修改的。还记得前面说的单节点的集群因为默认复制分片为1 导致集群状态为yellow的问题么。我们可以通过把索引的复制分片数修改成0来让集群的status变成green。命令为

PUT /my/_settings
{ 
    "number_of_replicas": 0
}
  • 索引

    索引(index)这个词在不同的语境有多种含义,一种是名词形式的指一个索引相当于数据库,一种是动词形式的,比如索引一个文档,表示insert操作,还有一种索引指的是倒排索引,相当于关系型数据库中的给字段创建一个索引,用于快速查找。
    前面说了分片是es中最小的工作单元,索引索引的数据其实是存在一个个分片上的,它相当于是一个逻辑命名空间

  • 类型

    类型(type)它相当于数据库中的表,可以对其里面的字段设置类型。

  • 文档

    文档就是我们存储在es上的数据,一个文档就相当于数据库中的一行。文档除了我们保存的数据外它还包括它的元数据(metadata),元信息中必须记录的有它的索引,类型,id,
    其他区还有_source,_all

  • 映射

    映射(mapping)相当于数据库的表结构,它能够作用于type,指定字段的类型,指定索引方式,指定分词器。

  • -

ES操作

操作es主要分为两种方式 JAVA API(当然还有其他多种客户端)和RESTful API
我们先来看下后面一种方式,restful是一种基于http协议,以json数据格式交互的操作方式。它的访问格式为

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数据
  • BODY 一个JSON格式的请求主体(如果请求需要的话)
#统计急群内的文档总数可以这样写
curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
    "query": {
        "match_all": {}
    }
}

因为我是在kibana上进行操作的所以我的访问方式为 GET /_cluster/health

<VERB> /<PATH>?<QUERY_STRING> -d <BODY>

一些有用的查看命令,有待增加
- 查看集群健康状态 GET /_cluster/health 能看到集群名字和集群状态
- 查看集群信息 GET /_cluster/state 能看到集群下所有节点信息,所有索引的信息
- 查看节点状态GET /_nodes/stats/它会列出所有节点的信息包括节点上搜索次数,如果想看某一节点的信息使用GET /_nodes/节点id
- 查看索引的设置GET /索引名/_settings
- 查看索引的映射GET /索引名/_mapping
- 查看索引下文档数GET 索引名/_count
- 查看集群下所有的索引 GET /_cat/indices?v

官方API文档: https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html
官方中文指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

猜你喜欢

转载自blog.csdn.net/g1969119894/article/details/79928298
今日推荐