zoukankan      html  css  js  c++  java
  • ElasticSearch之CURL操作

    CURL的操作

      curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用url可以简单实现常见的get/post请求。简单的认为是可以在命令行下面访问url的一个工具。在centos的默认库里面是有curl工具的,如果没有请yum安装即可。

    curl

    -X 指定http的请求方法有 HEAD GET POST PUT DELETE

    -d 指定要传输的数据

    -H 指定http请求头信息

    liulanES服务器: curl -XGET http://master:9200 <=> 在浏览器中访问

    查看es的状态
    
    curl -k -u admin:admin -XGET https://192.168.220.75:9200/_cluster/health?pretty

    查看index

    curl -k -u admin:admin 'https://master:9200/_cat/indices?v'

    一、创建索引库:

    curl -XPUT https://master:9200/bigdata_p
    
    curl -k -u username:passwd -XPUT https://master:9200/bigdata_p 

    这样在es中就创建了一个索引库bigdata_p

    POST和PUT都可以用于创建,二者之间的区别:

    PUT是幂等方法,POST不是。所以PUT用于更新,POST用于新增比较合适。

    ES创建索引库和索引时的注意点:

    1)索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号

    2)如果没有明确指定索引数据ID,那么es会自动生成一个随机的ID,需要使用POST参数

    curl -k -u  admin:admin -XPOST https://master:9200/bigdata_p/product/1 -d '{"author" : "Doug Cutting"}'

    二、向库中新增数据

    在具体的type里面,添加相关的document

    curl -k -u username:passwd -XPOST https://master:9200/bigdata/product/ -d '{"name":"hadoop", "author": "Doug Cutting", "c_version": "2.7.3"}' 

    三、查询某一个索引库中的数据

    查询整个索引库:
    
    curl -k -u admin:admin -XGET https://master:9200/bigdata_p/_search?pretty
    
    在url后面加上一个pretty则会对返回结果进行格式化。
    
    查询某一个type:
    curl -k -u admin:admin -XGET https://master:9200/bigdata/product/_search?pretty
    查询具体的某一条记录:
    curl -k -u username:passwd -XGET https://master:9200/bigdata/product/1?pretty
    
    查询一条索引文档中的具体的字段:
    
    curl -k -u admin:admin -XGET https://master:9200/bigdata_p/product/1?_source=name&pretty
    
    如果需要查询多个字段,使用逗号进行隔开,eg:
    curl -k -u username:passwd -XGET https://master:9200/bigdata/product/AWqHg_E7HpMjdaKC2sgv?_source=name,c_version&pretty
    
    获取source所有数据:(可以通过source指定显示哪些字段,不指定就是显示全部字段)
    curl -k -u admin:admin -XGET https://master:9200/bigdata/product/AWqHg_E7HpMjdaKC2sgv?_source&pretty
    
    根据条件进行查询:
    
    curl -k -u admin:admin -XGET https://master:9200/bigdata/product/_search?q=name:hadoop&pretty

    三、ES更新

       ES可以使用PUT或者POST对文档进行更新,如果指定ID的文档已经存在,则执行更新操作

      注意:执行更新操作的时候,ES首先将旧的文档标记为删除状态,然后添加新的文档,旧的文档不会立即消失,但是你也无法访问,ES会继续添加更多数据的时候在后台清理已经标记为删除状态的文档。

      局部更新

    curl -k -u admin:admin -XPOST https://master:9200/bigdata/product/AWqHg_E7HpMjdaKC2sgv/_update -d '{"doc":{"c_version": "2.0.0", "publish_time": "2017-03-23"}}' 

    四、删除

    普通删除,根据主键删除(删除type的一个文档)

    curl -k -u admin:admin -XDELETE https://maser:9200/bigdata/product/AWqHg_E7HpMjdaKC2sgv/ 

    说明:如果文档存在,es属性found:true,successflu:1,_version属性的值 +1.

    如果文档不存在,es属性found为false,但是版本值version依然会+1,这个就是内部。

    注意:一个文档被删除之后,不会立即生效,他只是被标记为已删除。ES将会在你之后添加了更多索引的时候才会在后台进行删除。

    删除index

    curl -k -u admin:admin -X DELETE 'https://master:9200/bigdata'

    五、ES之settings和mapping的意义

    (一)settings

    简单来说,就是:

      settings是修改分片和副本数的。

      mappings是修改字段和类型的。

      查询索引库中的settings信息:

      curl -k -u admin:admin -XGET 'https://master:9200/bigdata_p/_settings?pretty'

    "number_of_shards"  主分片

    "number_of_replicas"  副本数

     总结:不存在索引时,可以指定副本和分片。

        如果存在索引,则只能修改副本。

       在创建新的索引库时,可以指定索引分片的副本数。默认是1。

     (二)mapping

    es中,index相当于数据库,type相当于表,而mapping相当于表结构。

    mapping不仅告诉es一个field中是什么类型的值,它还告诉es如何索引数据以及数据是否能被搜索到。

    curl -k -u admin:admin -XGET 'https://master:9200/bigdata_p/_mapping?pretty'

      

  • 相关阅读:
    php模拟发送GET和POST请求
    php获取从百度搜索进入网站的关键词
    HDU 6218 (线段树+set)
    Wannafly挑战赛2_D Delete(拓扑序+最短路+线段树)
    BZOJ3926 (后缀自动机)
    Codeforces 848C (cdq分治)
    CERC 2014 (动态树+主席树)
    UOJ 58 (树上带修改的莫队)
    UVA12345 (带修改的莫队)
    BZOJ2038 (莫队)
  • 原文地址:https://www.cnblogs.com/ssqq5200936/p/10815200.html
Copyright © 2011-2022 走看看