Open Source, Open Future!
  menu
107 文章
ღゝ◡╹)ノ❤️

elasticsearch---文档

简介

文档类似于关系型数据库中的表记录。JSON格式,如下面的例子:

{
  "name": "hw002",
  "category": "phone",
  "brand": "huawei",
  "price": 999.91,
  "stock": 100,
  "create_time": "2015-1-1",
  "modify_time": "2015-1-3"
}

参数说明

  • _index:索引,类似于关系型数据库中的数据库。
  • _type:类型,类似于关系型数据库中的表。(5.x以前一个indextype是可以的,但是6.x一个index只允许有一个type7.0type将被移除)
  • _id:文档的唯一标识。
  • _version:版本号,文档每次更新或删除时会加1。

新增

1、指定id(可以不是数字)

PUT /product/sku/1
{
  "name": "hw001",
  "category": "phone",
  "brand": "huawei",
  "price": 999.98,
  "stock": 100,
  "create_time": "2015-1-1",
  "modify_time": "2015-1-2"
}

返回结果:

{
  "_index": "product",
  "_type": "sku",
  "_id": "1",
  "_version": 1,
  "result": "created",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 0,
  "_primary_term": 1
}

_version为 1 ,result为"created"。

2、自动生成id
,使用POST方式

POST /product/sku
{
  "name": "hw999",
  "category": "phone",
  "brand": "huawei",
  "price": 9999.98,
  "stock": 200,
  "create_time": "2015-2-1",
  "modify_time": "2015-2-2"
}

返回结果:

{
  "_index": "product",
  "_type": "sku",
  "_id": "CfJmG2sBcTKHlRM3VS73",
  "_version": 1,
  "result": "created",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 0,
  "_primary_term": 1
}

自动生成id:CfJmG2sBcTKHlRM3VS73

修改

1、PUT方式修改指定的文档(需要传递所有的字段):

PUT /product/sku/1
{
  "name": "hw002",
  "category": "phone",
  "brand": "huawei",
  "price": 999.91,
  "stock": 100,
  "create_time": "2015-1-1",
  "modify_time": "2015-1-3"
}

返回结果:

{
  "_index": "product",
  "_type": "sku",
  "_id": "1",
  "_version": 2,
  "result": "updated",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 1,
  "_primary_term": 1
}

版本号_version加1;
result为"updated";

2、PUT方式修改指定版本的文档:

PUT /product/sku/1?version=1
{
  "name": "hw002",
  "category": "phone",
  "brand": "huawei",
  "price": 999.91,
  "stock": 100,
  "create_time": "2015-1-1",
  "modify_time": "2015-1-3"
}

只有传入的版本号等于当前版本号时才能修改成功,否则报错;
image.png

3、POST方式修改指定的文档(只需要传需要更新的字段):

POST /product/sku/1/_update
{
   "doc" : {
      "name" : "hw001001"
   }
}

删除

DELETE /product/sku/1

返回结果:

{
  "_index": "product",
  "_type": "sku",
  "_id": "1",
  "_version": 3,
  "result": "deleted",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 2,
  "_primary_term": 1
}

版本号_version加1;result为"deleted";

查询

1、根据id查询:

GET /product/sku/1

2、查询所有文档:

GET /product/sku/_search

n、更多查询

检查文档是否存在

HEAD /product/sku/1

返回结果:

200 - OK