Document的增删改查

Index操作

上一章我创建创建了test-index这个索引,索引的删除操作很简单:

DELETE /index-name

image-20220709085933511

创建索引时,可以指定索引的shard与replica数量:

PUT /products
{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 2
  }
}

image-20220709090035617

products索引此时具有两个shard和两个replica:

pri是shard数量,rep是replica的数量:

image-20220709090103365

插入Documents

POST /products/_doc
{
  "name":"test-name",
  "price":10,
  "count":100
}

image-20220709103233348

一个primary shard + 两个replica shard,所以返回total = 3.

插入数据时,如果没有指定id会自动生成一个id。

当然也可以显式指定id:

image-20220709103422486

根据id进行查询

GET /index-name/_doc/id

image-20220709103503929

如果查询的id不存在,会返回found: false:

image-20220709103527594

更新documents

将上面记录的价格更新为30:

POST /products/_update/123
{
  "doc":{
    "price":30
  }
}

image-20220709103627503

重新查询数据,确认更新成功:

image-20220709103709858

我们可以对已存在的字段进行更新,也可以增加新的字段:

image-20220709103812945

替换documents

上面的更新操作,是针对某个字段级别的更新,比如替换已有字段或增加新的字段。如果我们想对整个Document进行替换,可以使用以下语法:

PUT /products/_doc/123
{
  "doc":{
    "name": "Water",
    "price":1,
    "count":10
  }
}

此时原来的文档被覆盖:

image-20220709103951406

删除操作

DELETE /index-name/_doc/id

image-20220709104038104