コード例 #1
0
 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);
 }
コード例 #2
0
 /**
  * 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;
 }