/** * 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; }