Elasticsearch语法详情

本文详细介绍了Elasticsearch中常见的CURD操作,包括添加、删除、修改和查询数据的方法。涵盖了PUT和POST添加操作的区别,如何指定ID或让Elasticsearch自动生成ID,以及在不同版本中正确的删除语法。此外,还深入探讨了修改操作的不同方式,以及如何进行复杂查询,如排序、分页和高亮显示等。

基础CURD

添加
如果已经存在 那么就会覆盖

//PUT 添加操作需要制定id
PUT /product/_doc/1
{
	"name":"TAO"
}
//POST 添加操作可以不指定id,ES会默认生成一个唯一id
POST /product/_doc/
{
	"name":"TAO"
}
//POST 添加操作可以指定id
POST /product/_doc/2
{
  "name": "TAO2"
}

POST 添加操作可以不指定id
在这里插入图片描述
POST 添加操作可以指定id
在这里插入图片描述

删除
语法:DELETE /索引/文档/id

//7.x直接这么写会报错
DELETE /product/9
{
  "error": "Incorrect HTTP method for uri [/product/9?pretty] and method [DELETE], allowed: [POST]",
  "status": 405
}

//7.x正确写法,虽然添加索引值的时候,警告不要添加类型,但是其他操作还是要加上_doc
DELETE /product/_doc/9

//删除所有
DELETE /test


//复杂条件删除
POST product/_doc/_delete_by_query   
{
  "query":{
    "match":{
      "name":"TAO"
    }
  }
}

//删除所有
POST product/_doc/_delete_by_query   
{
   "query": {
        "match_all": {
        }
    }
}

修改

//PUT 修改会将其他属性值丢失,不是建议使用这种方式
PUT /product/_doc/10
{
  "brandName":"HUAWEI1"
}
//POST 修改时不会丢失其他值
POST /product/_doc/10/_update
{
  "doc":{
    "brandName" : "HUAWEI"
  }
}

查询

//查询id为1的数据
GET /product/_doc/1

//带其他条件查询-模糊查询,并且是满足其中一个即可
GET product/_search?q=name:TAO2
GET product/_search?q=name:TAO2&q=sgin:111

//查询所有
GET /product/_search

//查询所有
POST /product/_search
//条件查询
POST /product/_search
{
  "query": {
    "match": {
      "catalogName": "苹果12"
    }
  }
  
}


排序

//按照age倒叙
GET /test/_search
{
  "sort": [
    {
      "age": "desc"
    }
  ]
}

//按照age正序
GET /test/_search
{
  "sort": [
    {
      "age": "asc"
    }
  ]
}

查询分页

GET /test/_search
{
//开始位置的索引
  "from": 0,
//查询总大小
  "size": 2
}

高亮显示

默认高亮采用加粗显示

GET /test/_search
{
 "query": {
   "match": {
     "sgin": "第一"
   }
 },
 "highlight": {
    "fields": {
      "sgin":{}
    }, 
    "pre_tags": "<b style='color:red'>",
    "post_tags": "</b>"
 }
}

查看字段类型


GET /product

GET product/_mapping

复杂查询

返回指定字段

GET /newbank/_search
{
  "_source": ["gender","age","employer"]
}

多字段匹配

GET /bank/_search
{
  "query": { 
    "multi_match": {
      "query": "mill Blackgum", 
      "fields": ["city","address"]
    }
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员劝退师-TAO

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

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

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

打赏作者

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

抵扣说明:

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

余额充值