用ES的时候常常会遇见更新数据的情况,
这里做个简单介绍:
首先最常用的,也是最效率的方法是根据id去更新,这时候调用的是update方法:
public static function updateEsById($id,$data = [])
{
if (empty($id) || empty($data)){
return false;
}
$es = new Elastic();
$data=[
'index' => self::$es_index,
'type' => self::$es_type,
'id' => $id,
'body' => [
'doc'=> $data //这里的data是个一维关联数组,和常用的ORM更新方法参数一致。
]
];
$res = $es->update($data);
return $res['result'];
}
是不是很简单?
另外还有种情况就是我们不知道需要更新数据的id,或者说我们需要根据条件批量更新,这时候可以用updateByQuery方法: