public function executeQuery(ESphinxQuery $query) { $cb = $this->db->getCommandBuilder(); $command = $cb->createFindCommand($query->getIndexes(), $this->createDbCriteria($query)); $meta = $this->createMeta($command); return new ESphinxResult($meta); }
/** * Execute query collection * * @example * <code> * $queries = array( * new ESphinxQuery("hello"), * new ESphinxQuery("world"), * ); * $results = $connection->executeQueries($queries); * foreach($results as $result) * var_dump($result); // print ESphinxResult * </code> * @param ESphinxQuery[] $queries * @return ESphinxResult[] */ public function executeQueries(array $queries) { /** @var ESphinxQlCommandBuilder $cb */ $cb = $this->db->getCommandBuilder(); // prepearing $tables = array(); $criterias = array(); foreach ($queries as $query) { $tables[] = $query->getIndexes(); $criterias[] = $this->createDbCriteria($query); } // querying all queries $command = $cb->createMultiFindCommand($tables, $criterias); $reader = $command->query(); // processing result $result = array(); foreach ($queries as $_query) { $matches = $reader->readAll(); $reader->nextResult(); $metaInfo = $reader->readAll(); $reader->nextResult(); $result[] = $this->createResult($matches, $metaInfo); } return $result; }