コード例 #1
0
 public function testConnection()
 {
     $count = 0;
     $config = array('connectionStrategy' => function ($connections) use(&$count) {
         ++$count;
         return current($connections);
     });
     $client = new \Elastica\Client($config);
     $resonse = $client->request('/_aliases');
     $this->assertEquals(1, $count);
     $this->assertTrue($resonse->isOk());
     $strategy = $client->getConnectionStrategy();
     $condition = $strategy instanceof CallbackStrategy;
     $this->assertTrue($condition);
 }
コード例 #2
0
ファイル: ElasticaService.php プロジェクト: Quiss/Evrika
 public function findByAbbr($query, $size = 50)
 {
     if (!class_exists('\\Elastica\\Client')) {
         return false;
     }
     $query = $this->lingua->stem_string($query);
     $words = explode(' ', $query);
     $query = implode('* ', $words) . '*';
     $client = new \Elastica\Client();
     $index = $client->getIndex('evrika');
     $type = $index->getType('article');
     $elasticaQuery = array('query' => array('bool' => array('must' => array(array('query_string' => array('query' => $query, 'fields' => array('title'))), array('term' => array('type' => 'publication'))))), 'size' => $size, 'highlight' => array('fields' => array('title' => array('number_of_fragments' => 0))));
     $path = $index->getName() . '/' . $type->getName() . '/_search';
     $response = $client->request($path, \Elastica\Request::GET, $elasticaQuery);
     return $response->getData();
 }
コード例 #3
0
ファイル: ElasticaService.php プロジェクト: Evrika/Vidal
 public function query($type, $q)
 {
     $q = $this->linguaService->stem_string($q);
     $client = new \Elastica\Client();
     $index = $client->getIndex('website');
     $type = $index->getType($type);
     $query = array('query' => array('query_string' => array('query' => $q . '*', 'analyzer' => 'ru')));
     $path = $index->getName() . '/' . $type->getName() . '/_search';
     $response = $client->request($path, \Elastica\Request::GET, $query);
     $responseArray = $response->getData();
     $results = array();
     foreach ($responseArray['hits']['hits'] as $result) {
         $results[] = $result['_source'];
     }
     return $results;
 }