/**
  * @param string $dataset
  * @param string $query
  * @param string $sort
  * @param int $rows
  * @param int $start
  *
  * @return Response
  */
 public function searchAction($dataset, $query, $sort, $rows, $start)
 {
     $search = new Search($dataset);
     $search->setFilter($query)->setStart($start)->setSort($sort)->setRows($rows);
     $results = $this->search($search);
     return new Response(json_encode($results));
 }
 private function createQueryColumnFilterSearch($column, $value, $delimiter = ':')
 {
     $filter = sprintf('%s%s%s', $column, $delimiter, $value);
     $dataset = uniqid();
     $search = new Search($dataset);
     $search->setFilter($filter);
     $this->assertEquals($filter, $search->getFilter());
     $this->assertEquals($column, $search->getFilterColumn());
     $this->assertEquals($value, $search->getFilterValue());
 }
 /**
  * Look locally (parsers)
  *
  * @param Search $search
  *
  * @return array|false
  */
 private function searchDistant(Search $search)
 {
     $data = array();
     $result = $this->client->get('search', $search->getParameters());
     if ($result) {
         $result = json_decode($result, true);
         foreach ($result['records'] as $record) {
             $data[] = $record['fields'];
         }
     }
     return $data;
 }