史上最简单的Elasticsearch教程-第三章:以JSON为数据交互格式的RESTful API

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/youbitch1/article/details/86305911

基于Http协议,以JSON为数据交互格式的Restful风格API

(提前声明:文章由作者:张耀烽/CSDN主页:https://blog.csdn.net/youbitch1/

结合自己生产中的使用经验整理,最终形成简单易懂的文章,写作不易,转载请注明)

(整个教程的ES版本以及Kibana版本都是基于5.6.8)

(文章参考:Elasticsearch权威指南(书籍),Elasticsearch官方文档JavaApi5.6.8,实际项目中的应用场景)

(帮到到您请点点关注,文章持续更新中!)

  1. 如何发送restful请求?:如下是一条请求的示例

    1. curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'

      1. curl -X:不是必要的,可以忽略

      2. VERB:HTTP的方法;GET POST PUT DELETE HEAD

      3. PROTOCOL: http或者https的协议(如果你的环境是HTTPS时需要携带,HTTP时无需关注)

      4. HOST: Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫 localhost

      5. PORT: Elasticsearch HTTP服务所在的端口,默认为9200

      6. PATH: API路径(PATH包含多个组件,稍后会写出来)

      7. QUERY_STRING: 一些可选的查询请求参数,比如?pretty 参数将使请求返回更加美观 易读的JSON数据

      8. BODY: 一个JSON格式的请求主体(不是必须的,类似于请求的参数)

  2. OK,上面这就是一条标准的restful请求,下面我直接举个栗子吧,看的更直观一些,一下就懂了

    1. 启动ES和Kibana

    2. 进入Kibana的Dev Tools页面

//比如我这里一下计算集群中的文档数量

curl -XGET 'http://localhost:9200/_count?pretty'-d' 

{ "query": 

    { 

        "match_all": {} 

    } 

}

// {}这个部分的东西都是Body,说白了就是你要请求的参数,我这里选择的match_all所有

//其他的一一对应,就看的更直白了
  1. 当执行完之后, Elasticsearch返回一个类似 200 OK 的HTTP状态码和JSON格式的响应主体(除了HEAD请求)

  2. 上面的请求会得到如下的JSON格式的响应主体:

{

  "count": 46302,

  "_shards": {

    "total": 236,

    "successful": 236,

    "skipped": 0,

    "failed": 0

  }

}
  1. 但是各位发现没有,这样写也太麻烦了吧,本来Kibana就直接连接了我们的ES,那么我们的IP和端口都是Kibana已知的

  2. 所以<PROTOCOL>://<HOST>:<PORT>这个部分的东西可以完全省略掉

  3. 简写后如下图所示:

#下一章我会写一个增删改查的案例带大家熟悉ES原生的SQL语句(你可以这么理解,其实准确的说是基于HTTP的restful请求)

猜你喜欢

转载自blog.csdn.net/youbitch1/article/details/86305911