Linux 更新es文档数据,elasticsearch学习(三)----数据实时增删改

请记住_index、_type、_id三者唯一确定一个文档

create    当文档不存在时创建之  POST   /_index/_type  自动生成_id      /_index/_type/_id  自定义_id

update    局部更新文档    POST   /_index/_type /_id/_update

delete    删除一个文档    DELETE   /_index/_type/_id          不建议使用delete请求,可用_delete_by_query 代替

create

生成自定义的唯一标识_id

//_index、_type、_id 一致,返回 409 不添加

curl -H "Content-Type:application/json" -XPOST http://192.168.1.133:9200/hbh/test1/1/_create -d '{"id":1,"name":"苹果","love":"云雨,碧波,凝烟,霜华","abstract":"碧波凝烟翠,青山敷蒿华","weight":58.5,"work_time":{"gte":"2015-10-01 12:00:00","lte":"2018-11-01"},"ip":"192.168.1.1"}'

//_index、_type、_id 不一致,返回201 添加

curl -H "Content-Type:application/json" -XPOST http://192.168.1.133:9200/hbh/test1/2/_create -d '{"id":2,"name":"苹果","love":"云雨,碧波,凝烟,霜华","abstract":"碧波凝烟翠,青山敷蒿华","weight":58.5,"work_time":{"gte":"2015-10-01 12:00:00","lte":"2018-11-01"},"ip":"192.168.1.1"}'

es自动 生成唯一ID  看个人操作习惯,毕竟影响不大

curl -H "Content-Type:application/json" -XPOST http://192.168.1.133:9200/hbh/test1/ -d '{"id":2,"name":"苹果","love":"云雨,碧波,凝烟","abstract":"碧波凝烟翠,青山敷蒿华","weight":58.5,"work_time":{"gte":"2015-10-01 12:00:00","lte":"2018-11-01"},"ip":"192.168.1.1"}'

update

curl -H "Content-Type:application/json" -XPOST http://192.168.1.133:9200/hbh/test1/2/_update -d '{"doc":{"weight":59.99}}'

不用create 以及update,自动判断添加或者更新

//_index、_type、_id  一致,覆盖(全部更新),否则添加

curl -H "Content-Type:application/json" -XPUT http://192.168.1.133:9200/hbh/test1/1 -d '{"id":1,"name":"苹果","love":"云雨,碧波,凝烟","abstract":"碧波凝烟翠,青山敷蒿华","weight":58.5,"work_time":{"gte":"2015-10-01 12:00:00","lte":"2018-11-01"},"ip":"192.168.1.1"}'

curl -H "Content-Type:application/json" -XPOST http://192.168.1.133:9200/hbh/test1/1 -d '{"id":1,"name":"苹果","love":"云雨,碧波,凝烟","abstract":"碧波凝烟翠,青山敷蒿华","weight":58.5,"work_time":{"gte":"2015-10-01 12:00:00","lte":"2018-11-01"},"ip":"192.168.1.1"}'

delete

直接delete 请求,根据_id 删除

curl -H "Content-Type:application/json" -XDELETE http://192.168.1.133:9200/hbh/test1/_create

根据匹配到的条件删除   _delete_by_query    query 里面定义自己的条件

curl -H "Content-Type:application/json" -XPOST http://192.168.1.133:9200/hbh/test1/_delete_by_query -d '{"query":{"term":{"weight":59.99}}}'

使用PHP进行增删改操作、

请用方法

/**

* Desc:更新es库 type 1 新增 2 删除 3修改 ; data _id对象ID 必填

*/

function updateEsData($type,$obj,$data){

if(!$data||!$type||!$data['_id']){

return false;

}

$obj_arr=['bydls','test','logstash'];

if(!in_array($obj,$obj_arr)){

return false;

}

$data['_type']=$type;

$data['_obj']=$obj;

$url='请求接口地址';

$token =getToken($data);//生成自定义接口加密

$data['token'] = $token;

return curlPost($url,$data);

}

处理接口

public function updateEsData(){

if (!$this->_checkToken('es',I('post.'))) { //自定义的验证接口请求方法

$this->ajaxReturn(['msg'=>'验证失败','status'=>-200]);

}

$data=I('post.','');

$id=$data['_id'];

$type=$data['_type'];

$obj=$data['_obj'];

unset($data['_id']);

unset($data['_type']);

unset($data['_obj']);

unset($data['token']);

if (!$type||!$id) {

$this->ajaxReturn(['msg'=>'操作异常','status'=>-200]);

}

$obj_arr=['bydls','test','logstash'];

if(!in_array($obj,$obj_arr)){

$this->ajaxReturn(['msg'=>'类型错误','status'=>-200]);

}

$obj_url=[

'bydls'=>'bydls/autoData',

'test'=>'test/test',

'logstash'=>'logstash-'.date('Y.m.d').'/doc',

];

$obj_method=[

'1'=>'insert',

'2'=>'delete',

'3'=>'update',

];

switch ($type){

case 1:$url=$obj_url[$obj].'/'.$id;

$data=json_encode($data);

break;

case 2:$url=$obj_url[$obj].'/_delete_by_query';

$data=json_encode(['query'=>['match'=>['_id'=>$id]]]);

break;

case 3:$url=$obj_url[$obj].'/'.$id.'/_update?pretty';

$data=json_encode(['doc'=>$data]);

break;

}

elsearchPost($url, $data); //处理函数 祥见elasticsearch学习(二)----数据批量导入

$this->ajaxReturn(['msg'=>$obj_method[$type].'成功','status'=>200]);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值