ES相关DSL语句(持续更新)

索引操作

创建索引
创建索引使用PUT请求,后面跟上索引名称就好了,由于7.x默认type为_doc,所以后面不必跟上type了。在PUT简单请求同时,可以加上JSON请求体,进行复杂创建。

创建索引user,可以通过参数setting设置分片和副本数,通过number_of_shards设置一共有3个分片,通过number_of_replicas给每个分片设置2个副本,默认不指定的话,这两个参数都是1。通过mappings规定文档各个Filed插入类型。

PUT /user
{
   
  "settings": {
   
    "index": {
   
      "number_of_shards": 3,  
      "number_of_replicas": 2 
    }
  },
  "mappings": {
   
    "properties": {
   
      "name": {
    "type": "text" },
      "age": {
   "type": "short"},
      "city":{
   "type": "keyword"}
    }
  }
}

删除索引

DELETE /user

查看索引

GET /user

也可以通过在索引后面加参数来查看某一具体参数

GET /user/_settings
GET /user/_mappings
GET /user/_aliases

修改索引部分设置
可以通过PUT请求修改部分索引的settings,例如,分片副本数量可以修改,但是分片数量不可以通过这种方式修改

PUT /user/_settings
{
   
  "number_of_replicas": 3 
}

文档操作

创建好索引,来看下文档的增删改查,这是日常业务用的最多的地方。

插入文档
新增文档使用PUT、POST请求

PUT /<target>/_doc/<_id>

POST /<target>/_doc/

PUT /<target>/_create/<_id>

POST /<target>/_create/<_id>

target为索引名称,_doc为默认type。通过前两种请求可看出,id可以自行指定,也可以由ES自动生成。_create可以保证只有当文档不存在的时候进行插入,而_doc还可以用于文档更新。

POST /user/_doc/1
{
   
  "name":"111",
  "age":26,
  "city":"bj"
}

更新文档
更新文档可以使用PUT或者POST请求关键字,全量更新

{
   
  "name":"ee",
  "age":3,
  "city":"sh"
}

还可以通过_update命令局部更新,所谓局部更新,是讲请求体内不需要加入全部字段,只加入需要修改的字段就好,其他字段不变。全量更新会替换整个文档。

POST /user/_update/1
{
   
  "doc":{
   
    "age": 26
  }
}

此外还可以通过脚本修改,例如将所有存在age字段的文档,其值改成5岁。

POST /user/_update_by_query
{
   
  "script": {
   
    "source": "ctx._source['age']=5" 
  },
  "query": {
   
    "bool": {
   
      "must": [
        {
   
          "exists": {
   
            "field": "age"
          }
        }
      ]
    }
  }
}

删除文档
删除文档可以使用DELEETE请求,删除指定id的文档,也可以使用_delete_by_query,删除指定条件下的文档。

DELETE /user/_doc/1
POST /user/_delete_by_query
{
   
  "query": {
   
    "match": {
   
      "name": "ee"
    }
  }
}

查找文档

根据id查询某文档

GET /user/_doc/1

查找某索引下的全部文档

GET /user/_search?pretty

pretty参数在浏览器中才会发挥作用,格式化返回json的。以上这条命令默认返回10条数据,想返回更多数据可以添加size字段。

GET /user/_search?pretty&size=20

批量操作

批量操作是指,一批命令同时执行(减少IO),这些命令不一定是同种类型。

使用_bulk命令可以进行文档的批量增删改。

POST _bulk
{
    "update" : {
    "_index" : 

你可能感兴趣的:(ES,elasticsearch,mysql,sql)