1,封装http方法

  1. private function http($url, $data = NULL, $json = false)
  2. {
  3. unset($res,$curl,$errorno);
  4. $curl = curl_init();
  5. curl_setopt($curl, CURLOPT_URL, $url);
  6. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  7. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  8. if (!empty($data)) {
  9. if ($json && is_array($data)) {
  10. $data = json_encode($data);
  11. }
  12.  
  13. curl_setopt($curl, CURLOPT_POST, 1);
  14.  
  15. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  16. if ($json) { //发送JSON数据
  17. curl_setopt($curl, CURLOPT_HEADER, 0);
  18. curl_setopt($curl, CURLOPT_HTTPHEADER,
  19. array(
  20. 'Content-Type: application/json; charset=utf-8', 'Content-Length:' . strlen($data))
  21. );
  22. }
  23. }
  24. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  25. $res = curl_exec($curl);
  26. $errorno = curl_errno($curl);
  27.  
  28. if ($errorno) {
  29. return array('errorno' => false, 'errmsg' => $errorno);
  30. }
  31. curl_close($curl);
  32. return json_decode($res, true);
  33. }

2.查询调用

  1. #索引
  2. $index_name = 'apt_result_md5';
  3. $ip = esip
  4. $port = 端口(9200
  5. # 查询条件
  6. $params['query']['bool']['must'][] = ['match'=>[$white_type=>$white_content]];
  7. $params['size'] = 1000;
  8.  
  9. $search = $this->http("http://".$ip:$port."/".$index_name."/_search",$params,true);

3.更新调用

  1. # $index_name/$type/$id 索引/类型/id
  2. $update['doc'][更新字段] = $arr;
  3. $updateRes = $this->http("http://" . $ip:$port . "/" . $index_name ."/" .$type. "/".$id. "/_update", $update, true);

4.批量操作

  1. /**
  2. * @param $id 需要修改的id
  3. * @param $arr 需要修改的内容
  4. */
  5. public function onposDelEs($id,$arr){
  6. try {
  7.  
  8. $update = array(
  9. 'update' => array(
  10. '_id' => $id,
  11. '_retry_on_conflict' => 3,
  12. ));
  13. $a .= json_encode($update) . "\n";
  14. $update = array(
  15. 'doc' => array(
  16. $white_type => $arr,
  17. )
  18. );
  19. $a .= json_encode($update) . "\n";
  20. }
  21. }
  22.  
  23. $updateRes = $this->http("http://" . $GLOBALS['CONFIG']['ES_HORSE']['DSN'] . ':' . $GLOBALS['CONFIG']['ES_HORSE']['PORT'] . "/" . $index_name . "/" . $type . "/_bulk", $a, false);
  24. if(!$updateRes){
  25. $this->ajaxReturn(array('code' => -1, 'msg' => 'update es 数据 失败'));
  26. }
  27. }
  28. }
  29. } catch (Exception $e) {
  30. $this->ajaxReturn(array('code' => -1, 'msg' => $e->getMessage()));
  31. }
  32. }

5.其他拓展
行为 解释

  1. create
  1. 当文档不存在时创建
  1. index
  1. 创建新文档或替换已有文档。
  1. update
  1. 局部更新文档。
  1. delete
  1. 删除一个文档。
  1. POST /_bulk
  2. { "delete": { "_index": "website", "_type": "blog", "_id": "123" }}
  3. { "create": { "_index": "website", "_type": "blog", "_id": "123" }}
  4. { "title": "My first blog post" }
  5. { "index": { "_index": "website", "_type": "blog" }}
  6. { "title": "My second blog post" }
  7. { "update": { "_index": "website", "_type": "blog", "_id": "123", "_retry_on_conflict" : 3} }
  8. { "doc" : {"title" : "My updated blog post"} }

