第一.導入測試數據
1.創建一個索引庫(如果使用)
** windows下需要使用\" **
curl -XPUT "localhost:9200/fendo"
2.導入es官網官網測試數據accounts.json
curl -H "Content-Type:application/json" -XPOST "localhost:9200/fendo/account/_bul_bulk?pretty' --data-binary "@/tools/elasticsearch-6.6.2/accounts.json"
注意:
1 這里使用的時絕對路徑,如果使用相對路徑需要在accounts.json所在的目錄運行curl命令—— @/accounts.json
2 localhost:9200是ES的訪問地址和端口
3 fendo是索引的名稱
4 account是類型的名稱
5 索引和類型的名稱在文件中如果有定義,可以省略;如果沒有則必須要指定
6 _bulk是rest得命令,可以批量執行多個操作(操作是在json文件中定義的,原理可以參考之前的翻譯)
7 pretty是將返回的信息以可讀的JSON形式返回
第二.基本操作
a.插入
** 這里的json數據,window執行總是提示json格式問題,第一個采用拼接字符串,第二個采用轉義字符 **
curl -H "Content-Type:application/json" -XPUT "http://localhost:9200/test/es/1?pretty" -d "{"""first_name""":"""fendo"""}"
或者
curl -H "Content-Type:application/json" -XPUT "http://localhost:9200/test/es/1?pretty" -d "{\"first_name\":\"fendo\"}"
返回的結果
{ "_index" : "test", //我們上文中指定的index —— test "_type" : "es", // 我們上文中指定的type —— es "_id" : "1", // 我們上文中指定的id —— 1 "_version" : 6, // 這里我已經執行了5次,從1開始,版本號每次新增一個 "result" : "updated", // 這里執行的是更新操作 "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 5, // 從0開始,每次增加一個 "_primary_term" : 1 }
b.查詢
1.查詢所有
curl "localhost:9200/test/_search?q=*&pretty"
其中test是查詢的索引名稱,q后面跟着搜索的條件{我好像傳啥都返回空},q=*表示查詢所有的內容
2.請求體方式
curl -H "Content-type:application/json" "localhost:9200/test/_search?pretty" -d "{\"query\":{\"match_all\": {}}}"
把查詢的內容放入body體中,會造成一定的開銷
3.根據索引來查詢
curl -XGET "localhost:9200/test/es/1?pretty"
c.更新
curl -H "Content-type:application/json" -XPUT "localhost:9200/test/es/1" -d "{\"last_name\":\"fk\"}"
更新接口與創建接口完全一樣,ES會查詢記錄是否存在,如果不存在就是創建,存在就是更新操作。
d.刪除
curl -XDELETE "localhost:9200/test/es/1?pretty"