美文网首页
基本操作

基本操作

作者: 午夜丶小学徒 | 来源:发表于2019-11-20 18:29 被阅读0次

    一、介绍

    """
    数据库:库、表、数据(每一条)、字段
    ElasticSearch:索引、类型、数据(每一条)、属性
    类别两者,数据库中可以建立多个表,而ElasticSearch5.0版本后一条索引仅能对应一个类型
    """
    1、GET /* # 获取所有数据
    2、DELETE /* # 删除所有数据
    3、GET _cat/indices?v # 查看所有索引
    4、PUT test1/type1/1
      {
          "name": zqx,
          "age": 18 
      } # 添加数据(继续运行则为按照当前json格式修改数据)
    5、GET  test1/type1/1 # 查看对应数据
    6、DELETE test1 # 删除对应索引下的所有数据
    

    二、增删改查

    1、PUT goods/fruit/1
      {
          "name": "zqx",
          "age": 18,
          "like": "biancheng"
      } # 新增数据
    2、GET goods/fruit/1 # 获取数据
    3、POST goods/fruit/1/_update
      {
          "doc": {
              "age": 21
          }
      } # 指定修改部分属性
    4、DELETE goods/fruit/1 # 删除ID为1的数据
    # 两者查询文档中的属性方式
       a. GET goods/fruit/_search?q=age:21
       b. GET goods/fruit/_search
          {
              "query": {
                 "match": {
                   "age": 21
               }
             }
          }
    

    三、排序查询

    1、查询所有
       GET goods/fruit/_search
       {
           "query": {
               "match_all": {}
           }
       }
    2、排序查询
       GET goods/fruit/_search
       {
           "query": {
               "match": {
                   "name": "zqx"
               },
            "sort": [{
                "age": {
                    "order": "desc"
                }
            }]
           }
       }
      # 注意:只有数字或者日期可以排序
    

    四、分页查询

    1、分页查询(从第几条开始查询,查询几条)
       GET goods/fruit/_search
       {
           "query": {
               "match": {
                   "name": "zqx"
               },
            "sort": [{
                "age": {
                    "order": "desc"
                }
            }],
           "from": 0,
           "size": 2
           }
       }
    2、查询指定属性
       GET goods/fruit/_search
       {
           "query": {
               "match_all": {}
           },
           "_source": ["name", "age"]
       }
    

    五、bool查询

    1、must(相当于and查询)
       GET goods/fruit/_search
       {
           "query": {
               "bool": {
                   "must": [
                       {
                           "match": {"name": "zqx"}
                       },
                       {
                           "match": {"age": 18}
                       },
                   ]
               }
           }
       }
    2、should(相当于or查询)
       GET goods/fruit/_search
       {
           "query": {
               "bool": {
                   "should": [
                       {
                           "match": {"name": "zqx"}
                       },
                       {
                           "match": {"age": 18}
                       },
                   ]
               }
           }
       }
    3、must_not(相当于not查询)
    

    六、按条件过滤查询

    """
    注意:filter属于bool查询内的过滤条件
    注意:如果过滤条件使用should(底下的must改为should),检索的结果可能出现问题,建议使用must关键字
    注意:range(lt小于、lte小于等于、gt大于、gte大于等于)
    """
       GET  goods/fruit/_search
       {
           "query": {
               "bool": {
                   "must": [
                       {
                           "match": {"name": "zqx"}
                       }
                   ],
                   "filter": {
                       "range": {
                           "age": {"gt": 18}
                       }
                   }
               }
           }
       }
    

    七、短语检索

    """
    注意:检索数据类型的数据,直接通过全文检索,可以匹配多个值,通过空格间隔
    """
    1、GET  goods/fruit/_search
       {
           "query": {
               "match": {
                    "tags": "haochi henda"
               }
           }
       }
    2、GET  goods/fruit/_search
       {
           "query": {
               "match_phrase": {
                   "中国你好"
               }
           }
       }
    

    八、高亮检索

    """
    注意:前置标签和后置标签需要分开写,符号外双内单
    """
       GET goods/fruit/_search
       {
           "query": {
               "match": {
                   "name": "zqx"
               }
           },
           "highlight": {
               "pre_tags": "<b style='color: red' class='key'>",
               "post_tags": "</b>",
               "fields": {
                   "name": {}
               }
           }
       }
    

    相关文章

      网友评论

          本文标题:基本操作

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