1. 程式人生 > >ElasticSearch15:bulk批量增刪改

ElasticSearch15:bulk批量增刪改

1.語法

POST /bulk
{"delete":{"_index":"test_index","_type":"test_type","_id":9}}
{"create":{"_index":"test_index","_type":"test_type","_id":11}}
{"test_field":"test201712291140"}
{"index":{"_index":"test_index","_type":"test_type","_id":11}}
{"test_field":"test201712291141 replaced"}
{"update":{"_index":"test_index","_type":"test_type","_id":8,"_retry_on_conflict":3}}
{"doc":{"test_field2":"xxx00000000"}}

每一個操作有兩個json串:(除了delete操作)

{“action”:{"metadata"}

{"data"}

舉例,建立文件

{"index":{"_index":"test_index","_type":"test_type","_id":11}

{"test_field":"test","test_field2":"test2"}

操作型別

delete 刪除一個文件操作,只要一個json串即可

update 執行partial update操作

create put /index/type/id/_create,強制建立操作

index  普通的put操作,可以是建立文件,也可以是全量替換

bulk api對json 的語法有嚴格的要求

,每個json串不能換行,同時一個json串和一個json串之間,必須有一個換行

POST /_bulk
{
  "delete":{
    "_index":"test_index",
    "_type":"test_type",
    "_id":11
  }
}

上面的bulk api語法有誤,報錯:

{
  "error": {
    "root_cause": [
      {
        "type": "json_e_o_f_exception",
        "reason": "Unexpected end-of-input: expected close marker for Object (start marker at [Source:

[email protected]; line: 1, column: 1])\n at [Source: [email protected]; line: 1, column: 3]"
      }
    ],
    "type": "json_e_o_f_exception",
    "reason": "Unexpected end-of-input: expected close marker for Object (start marker at [Source: [email protected]; line: 1, column: 1])\n at [Source: [email protected]; line: 1, column: 3]"
  },
  "status": 500
}

2.例子

POST /_bulk
{"delete":{"_index":"test_index","_type":"test_type","_id":9}}
{"create":{"_index":"test_index","_type":"test_type","_id":11}}
{"test_field":"test201712291140"}
{"index":{"_index":"test_index","_type":"test_type","_id":11}}
{"test_field":"test201712291141 replaced"}
{"update":{"_index":"test_index","_type":"test_type","_id":8,"_retry_on_conflict":3}}
{"doc":{"test_field2":"xxx00000000"}}

執行結果

#! Deprecation: Deprecated field [_retry_on_conflict] used, expected [retry_on_conflict] instead
{
  "took": 32,
  "errors": false,
  "items": [
    {
      "delete": {
        "_index": "test_index",
        "_type": "test_type",
        "_id": "9",
        "_version": 1,
        "result": "not_found",
        "_shards": {
          "total": 2,
          "successful": 1,
          "failed": 0
        },
        "_seq_no": 13,
        "_primary_term": 4,
        "status": 404
      }
    },
    {
      "create": {
        "_index": "test_index",
        "_type": "test_type",
        "_id": "11",
        "_version": 6,
        "result": "created",
        "_shards": {
          "total": 2,
          "successful": 1,
          "failed": 0
        },
        "_seq_no": 7,
        "_primary_term": 4,
        "status": 201
      }
    },
    {
      "index": {
        "_index": "test_index",
        "_type": "test_type",
        "_id": "11",
        "_version": 7,
        "result": "updated",
        "_shards": {
          "total": 2,
          "successful": 1,
          "failed": 0
        },
        "_seq_no": 8,
        "_primary_term": 4,
        "status": 200
      }
    },
    {
      "update": {
        "_index": "test_index",
        "_type": "test_type",
        "_id": "8",
        "_version": 3,
        "result": "updated",
        "_shards": {
          "total": 2,
          "successful": 1,
          "failed": 0
        },
        "_seq_no": 14,
        "_primary_term": 4,
        "status": 200
      }
    }
  ]
}

查詢每個操作的結果:

GET /test_index/test_type/10

{
  "_index": "test_index",
  "_type": "test_type",
  "_id": "9",
  "found": false
}

GET /test_index/test_type/11

{
  "_index": "test_index",
  "_type": "test_type",
  "_id": "11",
  "_version": 7,
  "found": true,
  "_source": {
    "test_field": "test201712291141 replaced"
  }
}

GET /test_index/test_type/8

{
  "_index": "test_index",
  "_type": "test_type",
  "_id": "8",
  "_version": 3,
  "found": true,
  "_source": {
    "test_field": "xxx81",
    "test_field2": "xxx00000000"
  }
}

相關推薦

ElasticSearch15:bulk批量刪改

