站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        Elasticsearch涉及的RESTful之API實(shí)例

        所有其他語(yǔ)言可以使用 RESTful API 通過(guò)端口 9200 和 Elasticsearch 進(jìn)行通信,你可以使用WEB客戶端或者curl命令來(lái)和ES交互。下面介紹用curl命令來(lái)交互的具體用法:

        一、格式

          curl -X '://:/?' -d ''

        被 < > 標(biāo)記的部件含義:
        VERB
        適當(dāng)?shù)?HTTP 方法 或 謂詞 : GET、 POST、 PUT、 HEAD 或者 DELETE。

        PROTOCOL
        http 或者 https(如果你在 Elasticsearch 前面有一個(gè) https 代理)

        HOST
        Elasticsearch 集群中任意節(jié)點(diǎn)的主機(jī)名,或者用 localhost 代表本地機(jī)器上的節(jié)點(diǎn)。

        PORT
        運(yùn)行 Elasticsearch HTTP 服務(wù)的端口號(hào),默認(rèn)是 9200 。

        PATH
        API 的終端路徑(例如 _count 將返回集群中文檔數(shù)量)。Path 可能包含多個(gè)組件,例如:_cluster/stats 和 _nodes/stats/jvm 。

        QUERY_STRING
        任意可選的查詢字符串參數(shù) (例如 ?pretty 將格式化地輸出 JSON 返回值,使其更容易閱讀)

        BODY
        一個(gè) JSON 格式的請(qǐng)求體 (如果請(qǐng)求需要的話)

        二、API類型

        1.數(shù)據(jù)寫入(POST)

        往本地ES中寫入一條數(shù)據(jù),索引名稱為"test_log-2018-10-24",類型名稱為"test_log":

          curl -XPOST http://127.0.0.1:9200/test_log-2018-10-24/test_log -d '{      "date":"1540369436",      "user":"test",      "mesg":"this is a test message"      }'  #返回:  {"_index":"test_log-2018-10-24","_type":"test_log","_id":"AWalLVzvZ_iZW0h4u8UH","_version":1,"result":"created","_shards":{"total":1,"successful":1,"failed":0},"created":true}

        2.數(shù)據(jù)獲取(GET)

        從本地ES中獲取一條數(shù)據(jù),索引名稱為"test_log-2018-10-24",類型名稱為"test_log",id名稱為"AWalLVzvZ_iZW0h4u8UH":

          curl -XGET http://127.0.0.1:9200/test_log-2018-10-24/test_log/AWalLVzvZ_iZW0h4u8UH  #返回  {"_index":"test_log-2018-10-24","_type":"test_log","_id":"AWalLVzvZ_iZW0h4u8UH","_version":1,    "found":true,"_source":{  "date":"1540369436",  "user":"test",  "mesg":"this is a test message"  }}

        3.數(shù)據(jù)刪除(DELETE)

        刪除剛才插入的數(shù)據(jù):

          curl -XDELETE http://127.0.0.1:9200/test_log-2018-10-24/test_log/AWalLVzvZ_iZW0h4u8UH  #返回  {"found":true,"_index":"test_log-2018-10-24","_type":"test_log","_id":"AWalLVzvZ_iZW0h4u8UH","_version":2,"result":"deleted","_shards":{"total":1,"successful":1,"failed":0}}

        注意:刪除數(shù)據(jù),不但針對(duì)單條數(shù)據(jù),還可以使用通配符刪除整個(gè)type乃至整個(gè)索引
        例如:

          curl -XDELETE 'http://127.0.0.1:9200/*-${DATA}'

        三、常用API

        1._update

        局部更新

          curl -XPOST 'http://127.0.0.1:9200/test_log-2018-10-24/test_log/AWalXZ4cZ_iZW0h4vlQj/_update' -d '{  "doc":{  "user":"fjc"  }  }'  #返回  {"_index":"test_log-2018-10-24","_type":"test_log","_id":"AWalXZ4cZ_iZW0h4vlQj","_version":2,"result":"updated","_shards":{"total":1,"successful":1,"failed":0}}

        2._search

        全文搜索

          curl -XGET http://127.0.0.1:9200/test_log-2018-10-24/test_log/_search?q=test  curl -XGET http://127.0.0.1:9200/test_log-2018-10-24/test_log/_search?q=mesg:test

        querystring語(yǔ)法(上例中,?q=后面寫的就是querystring語(yǔ)法):
        全文檢索:直接寫搜索的單詞,例如加上例中的test
        單字段的全文檢索:在搜索單詞前加上字段名和冒號(hào),比如,如果知道單詞test肯定出現(xiàn)在mesg字段,可以寫作mesg:test
        單字段的精確檢索:在搜索單詞前后加上雙引號(hào),比如user:"fjc"
        多個(gè)檢索條件的組合:可以使用NOT、AND和OR來(lái)組合檢索,注意必須是大寫
        字段是否存在:exists:user表示要求user字段存在,missing:user表示要求user字段不存在
        通配符:用?表示單字母,*表示任意個(gè)字母
        近似搜索:用~表示搜索單詞可能有一兩個(gè)字母寫得不對(duì),請(qǐng)Elasticsearch按照相似度返回結(jié)果。比如test~
        范圍搜索:對(duì)數(shù)值和時(shí)間,Elasticsearch都可以使用范圍搜索,比如:rtt>300、date:["now-6h" TO "now"}等。其中,[]表示端點(diǎn)數(shù)值包含在范圍內(nèi),{}表示端點(diǎn)數(shù)值不包含在范圍內(nèi)

        3._cluster

        獲取集群健康狀態(tài)

          curl -XGET 'http://127.0.0.1:9200/_cluster/health?pretty'   Enter host password for user 'logview':  {    "cluster_name" : "idca-elk",    "status" : "green",    "timed_out" : false,    "number_of_nodes" : 3,    "number_of_data_nodes" : 3,    "active_primary_shards" : 141,    "active_shards" : 277,    "relocating_shards" : 0,    "initializing_shards" : 0,    "unassigned_shards" : 0,    "delayed_unassigned_shards" : 0,    "number_of_pending_tasks" : 0,    "number_of_in_flight_fetch" : 0,    "task_max_waiting_in_queue_millis" : 0,    "active_shards_percent_as_number" : 100.0  }

        獲取節(jié)點(diǎn)狀態(tài)

          curl -XGET 'http://127.0.0.1:9200/_cluster/state/nodes?pretty'   Enter host password for user 'logview':  {    "cluster_name" : "idca-elk",    "nodes" : {      "xSTX8HulT7eLrHtx8dpVbg" : {        "name" : "elk02",        "ephemeral_id" : "iql7vwvBSWSyx7PrsUMAGg",        "transport_address" : "172.16.1.26:9300",        "attributes" : { }      },      "gvlGkHa9QcyIsz31PjyZaw" : {        "name" : "elk03",        "ephemeral_id" : "9Gxyu9XrSSGNIPWKDAsfpw",        "transport_address" : "172.16.1.27:9300",        "attributes" : { }      },      "GVf_Yo-9RBW9_oUrqIPOZw" : {        "name" : "elk01",        "ephemeral_id" : "ZjAUQHGYS0KUMT1iiGS4Jg",        "transport_address" : "172.16.1.25:9300",        "attributes" : { }      }    }  }

        獲取主節(jié)點(diǎn)狀態(tài)

          Enter host password for user 'logview':  {    "cluster_name" : "idca-elk",    "master_node" : "GVf_Yo-9RBW9_oUrqIPOZw"  }

        顯示集群的詳細(xì)信息

          curl -XGET 'http://127.0.0.1:9200/_cluster/stats?human&pretty' 

        4._cat

        查看主節(jié)點(diǎn)

          curl -XGET 'http://127.0.0.1:9200/_cat/master?pretty&v'  Enter host password for user 'logview':  id                     host        ip          node  GVf_Yo-9RBW9_oUrqIPOZw 172.16.1.25 172.16.1.25 elk01

        查看所有索引

          curl -XGET 'http://127.0.0.1:9200/_cat/indices?v'   health status index                 uuid                   pri rep docs.count docs.deleted store.size pri.store.size  green  open   apache-2018-10-26     bksy7QOCQQyHcBazjB5TEg   5   1     443452            0    259.4mb        129.7mb  green  open   user_audit-2018-10-26 41PM-4WpRJ6Evhar0dREsA   5   1         95            0    575.2kb        287.6kb  green  open   domain_log-2018-10-24 d8zG7XL3RtyvyqAIJp7GvQ   5   1   11307735            0     11.4gb          5.7gb

        查看單節(jié)點(diǎn)健康狀態(tài)

          curl -XGET 'http://127.0.0.1:9200/_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  1540530477 13:07:57  idca-elk green           3         3    277 141    0    0        0             0                  -                100.0%

        查看分片信息

          curl -XGET 'http://127.0.0.1:9200/_cat/shards?v'  index                 shard prirep state      docs   store ip          node  domain_log-2018-10-22 3     r      STARTED 1975611     1gb 172.16.1.27 elk03  domain_log-2018-10-22 3     p      STARTED 1975611     1gb 172.16.1.25 elk01  domain_log-2018-10-22 2     p      STARTED 1979052     1gb 172.16.1.26 elk02

        查看插件信息

          curl -XGET 'http://127.0.0.1:9200/_cat/plugins?v

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 亚洲国模精品一区| 亚洲AV日韩精品久久久久久| 日韩精品电影一区亚洲| 国产精品一二三区| 亚洲精品无码mv在线观看网站| 欧洲精品视频在线观看| 久久精品国产亚洲AV麻豆网站 | 99re6在线视频精品免费| 美女岳肉太深了使劲国产精品亚洲专一区二区三区 | 丝袜美腿国产精品视频一区| 日韩精品无码免费一区二区三区| 久久久久亚洲精品天堂久久久久久| 精品国产一区二区三区久久| 激情亚洲一区国产精品| 最新欧美性爱精品一区二区三区 | 真实国产乱子伦精品一区二区三区 | 久久成人精品| 99久久国产综合精品五月天喷水 | 久久久九九有精品国产| 久久国产精品成人片免费| 亚洲精品国产自在久久| 国产精品人成在线观看| 最新国产精品亚洲| 老司机国内精品久久久久| 国产精品大白天新婚身材| 成人精品一区二区三区中文字幕 | 午夜精品久久久久久| 精品国产一区二区三区在线观看| 成人国产精品动漫欧美一区| 日本精品卡一卡2卡3卡四卡| 97久久久精品综合88久久| 久久亚洲精精品中文字幕| 人妻少妇精品视中文字幕国语| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 国产精品久久毛片完整版| 国产日韩精品中文字无码| 九九精品99久久久香蕉| 精品福利一区二区三区免费视频| 国产精品一区二区av| 囯产精品一品二区三区| 国产成人精品久久免费动漫|