简介
文档类似于关系型数据库中的表记录。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
以前一个index
多type
是可以的,但是6.x
一个index
只允许有一个type
,7.0
后type
将被移除)_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"
}
只有传入的版本号等于当前版本号时才能修改成功,否则报错;
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