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); }
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(); }
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; }