【elasticsearch入門】elasticsearch的CURD和批量操作api

文檔的CRUD

  • index 和 create 操作用put(但是如果沒有指定id必須用post,指定了id的可以用post,也可以用put)
  • update和創(chuàng)建索引用post
  • 獲取用get
  • 刪除用delete

index

PUT index/type/id
{"user":"mike","comment":"You know ,for search"}

Create

#使用_create
PUT index/_create/id
{"user":"mike","comment":"You know ,for search"}
#不指定id,自動生成
POST index/type
{"user":"mike","comment":"You know ,for search"}

Read

GET index/type/id

Update

POST index/_update/id
{
    "doc":{"user":"mikes","comment":"You know ,for search"}
}

Delete

DELETE index/type/id

index 和create、update的區(qū)別

index的功能是索引一個文檔,他既有新增一個文檔的功能,又有更新一個文檔的功能,但是本質上他的創(chuàng)建和更新功能和create和update操作又有些區(qū)別。

index和create:1、如果文檔不存在,就索引新的文檔。(這里和創(chuàng)建的是一樣的)2、如果文檔存在,index操作會刪除現(xiàn)有文檔,新的文檔被索引,version+1(這里類似實現(xiàn)了更新的功能)。create操作會失敗。

index和update:index操作會刪除現(xiàn)有文檔,新的文檔被索引,version+1。update不會刪除原來的文檔,而是實現(xiàn)真正的數(shù)據更新。

BULK

支持在異常api調用中,對不同的索引進行操作(index、create、update、delete)

單個失敗不會影響其他操作

返回結果包括了每一條操作執(zhí)行結果

POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_id" : "2" } }
{ "create" : { "_index" : "test2", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }

如果是index、update、create操作,包含兩行,第一行是位置信息,第二行是字段信息

如果是delete,只有一行位置信息

mget

GET /_mget
{
    "docs" : [
        {
            "_index" : "test",
            "_id" : "1",
            "_source" : false
        },
        {
            "_index" : "test",
            "_id" : "2",
            "_source" : ["field3", "field4"]
        },
        {
            "_index" : "test",
            "_id" : "3",
            "_source" : {
                "include": ["user"],
                "exclude": ["user.location"]
            }
        }
    ]
}

msearch

相當于將多個查詢請求,放在一個請求中,返回結果包含每一個親求的結果,不會將其聚合

POST kibana_sample_data_ecommerce/_msearch
{}
{"query" : {"match_all" : {}},"size":1}
{"index" : "kibana_sample_data_flights"}
{"query" : {"match_all" : {}},"size":2}

形式是一行header,一行body

注意http的content-type是"application/x-ndjson",但實際上好像也有人用"application/json"

參考:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容