• ES增删改查入门


    一、文档管理

    1.添加文档

    模板:

    PUT /{索引}/_doc/{id}
    {请求体数据信息json格式}

    例子:

    PUT /book/_doc/1
    {
    "title":"Java程序性能",
    "desc":"强类型语言"
    }

    2.修改文档

    模板:

    POST /{索引}/_doc/{id}
    {请求体数据信息json格式}

    例子:

    POST /book/_doc/1
    {
    "title":"Go程序性能",
    "desc":"强类型语言"
    }

    3.删除文档

    模板:

    DELETE /{索引}/_doc/{id}

    例子

    DELETE /book/_doc/1

    4.获取文档

    模板:

    GET /{索引}/_doc/{id}

    例子:

    GET /book/_doc/1

    5.批处理

    模板:

    [PUT|POST]  /{索引}/_bulk
    {action:{metadata}}
    {请求体数据信息json格式}

    备注:

    action对应取值:

    • create : 创建一个文档,如果文档不存在就创建
    • index : 创建一个新的文档,如果文档存在就更新
    • update : 批量更新文档
    • delete : 批量删除,不需要有请求体

    例子:

    POST /book/_bulk
    {"index":{"_id":1}}
    {"id":1,"title":"php入门到精通","desc":"php是世界上最好的语言"}
    {"index":{"_id":2}}
    {"id":1,"title":"java入门到精通","desc":"java是世界上最快的语言"}

    二、查询数据 - query

    1.查询全部数据 - match_all

    POST /{索引}/_search
    {
      "query": {
      	"match_all": {}
      }
    }

    2.关键词查询 - term

    模板:

    POST /{索引}/_search
    {
      "query":{
        "term":{
        	"{字段名}":"{搜索词}"
        }
      }
    }

    例子:

    POST /book/_search
    {
      "query": {
        "term": {
        	"desc": "java"
        }
      }
    }

    3.根据查询字符串查询 - query_string

    模板:

    POST /{索引}/_search
    {
      "query":{
        "query_string":{
          "default_field":"{字段名}",
          "query":"{查询字符串}"
        }
      }
    }

    例子

    POST /book/_search
    {
      "query":{
        "query_string":{
          "default_field":"desc",
          "query":"java"
        }
      }
    }

    4.根据查询字符串查询 - match

    POST /book/_search
    {
      "query":{
        "match":{
        	"title":"java"
        }
      }
    }

    5.指定多个字段查询 - multi_match

    POST /book/_search
    {
      "query":{
        "multi_match":{
          "query":"入门",
          "fields":["desc","title"]
        }
      }
    }

    三、bool查询

    1.组合条件查询

    逻辑关系:
    must:必须满足,相当于是AND
    should:应该满足,相当于OR
    must_not:必须不能满足,相当于NOT
    filter: 必须满足,不计分,同时可以cache

    POST /book/_search
    {
      "query":{
      "bool":{
        "should":[
          {
            "term": {
            	"title": "java"
            }
          },
          {
            "match": {
            	"desc": "PHP"
            }
          }
         ]
      	}
    	}
    }

    2.filter条件搜索

    (1)范围搜索 - range

    • gt :大于
    • lt :小于
    • gte :大于等于
    • lte :小于等于

    例子:

    POST /book/_search
    {
      "query":{
      "bool":{
        "filter":{
          "range":{
            "price":{
              "gt":25,
              "lt":50
              }
            }
          }
        }
      }
    }

    (2)字段存在查询 - exists

    例子:

    {
      "query":{
      "bool":{
        "filter":{
          "exists":{
            "field":"desc"
          }
          }
        }
      }
    }
  • 相关阅读:
    easy-monitor3.0 nodejs性能监控和分析工具
    粗糙集知识约简的python代码
    机器人操控电脑,华为天才少年稚晖君再出手,直呼:项目不太难
    Ubuntu连不上WiFi 或者虽然能连上校园网,但是浏览器打不开登录页面
    C++11 - 右值引用
    K8S云计算系列-(1)
    (Python) 在Python中对WAV音频文件进行分割与拼接
    ICMP Ping实现
    【云原生&微服务九】SpringCloud之Feign实现声明式客户端负载均衡详细案例
    JVM类加载机制详解
  • 原文地址:https://blog.csdn.net/weixin_39682289/article/details/127911667