美文网首页
elasticsearch-基本查询API语法整理

elasticsearch-基本查询API语法整理

作者: weylau | 来源:发表于2019-11-20 19:17 被阅读0次

    常用查询

    • 关闭服务
    curl -XPOST 'http://localhost:9200/_shutdown'
    
    • 查询集群健康
    GET /_cluster/health
    
    • 修改复制分片的数量
    PUT /blogs/_settings
    {
       "number_of_replicas" : 2
    }
    
    • 创建索引并设置分片数
    //分配3个主分片和一个复制分片(每个主分片都有一个复制分片)
    PUT /blogs
    {
       "settings" : {
          "number_of_shards" : 3,
          "number_of_replicas" : 1
       }
    }
    
    • 计算集群中的文档数量
    curl -XGET 'http://localhost:9200/_count?pretty' -d '
    {
        "query": {
            "match_all": {}
        }
    }
    '
    
    • 添加
    POST /megacorp/employee/2
    {
        "first_name" : "孙悟空",
        "last_name" :  "孙悟空",
        "age" :        33,
        "about" :      "四大名著 西游记 西天取经",
        "interests": [ "打怪", "睡觉" ]
    }
    
    //自定义id创建
    //方式一
    PUT /megacorp/employee/123?op_type=create
    {
        "first_name" : "孙悟空",
        "last_name" :  "孙悟空",
        "age" :        33,
        "about" :      "四大名著 西游记 西天取经",
        "interests": [ "打怪", "睡觉" ]
    }
    //方式二
    PUT /megacorp/employee/123/_create
    {
        "first_name" : "孙悟空",
        "last_name" :  "孙悟空",
        "age" :        33,
        "about" :      "四大名著 西游记 西天取经",
        "interests": [ "打怪", "睡觉" ]
    }
    
    • 修改
    PUT /megacorp/employee/2
    {
        "first_name" : "孙悟空",
        "last_name" :  "孙悟空",
        "age" :        33,
        "about" :      "四大名著 西游记 西天取经",
        "interests": [ "打怪", "吃桃" ]
    }
    
    //自定义版本号修改
    PUT /website/blog/2?version=5&version_type=external
    {
        "first_name" : "孙悟空",
        "last_name" :  "孙悟空",
        "age" :        33,
        "about" :      "四大名著 西游记 西天取经",
        "interests": [ "打怪", "吃桃" ]
    }
    
    //自增修改字段
    //?retry_on_conflict=5当出现版本冲突时的重试次数
    POST /megacorp/employee/5/_update?retry_on_conflict=5
    {
      "script": "ctx._source.age+=1",
      "upsert": {
        "age": 0
      }
    }
    
    • 删除
    DELETE /megacorp/employee/2
    

    简单搜索查询

    //按id查询
    GET /megacorp/employee/1
    
    //按id查询格式化
    GET /megacorp/employee/1?pretty
    
    //只返回_source部分字段
    GET /megacorp/employee/1?_source=first_name,age
    
    //只返回_source字段而不要其他的元数据
    GET /megacorp/employee/1/_source
    
    //搜索全部
    GET /megacorp/employee/_search
    
    //查询字符串
    GET /megacorp/employee/_search?q=last_name:Smith
    
    • 批量查询mget

    合并多个请求可以避免每个请求单独的网络开销

    //不同的index查询
    POST /_mget
    {
      "docs": [
        {
          "_index": "myblog",
          "_type": "mb_articles",
          "_id": 2
        },
        {
          "_index": "megacorp",
          "_type": "employee",
          "_id": 5
        }
      ]
    }
    
    //同一个type查询
    POST /megacorp/employee/_mget
    {
      "docs": [
        {
          "_id": 5
        },
        {
          "_id": 1
        }
      ]
    }
    或者
    POST /megacorp/employee/_mget
    {
      "ids": [
        "2",
        "1"
      ]
    }
    
    • 批量更新 bulk

    格式:

    这种格式类似于用"\n"符号连接起来的一行一行的JSON文档流(stream)。两个重要的点需要注意:

    • 1、每行必须以"\n"符号结尾,包括最后一行。这些都是作为每行有效的分离而做的标记。
    • 2、每一行的数据不能包含未被转义的换行符,它们会干扰分析——这意味着JSON不能被美化打印
    { action: { metadata }}\n
    { request body        }\n
    { action: { metadata }}\n
    { request body        }\n
    ...
    
    • action:
    行为 解释
    create 当文档不存在时创建之
    index 创建新文档或替换已有文档
    update 局部更新文档
    delete 删除一个文档
    POST /_bulk
    { "create": { "_index": "website", "_type": "blog", "_id": "123" }}
    { "title":    "My first blog post" }
    { "index":  { "_index": "website", "_type": "blog" }}
    { "title":    "My second blog post" }
    

    相关文章

      网友评论

          本文标题:elasticsearch-基本查询API语法整理

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