您的位置:首页 > Web前端 > JavaScript

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

2019-01-11 16:36 232 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/youbitch1/article/details/86305911

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

(提前声明:文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章,写作不易,转载请注明)

(文章参考:Elasticsearch权威指南,Spark快速大数据分析文档,Elasticsearch官方文档,实际项目中的应用场景)

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

Git主页    https://github.com/Mydreamandreality

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

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

    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格式的请求主体(不是必须的,类似于请求的参数)

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

      启动ES和Kibana

    1. 进入Kibana的Dev Tools页面

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

    [code]curl -XGET 'http://localhost:9200/_count?pretty'-d' 
    
    { "query": 
    
        { 
    
            "match_all": {} 
    
        } 
    
    }
    
    // {}这个部分的东西都是Body,说白了就是你要请求的参数,我这里选择的match_all所有
    
    //其他的一一对应,就看的更直白了

     

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

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

    [code]{
    
      "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请求)

  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: