批量插入文档到ElasticSearch而不在文档存在时进行更新

时间:2015-04-30 13:24:30

标签: nest elasticsearch

是否可以批量插入数据到ES而不更新文档内容(如果存在Id)。只应不插入现有文档,不进行任何更新。

1 个答案:

答案 0 :(得分:1)

是的,请使用批量create

POST /my_index/my_type/_bulk
{"create":{"_id":1}}
{"foo":1,"bar":"y"}
{"create":{"_id":6}}
{"foo":1,"bar":"y"}

上述请求适用于已存在的doc 1和不存在的doc 6。该请求的输出是:

"items": [
      {
         "create": {
            "_index": "my_index",
            "_type": "my_type",
            "_id": "1",
            "status": 409,
            "error": "DocumentAlreadyExistsException[[my_index][2] [my_type][1]: document already exists]"
         }
      },
      {
         "create": {
            "_index": "my_index",
            "_type": "my_type",
            "_id": "6",
            "_version": 1,
            "status": 201
         }
      }
   ]