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 -k

查看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'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM