博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
es笔记记录php的curd
阅读量:6985 次
发布时间:2019-06-27

本文共 10011 字,大约阅读时间需要 33 分钟。

 

es笔记记录php的curd

 

1 
init() ; 39 return self::$esObj ; 40 } 41 42 43 44 45 46 47 /** 48 * 功能:初始化参数 49 */ 50 public function init(){ 51 self::$esObj->host = 'localhost' ; 52 self::$esObj->db = 'job1002' ; 53 self::$esObj->table = 'cmailbox' ; 54 self::$esObj->post = '9200' ; 55 self::$esObj->queryJson = '{}'; 56 self::$esObj->setUrl() ; 57 self::$esObj->method = 'GET' ; 58 } 59 60 61 62 63 64 65 /** 66 * 功能:设置主机 67 */ 68 private function setHost($host){ 69 self::$esObj->host = $host ; 70 return self::$esObj ; 71 } 72 73 74 75 76 77 78 /** 79 * 功能:设置端口 80 */ 81 public function setPost($post){ 82 self::$esObj->post = $post ; 83 return self::$esObj ; 84 } 85 86 87 88 89 90 /** 91 * 功能:设置数据库 92 */ 93 public function setDB($dbname){ 94 self::$esObj->db = $dbname ; 95 return self::$esObj ; 96 } 97 98 99 100 101 102 103 /**104 * 功能:设置表105 */106 public function setTable($table){107 self::$esObj->table = $table ;108 return self::$esObj ;109 }110 111 112 113 114 115 116 /**117 * 设置id118 * 如果没有设置id,则119 * 自动随机18位id120 */121 public function setId($id=''){122 !empty($id) && self::$esObj->id = $id ;123 empty($id) && self::$esObj->id = time() . mt_rand(10000,99999) ;124 return self::$esObj ;125 }126 127 128 129 130 131 132 /**133 * 功能:设置后缀参数134 */135 public function setSubFix($subfix){136 self::$esObj->subfix = $subfix ;137 return self::$esObj ;138 }139 140 141 142 143 144 145 /**146 * 功能:对置入的参数进行转义json147 */148 public function setInArray($queryArray){149 !empty($queryArray) && self::$esObj->queryArray = $queryArray ;150 !empty($queryArray) && self::$esObj->makeEsJsonFromArray() ;151 return self::$esObj ;152 }153 154 155 156 /**157 * 功能:设置curl执行的url158 */159 public function setUrl(){ 160 isset(self::$esObj->id) || self::$esObj->setId() ;161 self::$esObj->esurl = self::$esObj->host . '/' .162 self::$esObj->db . '/' . self::$esObj->table .'/' .163 self::$esObj->id . self::$esObj->subfix ;164 return self::$esObj ;165 }166 167 168 169 /**170 * 功能:设置执行方式POST,PUT...171 */172 public function setMethod($method){173 self::$esObj->method = $method ; 174 return self::$esObj ;175 }176 177 178 179 180 /**181 * 功能:设置转义数组为json182 */183 public function makeEsJsonFromArray(){184 if(empty(self::$esObj->queryArray)) return self::$esObj ;185 empty(self::$esObj->queryArray) && self::$esObj->queryJson = '{}';186 !empty(self::$esObj->queryArray) && self::$esObj->queryJson = json_encode(self::$esObj->queryArray);187 return self::$esObj ;188 }189 190 191 192 193 /*----[CURD start]----*/194 /**195 * 功能:设置建立数据196 */197 public function createData(){198 self::$esObj->setUrl(); 199 self::$esObj->method = self::$esObj->method == 'PUT' ?200 'PUT' : self::$esObj->method ;201 return self::$esObj->curlToEs();202 }203 204 205 206 /**207 * 功能:设置更新数据208 */209 public function updateData(){210 self::$esObj->setUrl(); 211 self::$esObj->method = self::$esObj->method == 'POST' ?212 'POST' : self::$esObj->method ;213 return self::$esObj->curlToEs() ;214 }215 216 217 218 /**219 * 功能:设置读取数据220 */221 public function readData(){222 isset(self::$esObj->id) || 223 self::$esObj->setId('_search') ;224 self::$esObj->setUrl();225 self::$esObj->method = 'GET' ;226 return self::$esObj->curlToEs() ;227 }228 229 230 231 /**232 * 功能:设置删除数据233 */234 public function deleteData(){235 self::$esObj->method = 'DELETE' ;236 self::$esObj->setUrl() ;237 return self::$esObj->curlToEs() ;238 }239 /*----[CURD end]----*/240 241 242 243 244 /**245 * 功能:获取集群信息246 */247 public function getEsInfo($info=''){248 empty($info) && $info = '/_cluster/nodes' ;249 self::$esObj->id = $info ;250 self::$esObj->setUrl() ;251 return self::$esObj->curlToEs() ;252 }253 254 255 256 257 /**258 * 功能:获取mapping信息 259 */260 public function getMapping(){261 return self::$esObj262 ->setId('_mapping')263 ->readData();264 }265 266 267 268 /**269 * 功能:es执行270 * 返回:es返回数据271 * 20140214272 */273 public function curlToEs(){274 $ch = curl_init();275 curl_setopt($ch, CURLOPT_URL, self::$esObj->esurl) ;276 self::$esObj->post ? curl_setopt($ch, CURLOPT_PORT, self::$esObj->post) : 277 curl_setopt($ch, CURLOPT_PORT, 9200) ;278 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;279 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, strtoupper(self::$esObj->method));280 curl_setopt($ch, CURLOPT_POSTFIELDS, self::$esObj->queryJson);281 $result = curl_exec($ch) ;282 curl_close($ch) ;283 return json_decode($result) ;284 }285 286 287 288 289 290 /**291 * 功能:gbk转utf8292 * 特征:最多支持2维数组 293 * 20140214294 */295 public static function gbkToUtf8($inParam='',&$outResult=array()){296 if(is_array($inParam)){297 foreach($inParam as $key=>$param){298 if(is_array($param)){299 foreach($param as $ke=>$p){300 $inParam[$key][$ke] = iconv('gbk','utf-8',$p) ;301 } 302 }else{303 $inParam[$key] = iconv('gbk','utf-8',$param) ;304 } 305 }306 }else{307 $inParam = iconv('gbk','utf-8',$inParam) ;308 }309 $outResult = $inParam ;310 }311 312 313 314 315 316 /**317 * 功能:设置出错提示318 */319 public function error($flag = 1){
//参数必须为整型320 empty($flag) || $flag = 1 ;321 $errors = array(//后期移出,并做可配置322 1=>'参数为空错误!',323 11=>'查询语法错误',324 21=>'结果返回错误',325 );326 foreach ($errors as $key => $error) {327 if($flag === $key)328 return $error;329 }330 }331 332 333 334 }335 336 ?>

 

代码有待完善。

 

1 
'192.168.66.66', 11 'user'=>'wenzl', 12 'passwd'=>'1o2kkasdfr', 13 'dbname'=>'fuckme' 14 ); 15 16 17 18 19 20 $dbObj = new db($dbconfig); 21 22 23 24 /* 25 for ($i=0; $i < 5000; $i++) { 26 $size = 1000; 27 $j = $i*$size; 28 $r = $dbObj->fields("*")->table("company")->limit("{$j},{$size}")->lookDatas(); 29 $rs = array(); 30 es::gbkToUtf8($r,&$rs); 31 es::_app() 32 ->setDB('fuckanything') 33 ->setTable('company') 34 ->setInArray($rs) 35 ->createData(); 36 usleep(5000); 37 } 38 */ 39 40 41 $rs = array(); 42 $r = $dbObj->fields("*")->table("company")->limit("10")->lookDatas(); 43 es::gbkToUtf8($r,&$rs); 44 echo "
"; 45         //print_r($rs); 46         /* 47         foreach ($rs as $key => $val) { 48                     es::_app() 49                     ->setDB('fuckanything') 50                     ->setTable('company') 51                     ->setInArray($val) 52                     ->createData(); 53                 } 54         */ 55  56         //print_r(es::_app()->setDB('')->setTable('')->getEsInfo('/_nodes/stats')); 57  58  59         print_r( 60         es::_app() 61         ->setDB('fuckanything') 62         ->setTable('company') 63         ->setId('_mapping') 64         ->readData() 65         ); 66  67  68  69  70  71  72  73     /* 74  75     $s = array( 76         'query'=>array( 77             'match'=>array('cname'=>'建筑') 78         ) 79     ); 80  81     $index = array( 82             'settings'=>array( 83                     'index'=>array( 84                             'number_of_shards'=>10 85                         ) 86                 ) 87         ); 88  89     $data = array(); 90      91      92     $es = es::_app() 93     ->setDB('job1004') 94     ->setTable('school') 95     ->setInArray($index) 96     ->createData(); 97      98     $esObj = es::_app() 99     ->setDB('job1002')100     ->setTable('cmailbox')101     ->setId('_search');102     //$esRs = $esObj->setInArray($d)->createData();103     //$esRs = $esObj->deleteData();104     $esRs = $esObj->setInArray($s)->readData();105     echo "
";106     print_r($esRs);107     echo "
";108 109 */110 111 112 ?>

 

 

