博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式搜索引擎Elasticsearch PHP类封装 使用原生api
阅读量:6676 次
发布时间:2019-06-25

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

  1. //官方的 php  api写的鸡肋了,下面这个类可以使用 es api 操作.  
[php] 
 
  1. <?php  
  2.     
  3. class ElasticSearch {  
  4.   public $index;  
  5.    
  6.   function __construct($server = 'http://localhost:9200'){  
  7.     $this->server = $server;  
  8.   }  
  9.    
  10.   function call($path, $http = array()){  
  11.     if (!$this->index) throw new Exception('$this->index needs a value');  
  12.     return json_decode(file_get_contents($this->server . '/' . $this->index . '/' . $path, NULL, stream_context_create(array('http' => $http))));  
  13.   }  
  14.    
  15.   //curl -X PUT http://localhost:9200/{INDEX}/  
  16.   function create(){  
  17.      $this->call(NULL, array('method' => 'PUT'));  
  18.   }  
  19.    
  20.   //curl -X DELETE http://localhost:9200/{INDEX}/  
  21.   function drop(){  
  22.      $this->call(NULL, array('method' => 'DELETE'));  
  23.   }  
  24.    
  25.   //curl -X GET http://localhost:9200/{INDEX}/_status  
  26.   function status(){  
  27.     return $this->call('_status');  
  28.   }  
  29.    
  30.   //curl -X GET http://localhost:9200/{INDEX}/{TYPE}/_count -d {matchAll:{}}  
  31.   function count($type){  
  32.     return $this->call($type . '/_count', array('method' => 'GET', 'content' => '{ matchAll:{} }'));  
  33.   }  
  34.    
  35.   //curl -X PUT http://localhost:9200/{INDEX}/{TYPE}/_mapping -d ...  
  36.   function map($type, $data){  
  37.     return $this->call($type . '/_mapping', array('method' => 'PUT', 'content' => $data));  
  38.   }  
  39.    
  40.   //curl -X PUT http://localhost:9200/{INDEX}/{TYPE}/{ID} -d ...  
  41.   function add($type, $id, $data){  
  42.     return $this->call($type . '/' . $id, array('method' => 'PUT', 'content' => $data));  
  43.   }  
  44.    
  45.   //curl -X GET http://localhost:9200/{INDEX}/{TYPE}/_search?q= ...  
  46.   function query($type, $q){  
  47.     return $this->call($type . '/_search?' . http_build_query(array('q' => $q)));  
  48.   }  
  49. }  

转载于:https://www.cnblogs.com/zhangchenliang/p/4206284.html

你可能感兴趣的文章
2016校招内推 -- 阿里巴巴前端 -- 四面面试经历
查看>>
SQL Server里的INTERSECT ALL
查看>>
【Xamarin开发 Android 系列 6】 Android 结构基础(上)
查看>>
PowerDesigner反projectM连接ySql没有mySql odbc驱动器
查看>>
【Xamarin开发 Android 系列 13】 应用打包部署
查看>>
flask前后台交互数据的几个思路
查看>>
HDOJ 5188 zhx and contest 贪婪+01背包
查看>>
Git介绍和基本原理
查看>>
Activity生命周期回顾
查看>>
Rust初步(五):Rust与C#性能比较
查看>>
1、CC2541蓝牙4.0芯片中级教程——基于OSAL操作系统的运行流程了解+定时器和串口例程了解...
查看>>
What exactly is the difference between WndProc and DefaultWndProc?
查看>>
创建加密应用程序
查看>>
NYOJ 24 素数的距离问题
查看>>
Jsoup解析Html中文文档
查看>>
学习一样新东西行而有效的方法 学习捷径 一项由10个步骤组成的学习方法
查看>>
Spotlight实时监控Windows Server 2008
查看>>
linux shell “(())” 双括号运算符使用
查看>>
http://code.662p.com/view/5141.html
查看>>
C C++ OC指针常量和常量指针区别
查看>>