您的位置:首页 > 其它

Elasticsearch6.2.2说明文档--数据操作(Document操作)

2018-03-13 15:33 405 查看
环境:       Elasticsearch: 6.2.2       Kibana: 6.2.2       os: centos 7 原文参考地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/_modifying_your_data.html 原文参考地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/_updating_documents.html 原文参考地址:https://www.elastic.co/guide/en/elasticsearch/reference/6.2/docs-update-by-query.html1、数据修改     上文中演示了如何创建index然后插入doc,再数据已经插入之后如何修改数据呢,参考下面     命令:            PUT /customer/_doc/1?pretty
            {
                  "name": "wandy"
            }
     然后GET customer/_doc/1 查看结果:
     


     结果已经成功修改,注意
        1、ES提供的对数据的控制和查询是一个接近实时的,也就意味着,当你修改了数据(新增、修改、删除)以后,你可以认为它有大概1秒钟的延时才能出现在反映到你的搜索结果中,这是和传统SQL的区别
        2、对数据的修改必须带有ID,否则ES会认为是新增数据,然后自动生成对应的ID,另外也可以使用如下方式让ES自动生成新增数据的ID

            POST /customer/_doc?pretty
            {
              "name": "Jane Doe"
            }

2、其他修改方式
    a、POST /customer/_doc/1/_update?pretty
        {
          "doc": { "name": "Jane Doe" }

        }
   b、修改的同时再新增一个字段
        POST /customer/_doc/1/_update?pretty
        {
          "doc": { "name": "Jane Doe", "age": 20 }

        }
   c、脚本的方式
        POST /customer/_doc/1/_update?pretty
        {
          "script" : "ctx._source.age += 5"

        }
3、 ES同时也提供了按照条件更新,就像SQL中的update--where ,使用的是_update_by_query
4、删除document
    命令:DELETE /customer/_doc/2?pretty

5、批量操作(使用_bulk API)
     a、批量插入

            POST /customer/_doc/_bulk?pretty
                {"index":{"_id":"1"}}
                {"name": "John Doe" }
                {"index":{"_id":"2"}}

                { "name": "Jane Doe" }  
ac63
  
        或者包含不指定的ID的

            POST /customer/_doc/_bulk?pretty
                {"update":{"_id":"1"}}
                {"doc": { "name": "John Doe becomes Jane Doe" } }
                {"delete":{"_id":"2"}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: