1、关于put /index/type/id 和post /index/type/id/_update两这个区别
put操作,如果id不存在,则创建新的document,如果id存在是全量替换
post当中的是对部分内容的替换,es对两者底层的实现也是不同的,称做是partial update,其底层实现方式是
a.内部获取到全量的document对象
b.将传递过来的filed更新到document当中
c.将旧的document设置成deleted
d.将新创建的document创建出来
partial update和直接update全量的不同在于,整个操作过程都是在一个es的shard当中执行的,执行结束之后,才会将数据同步到不同的shard上面,避免了二次网络请求
2、批量查询命令
对于确定的index,type,批量根据id
_mget命令
GET /ecommerce/product/_mget
{
"ids":[1,2]
}
也可以查询不同的type下的数据
GET /ecommerce/_mget
{
"docs":[{
"_type":"product",
"_id":1
},
{
"_type":"product",
"_id":1
}
]
}