分布式搜尋引擎Elasticsearch PHP類封裝 使用原生api

來源:互聯網
上載者:User

標籤:

  1. //官方的 php  api寫的雞肋了,下面這個類可以使用 es api 操作.  
[php] view plaincopyprint? 
  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. }  

分布式搜尋引擎Elasticsearch PHP類封裝 使用原生api

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.