Elasticsearch 常用语法

#创建索引并设置分片 
#分片个数,在创建索引不指定时 默认为 5
#数据副本,一般设置为1

PUT  index_es
{
 "settings": {
      "number_of_shards": 5,
      "number_of_replicas": 1
    }
  
}

#创建mappings

PUT index_es/type_es/_mapping
{
  "type_es": {
    "properties": {
      "name": {
        "type": "text"
      },
       "age": {
        "type": "long"
      },
      "date_time": {
          "type": "date",
          "format":"yyyy-MM-dd HH:mm:ss"
        }
        
    }
  }
}

# mappings 是不允许修改,danshi但是是可以新增字段
#在已经建立的索引下 ,添加 字段mappings  

PUT index_es/type_es/_mapping
{
  "type_es": {
    "properties": {
      "add_info": {
        "type": "text"
      }
    }
  }
}

#插入数据,设置id

PUT index_es/type_es/1
{
  "name": "张三 ",
  "age": "22",
  "date_time":"2022-01-01 19:03:22"
}


#插入数据 ,自动生成id

POST index_es/type_es
{
  "name": "张三2",
  "age": "8",
  "date_time":"2021-02-01 19:03:22"
}


#查询对应索引下所有数据

GET index_es/type_es/_search
{
  "query": {
    "match_all": {}
  }
}

#如果你使用 match 查询一个全文本字段,它会在真正查询之前用分析器先分析match一下查询字符:

GET index_es/type_es/_search
{
  "query":{
    "match":{
      "name":"张三2"
    }
  }
}

#multi_match查询允许你做match查询的基础上同时搜索多个字段,在多个字段中同时查一个:

GET index_es/type_es/_search
{ 
   "query":{
      "multi_match": { 
          "query":    "1", 
          "fields":   [ "name", "age" ] 
      } 
     
   }
}

#分页查询 

GET index_es/type_es/_search
{
 "query":{
    "match":{
      "name":"张三"
    }
  },
  "from": 0,
  "size": 5
}


#分页查询 ,并排序 

GET index_es/type_es/_search
{
 "query":{
    "match":{
      "name":"张三"
    }
  },

  "from": 0,
  "size": 5
  ,
  "sort": {
        "date_time": {
            "order": "asc"
        }
    }
  
}

#range过滤允许我们按照指定范围查找一批数据

#范围操作符包含:
#gt :: 大于
#gte:: 大于等于
#lt :: 小于
#lte:: 小于等于
GET index_es/type_es/_search
GET index_es/type_es/_search
{
  "query":{
    "range": { 
        "age": { 
            "gt": 20, 
            "lt": 30 
        } 
    } 
    
  }
}

#时区范围查询
#范围操作符包含:
#gt :: 大于
#gte:: 大于等于
#lt :: 小于
#lte:: 小于等于

GET index_es/type_es/_search
{
    "query": {
        "range": {
            "date_time": {
                "gte": "2022-01-10 12:12:02", 
                "lte": "2022-10-01 12:12:02",
                "format": "yyyy-MM-dd HH:mm:ss"
            }
        }
    }
}

#查询所有记录中年龄的最大值

GET index_es/type_es/_search
{
  "size": 0, 
  "aggs": {
    "age": {
      "max": {
        "field": "age"
      }
    }
  }
}

# 统计文档数量

GET index_es/type_es/_count
{
    "query":{
        "match":{
            "age":8
        }
    }
}

#stats 统计 count max min avg sum 5个值 ,为统计别名age_count 

GET index_es/type_es/_search
{
  "size": 0, 
    "aggs":{
        "age_count":{
            "stats":{
                "field":"age"
            }
            
        }
    }
}

#数据迁移 

POST _reindex
{
  "source": {
    "index": "index_es"
  },
  "dest": {
    "index": "new_index_es"
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

终遇你..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值