用例测试,有待完善。

转载于:https://www.cnblogs.com/wenzhilin/p/3550363.html

你可能感兴趣的文章
【leetcode】Maximum Gap(hard)★
查看>>
Visual Studio中的lib的链接顺序
查看>>
Cacti安装详细步骤
查看>>
android自定义radiobutton样式文字颜色随选中状态而改变
查看>>
【CodeForces 604B】F - 一般水的题1-More Cowbe
查看>>
eclipse调试java程序的九个技巧
查看>>
用JS获取地址栏参数的方法
查看>>
巴特沃斯(Butterworth)滤波器 (2) - 双线性变换
查看>>
iOS 小知识点(持续更新)
查看>>
iOS人脸识别(CoreImage)
查看>>
java.net.SocketException: Software caused connection abort: socket write error
查看>>
MySQL 随机取数据效率问题
查看>>
ArcGIS for Desktop入门教程_第八章_Desktop学习资源 - ArcGIS知乎-新一代ArcGIS问答社区...
查看>>
根据id查询数据(向前台返回json格式的数据)
查看>>
JMeter中3种参数值的传递
查看>>
hive操作语句使用详解
查看>>
根据指定类型计算两个日期相差的时间
查看>>
【转】【Linux】linux awk命令详解
查看>>
EasyUI ---- draggable购物车
查看>>
Jdom读取XML文件
查看>>