基本操作

一、介绍

"""
数据库:库、表、数据(每一条)、字段
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": "",
           "post_tags": "",
           "fields": {
               "name": {}
           }
       }
   }

你可能感兴趣的:(基本操作)