更新文档有2中方式, 索引 API _update API 。后者默认情况下,如果修改操作发现内容没有实质的变化,会拒绝处理该请求, version 不会递增,通过返回信息的 result 属性标记 noop

我们插入一条数据:

PUT twitter/_doc/1
    "user" : "kimchy",    //user名称是kimchy
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"

插入操作的返回值,version属性值为1:

"_index": "twitter", "_type": "_doc", "_id": "1", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 "_seq_no": 0, "_primary_term": 1

使用默认参数修改,参数实质有变化

ES提交修改

执行修改操作:

POST  /twitter/_doc/1/_update/
    "doc":{
        "user":"kimchy2"    //user名称是kimchy2,不是kimchy

使用默认参数修改的返回值,version属性值递增为2:

"_index": "twitter", "_type": "_doc", "_id": "1", "_version": 2, //version递增 "result": "updated", //显示执行了修改操作 "_shards": { "total": 2, "successful": 1, "failed": 0 "_seq_no": 1, "_primary_term": 1

使用默认参数修改,参数实质没有变化

ES拒绝提交修改

我们再执行一次名称为user=kimchy2的修改操作,version 属性仍然是2,返回值中的resultnoop

"_index": "twitter", "_type": "_doc", "_id": "1", "_version": 2, //version没有变化 "result": "noop", //标记为noop "_shards": { "total": 0, "successful": 0, "failed": 0

使用参数强制修改,参数实质没有变化

ES提交修改

我们可以通过设置“detect_noop”来禁用此行为:false,改为强制提交修改操作,不管内容是否真的发生变化,如下所示:

POST twitter/_doc/1/_update "doc" : { "name" : "lisi" "detect_noop": false //强制提交修改操作

我们再来看下执行结果:

"_index": "twitter", "_type": "_doc", "_id": "1", "_version": 3, //version递增 "result": "updated", //显示执行了修改操作 "_shards": { "total": 2, "successful": 1, "failed": 0 "_seq_no": 2, "_primary_term": 1 更新文档有2中方式,索引 API和_update API。后者默认情况下,如果修改操作发现内容没有实质的变化,version不会递增。插入数据我们插入一条数据:PUT twitter/_doc/1{ "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch"}插入操作的返回值,version属性值为1:{"_index": "twitte
Demo code for detecting and matching SIFT features, By David Lowe (lowe@cs.ubc.ca)- Version 4 This directory contains compiled binary programs for finding SIFT invariant features that can run under Linux or Windows. In addition, there is a Matlab script as well as C source code showing how to load the features and do simple feature matching.
Index API 索引自动创建 索引自动创建通过配置项: action.auto_create_index 控制,此配置项默认是true,即可自动创建索引。允许自动创建的索引名称模式可以配置在此配置项下(正则表达式,使用+/-表示允许和禁止);可以通过将此项配置为false禁止索引创建。 # 仅允许自动创建 twitter,index10,不允许创建inde...
作为一个成熟的框架,ElasticSearch里面提供了丰富的操作数据的api,本篇是用来学习一下es中更新数据的几种方式。一、更新文档1:部分更新:Java api` HashMap<String,Object> data=new HashMap<>(); data.put("name","helloES"); data.put...
最近使用一套数据加工中间工具,查看es操作中的update操作。其中方法命名为updateOrInsert。但是没发现代码中有ES的insert方法调用。于是仔细分析了代码逻辑。 经过一路追溯,直至ES java客户端请求发送代码。没找到insert相关内容。 于是到官网查看究竟,可官网对 java Client相关说明比较少。查看不到具体api的说明。于是回到代码调用处:
   本文将详细介绍单文档(Document)的更新API,其更新API如下: public final UpdateResponse update(UpdateRequest updateRequest, RequestOptions options) throws IOException public final void updateAsync(UpdateRequest updateRe...
import org.apache.http.HttpHost; import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.DocWriteResponse; import...