美文网首页
3.3-ES-CURD

3.3-ES-CURD

作者: 落日彼岸 | 来源:发表于2020-03-16 16:00 被阅读0次
    操作 命令 备注
    Index PUT my_index/_doc/1
    { "user" : "Mike","cpmment" : "Tou kone, forsearch"}
    id存在即更新
    Create PUT my_index/_create/1
    { "user" : "Mike","cpmment" : "Tou kone, forsearch"}

    POST my_index/_doc/ (不指定ID, 自动生成)
    { "user" : "Mike","cpmment" : "Tou kone, forsearch"}
    id存在则失败
    Read GET my_index/_doc/1
    Update POST my_index/_update/1
    {"doc":{ "user" : "Mike","cpmment" : "Tou kone, forsearch"}}
    Delete DELETE my_index/_doc/1
    • Tpye名, 约定都用doc

    • Index - 如果ID不存在,创建新的文档; 否则,先删除现有的文档,再创建新的文档,版本会增加

    • Create - 如果ID已经存在, 会失败

    • Update - 文档必须已经存在,更新只会对相应字段做增量修改

    批量操作-Bulk API

    • 支持在一次API调用中,对不同的索引进行操作

    • 支持四种类型操作

      • Index

      • Create

      • Update

      • Delete

    • 可以在RUL中指定Index, 也可以在请求的Payload中进行

    • 操作中单条操作失败,并不会影响其他操作

    • 返回结果包括了每一条操作执行和结果

    批量读取-megt

    • 批量操作可以减少网络连接产生的开销, 提高性能

    批量查询-msearch

    常见错误返回

    问题 原因
    无法连接 网络故障或集群挂了
    连接无法关闭 网络故障或节点出错
    429 集群过于繁忙
    4xx 请求体格式有错
    500 集群内部错误

    课程DEMO

    ############Create Document############
    #create document. 自动生成 _id
    POST users/_doc
    {
        "user" : "Mike",
        "post_date" : "2019-04-15T14:12:12",
        "message" : "trying out Kibana"
    }
    
    #create document. 指定Id。如果id已经存在,报错
    PUT users/_doc/1?op_type=create
    {
        "user" : "Jack",
        "post_date" : "2019-05-15T14:12:12",
        "message" : "trying out Elasticsearch"
    }
    
    #create document. 指定 ID 如果已经存在,就报错
    PUT users/_create/1
    {
         "user" : "Jack",
        "post_date" : "2019-05-15T14:12:12",
        "message" : "trying out Elasticsearch"
    }
    
    ### Get Document by ID
    #Get the document by ID
    GET users/_doc/1
    
    
    ###  Index & Update
    #Update 指定 ID  (先删除,在写入)
    GET users/_doc/1
    
    PUT users/_doc/1
    {
        "user" : "Mike"
    
    }
    
    
    #GET users/_doc/1
    #在原文档上增加字段
    POST users/_update/1/
    {
        "doc":{
            "post_date" : "2019-05-15T14:12:12",
            "message" : "trying out Elasticsearch"
        }
    }
    
    
    
    ### Delete by Id
    # 删除文档
    DELETE users/_doc/1
    
    
    ### Bulk 操作
    #执行两次,查看每次的结果
    
    #执行第1次
    POST _bulk
    { "index" : { "_index" : "test", "_id" : "1" } }
    { "field1" : "value1" }
    { "delete" : { "_index" : "test", "_id" : "2" } }
    { "create" : { "_index" : "test2", "_id" : "3" } }
    { "field1" : "value3" }
    { "update" : {"_id" : "1", "_index" : "test"} }
    { "doc" : {"field2" : "value2"} }
    
    
    #执行第2次
    POST _bulk
    { "index" : { "_index" : "test", "_id" : "1" } }
    { "field1" : "value1" }
    { "delete" : { "_index" : "test", "_id" : "2" } }
    { "create" : { "_index" : "test2", "_id" : "3" } }
    { "field1" : "value3" }
    { "update" : {"_id" : "1", "_index" : "test"} }
    { "doc" : {"field2" : "value2"} }
    
    ### mget 操作
    GET /_mget
    {
        "docs" : [
            {
                "_index" : "test",
                "_id" : "1"
            },
            {
                "_index" : "test",
                "_id" : "2"
            }
        ]
    }
    
    
    #URI中指定index
    GET /test/_mget
    {
        "docs" : [
            {
    
                "_id" : "1"
            },
            {
    
                "_id" : "2"
            }
        ]
    }
    
    
    GET /_mget
    {
        "docs" : [
            {
                "_index" : "test",
                "_id" : "1",
                "_source" : false
            },
            {
                "_index" : "test",
                "_id" : "2",
                "_source" : ["field3", "field4"]
            },
            {
                "_index" : "test",
                "_id" : "3",
                "_source" : {
                    "include": ["user"],
                    "exclude": ["user.location"]
                }
            }
        ]
    }
    
    ### msearch 操作
    POST kibana_sample_data_ecommerce/_msearch
    {}
    {"query" : {"match_all" : {}},"size":1}
    {"index" : "kibana_sample_data_flights"}
    {"query" : {"match_all" : {}},"size":2}
    
    
    ### 清除测试数据
    #清除数据
    DELETE users
    DELETE test
    DELETE test2
    

    相关阅读

    相关文章

      网友评论

          本文标题:3.3-ES-CURD

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