es-curl 查询与更新的更多相关文章

  1. ES 复合查询

    ES在查询过程中比较多遇到符合查询,既需要多个字段过滤也需要特殊情况处理,本文简单介绍几种查询组合方便快捷查询ES. bool布尔查询有一个或者多个布尔子句组成     filter 只过滤符合条件的 ...

  2. es的查询、排序查询、分页查询、布尔查询、查询结果过滤、高亮查询、聚合函数、python操作es

    今日内容概要 es的查询 Elasticsearch之排序查询 Elasticsearch之分页查询 Elasticsearch之布尔查询 Elasticsearch之查询结果过滤 Elasticse ...

  3. 使用TSQL查询和更新 JSON 数据

    JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...

  4. 简单的php Mysql类(查询 删除 更新)

    php Mysql类一般都包括了几乎我们常用的数据库操作方法,这里只提供了查询 删除 更新三种操作,算不是很全只是一个简单的数据库查询类了.      代码如下 复制代码 class mysql { ...

  5. Sql Server Text 类型列 查询和更新

    Text(ntext.image)类型为大数据字段,因为存储方式不同,也决定了其查询和更新不同于一般方法. 1.表定义: 2.查询: Like查询是可用的: select * from dbo.nod ...

  6. MongoDB 的创建、查询、更新、删除

    MongoDB数据库中,创建.查询.更新.删除操作的对象是集合. 1.查看某个数据库中有哪些集合,在此之前需要使用数据库 C:\Windows\system32>mongo MongoDB sh ...

  7. java序列化对象 插入、查询、更新到数据库

    java序列化对象 插入.查询.更新到数据库 : 实现代码例如以下: import java.io.ByteArrayInputStream; import java.io.ByteArrayOutp ...

  8. 返璞归真 asp.net mvc (1) - 添加、查询、更新和删除的 Demo

    原文:返璞归真 asp.net mvc (1) - 添加.查询.更新和删除的 Demo [索引页] [源码下载] 返璞归真 asp.net mvc (1) - 添加.查询.更新和删除的 Demo 作者 ...

  9. Microsoft SQL - 查询与更新

    查询与更新(Query & Update) 转义引号 SQL语句中字符串只能使用单引号,如果需要转义,可用单引号转义单引号. 查询(Inquire) 以下公式中的c指代列名. 规则 1.查询语 ...

  10. 从零打造在线网盘系统之Hibernate查询与更新技术

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...

随机推荐

  1. Java-汉字繁体拼音转换

    import com.github.stuxuhai.jpinyin.ChineseHelper; import com.github.stuxuhai.jpinyin.PinyinFormat; i ...

  2. vim全局替换命令-乾颐堂

    语法为 :[addr]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符串/g [addr] 表示检索范围,省略时表示当前行. 如:“1,20” :表示从第1行到2 ...

  3. Ubuntu 安装QT5 后编译程序报错: FindQt5Widgets.cmake

    安装QT5.4后,需要编译一个C++程序. Cmakelist 有find_package(Qt5Widgets REQUIRED),cmake 报错如下: CMake Error at CMakeL ...

  4. ros console_bridge找不到

    Could not find a package configuration file provided by "console_bridge" with any of the f ...

  5. paho_c_pub 使用方法

    Latest Paho Status (2) 摘自:http://modelbasedtesting.co.uk/ I last wrote about the state of Paho in Oc ...

  6. javascript -window与document 待整理

    window对象和document对象的区别一般来讲,一个window里就是一个document,但是,iframe里面也可以装个document,在iframe里面就有区别了 alert(docum ...

  7. DapperExtensions 使用教程

    最近搭建一个框架,使用dapper来做数据库访问,数据是sql server2012,支持多个数据库.事务.orm.ado.net原生操作方式,非常方便. 使用dapper的原因网上有很多文章说明,这 ...

  8. Linux基础系统权限

    Linux基础系统权限 文件权限 Linux中,每个文件拥有三种权限 权限 对文件的影响 对目录的影响 r(读取) 可读取文件 可列出目录内容 w(写入) 可修改文件内容 可在目录中创建删除文件 x( ...

  9. hdu 4284 Travel(壮压DP&TSP&floyd)

    Travel Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  10. 第二章第一个项目——关于mime

    一句话就能解释清楚. MIME标注HTTP响应类型. 而后缀名标注文件类型. ---------分割线-------- http响应实质上只有数据,没有文件名. 举个例子吧. HTTP/1.1 200 ...