1.語法 POST /bulk {"delete":{"_index":"test_index","_type":"test_type","_id":9}} {"create":{"_index":"test_index","_type":"test_type","_id

ES:mget批量查詢、bulk批量刪改

1、mget批量查詢 GET /_mget { "docs": [ { "_index": "test_index", "_type": "test_type", "_id": 8 }, { "_index":

ElasticSearch最佳入門實踐(二十六)bulk批量刪改

1、bulk語法 POST /_bulk { “delete”: { “_index”: “test_index”, “_type”: “test_type”, “_id”: “3” }} { “create”: { “_index”: “test_index”, “_typ

bulk批量刪改

1.bulk語法格式:  注意: bulk api對json的語法,有嚴格的要求,每個json串不能換行,只能放在一行,多個型別的json串之間,必須換行 POST /_bulk {"delete":{"索引名稱":"索引值","型別名稱":"型別值","id名稱":id值}} {

Elasticsearch學習筆記(十)批量查詢mget、批量刪改bulk

出錯 color body 換行 nor test 增刪 doc document 一、批量查詢 mget GET /_mget { "docs":[ { "_index":"ecommerce

Oracle 的 bulk collect用法——批量刪改

  FORALL語句的一個關鍵性改進,它可大大簡化程式碼,並且對於那些要在PL/SQL程式中更新很多行資料的程式來說,它可顯著提高其效能。 1: 用FORALL來增強DML的處理能力 Oracle為Oracle8i中的PL/SQL引入了兩個新的資料操縱語言(DML)語句:B

Jquery easyui 批量處理datagrid的資料,批量刪改

Jquery easyui datagrid控制可以獲取受影響的行,從上一次的提交獲取改變的所有行。型別引數指明用哪些型別改變的行,可以使用的值有:inserted,deleted,updated等。當型別引數未配置的時候返回所有改變的行。將改變行傳到服務端,通過引數分別做批

java使用JDBC連線mysql並且進行批量刪改操作

       在處理百萬級的資料時,經常需要對資料庫中的資料進行增刪改查操作,由於資料量大,進行Query的時候在效率上還是可以接受,但進行增刪改的時候,如果採用一次一條記錄操作,則效率大大的降低,因此,需要進行批量操作。        本文利用java在eclipse環境

hibernate系列十五:hql連線查詢,查詢效能優化,hql批量刪改

一 hql連線查詢 和SQL查詢一樣,HQL也支援各種各樣的連線查詢,如內連線、外連線。我們知道在SQL中可通過join子句實現多表之間的連線查詢。HQL同樣提供了連線查詢機制,還允許顯式指定迫切內連線和迫切左外連線。HQL提供的連線方式如表1所示。 連線型別 HQL語法

第八篇 elasticsearch的批量刪改

1. 批量查詢 1.1 mget查詢的語法 GET /_mget { "docs" : [ { "_index" : "test_index", "_type" : "test_type",

mysql 批量刪改

style into span val update 能夠 ont 批量增刪 upd mysql增刪改查很簡單,但是我們在寫代碼的時候,一定要註意,代碼的優化,減少操作數據庫的次數,能夠批量的解決的,就不要重復調用數據庫了。 1.批量查,刪 利用in 查詢 2.批量

AngularJs 刪改查+刪除+批量刪除+全反選

<head> <meta charset="utf-8" /> <script src="js/angular.min.js" type="text/javascript" charset="utf-8"></s

mybatis中實現批量刪改

//批量插入 public void batchInsert(List<UserDo> list) { this.getSqlMapClientTemplate().execute(new SqlMapClientCallback() {

jquery的資料刪改查(全選,反選,全不選,批量刪除,新增資訊)

效果圖如下: html程式碼如下: <body> <div class="btn"> <button class="seleAll">全選</button> <button class="allDe

Order訂單的多表刪改查及基於Msql和SSM的分頁程式碼附帶批量刪除

首先需要一個分頁工具類(Page),和實體類(Order),中間內容基本不需要改動,您可以根據需要改動每頁顯示的記錄條數。 Page類 package cn.kgc.util; import java.io.Serializable; /** * Crea

easyui datagrid 刪改查分頁 匯出 先上傳後匯入 NPOI批量匯入 匯出EXCEL

效果圖資料庫程式碼 create database CardManage use CardManage create table CardManage ( ID int identity(1,1) primary key, userDep nvarchar(10)n

Spring+SpringMVC+Mybatis實現刪改查--(六)SSM刪除、批量刪除員工的實現

Spring+SpringMVC+Mybatis實現增刪改查--(六)SSM刪除、批量刪除員工的實現單個刪除: 批量刪除  刪除邏輯1.單個刪除URI:/emp/{id} DELETE(1)給刪除按鈕繫結上員工的ID號(2)單個刪除按鈕的點選事件(3)員工刪除的方法2.全選複

利用jQueryEasyUI批量對資料的刪改功能

對於Easyui相信大家都不陌生,但是對於資料的增刪改查大家都是單行操作,如果有多行資料需要 進行增加,刪除,更新操作你們會選擇怎麼做的,比如對於這種情況。 ,估計一時半會還是有一部分童鞋想不出解決,這裡給大家提個醒,我們可以給每一行資料新增一個複選框。 e

Spring框架開發實現對商品列表的刪改查以及批量刪除和批量修改

花了一週時間重新熟悉了一下SSM三大框架,也經歷了一次由複雜及簡單的過程,從剛開始的使用Mybatis操作資料就可以比較其和JDBC的不同,相應的java程式碼減少了,但是相對的配置檔案的內容越來越多,程式碼以後的維護性也得到了越來越高的提升。後面使用SpringMVC後,

TP5學習基礎一:刪改查小demo

表單 arr 處理 php req 學習 model類 浪費 新手 ①TP5--增刪改查簡單的demo 我先吐槽一下:因為工作需要研究tp5,去官網看了一下哎呦,資源挺多挺全啊!然後下載唯一免費的官方教程,我曹pdf打開533頁。講的很細但是開發能等看完才做嗎?看到精簡版快