コード例 #1
0
ファイル: Cluster.php プロジェクト: NicolasSchmutz/cm
 /**
  * @param CM_Elasticsearch_Type_Abstract[] $types
  * @param array|null                       $data
  * @return array
  */
 public function query(array $types, array $data = null)
 {
     if (!$this->getEnabled()) {
         return array();
     }
     $this->getServiceManager()->getDebug()->incStats('search', json_encode($data));
     $client = $this->getRandomClient();
     $search = new Elastica\Search($client);
     foreach ($types as $type) {
         $search->addIndex($type->getIndex());
         $search->addType($type->getType());
     }
     try {
         $response = $client->request($search->getPath(), 'GET', $data);
     } catch (Elastica\Exception\ConnectionException $ex) {
         foreach ($client->getConnections() as $connection) {
             $connection->setEnabled();
         }
         throw $ex;
     }
     return $response->getData();
 }