elaticsearch文档存储

作者: jacksu在简书 | 来源:发表于2016-05-23 19:54 被阅读510次

    现在面向对象编程非常流行,对象作为一个整体存储在NoSQL数据库中,经常以JSON的格式。一个JSON通常也成为文档(document),elasticsearch就是文档(JSON)的形式存储数据的。

    文档存储涉及概念

    元数据概念.png

    索引

    PUT /{index}/{type}/{id}
    {
        "field": "value",
         ...
    }
    

    获取

    GET /{index}/{type}/{id}?pretty
    

    检查文档存在

    curl -i -XHEAD http://localhost:9200/{index}/{type}/{id}
    

    更新

    文档在Elasticsearch中是不可变的——我们不能修改他们。

    更新整个文档

    在内部,Elasticsearch标记旧文档为删除并添加一个完整的新文档,_version加1。

    PUT /{index}/{type}/{id}
    

    局部更新

    局部更新的步骤为:
    1 从旧文档中检索JSON
    2 修改它
    3 删除旧文档
    4 索引新文档
    更新语句:

    POST /website/blog/1/_update
    { 
            "doc" : { 
                    "tags" : [ "testing" ], 
                    "views": 0 
            }
    }
    

    更新冲突解决

    Elasticsearch是分布式的。当文档被创建、更新或删除,文档的新版本会被复制到集群的其它节点。index、get、delete请求时,每个文档都有一个_version号码,这个号码在文档被改变时加一。Elasticsearch使用这个_version保证所有修改都被正确排序。当一个旧版本出现在新版本之后,它会被简单的忽略。

    相关文章

      网友评论

        本文标题:elaticsearch文档存储

        本文链接:https://www.haomeiwen.com/subject/eeqorttx.html