Exemplo n.º 1
0
 /**
  * Search method.
  *
  * @return Elastica_ResultSet
  */
 public function search()
 {
     $index = $this->index;
     // build search query
     $query = new \Elastica_Query();
     $query->setQuery($this->getQuery());
     $query->addFacet($this->getFacet('class'));
     $query->addFacet($this->getFacet('family'));
     $query->addFacet($this->getFacet('town'));
     $query->addFacet($this->getFacet('canton'));
     $query->addFacet($this->getFacet('user'));
     $query->addFacet($this->getFacet('habitat'));
     $query->addFacet($this->getFacet('redlist'));
     $query->addFacet($this->getFacet('image_type'));
     $query->setSize(100);
     // sorting
     if (count($this->sort) > 0) {
         $query->setSort($this->sort);
     }
     // add filter to query
     $filter = $this->getFilter();
     if (count($filter->getParams()) > 0) {
         $query->setFilter($filter);
     }
     $result = $this->getType()->search($query);
     return $result;
 }