public function search() { $terms = $this->request->getValidated('terms', 'string', ''); $index_status = $this->client->getStatus(); $search_result = $this->client->searchDocuments($terms); $presenter = new FullTextSearch_Presenter_Search($index_status, $terms, $search_result); $this->renderWithHeaderAndFooter($presenter); }
public function search() { $terms = $this->request->getValidated('words', 'string', ''); $facets = $this->getFacets(); $offset = $this->request->getValidated('offset', 'uint', 0); try { $search_result = $this->client->searchDocuments($terms, $facets, $offset, $this->request->getCurrentUser()); if ($this->request->isAjax()) { $presenter = new FullTextSearch_Presenter_SearchOnlyResults($search_result); } else { $presenter = $this->getSearchPresenter($terms, $search_result); } } catch (ElasticSearchTransportHTTPException $e) { $presenter = new FullTextSearch_Presenter_ErrorNoSearch($e->getMessage()); } $this->render($presenter->template, $presenter); }
public function siteSearch(array $params) { $query = $params['query']; $terms = $query->getWords(); $facets = $this->getFacets(); $offset = $query->getOffset(); try { $search_result = $this->client->searchDocuments($terms, $facets, $offset, $this->request->getCurrentUser(), $query->getNumberOfResults()); $results_count = $search_result->count(); $maybe_more_results = $results_count < $query->getNumberOfResults() ? false : true; if ($offset > 0) { $results_presenter = new FullTextSearch_Presenter_SearchMore($search_result); } else { $results_presenter = new FullTextSearch_Presenter_Search($search_result, $maybe_more_results, $terms, $this->getDocumentSearchTypes($facets)); } $params['results']->setHasMore($maybe_more_results)->setCountResults($results_count); } catch (ElasticSearchTransportHTTPException $e) { $results_presenter = new FullTextSearch_Presenter_ErrorNoSearch($e->getMessage()); $params['results']->setHasMore(false)->setCountResults(0); } $params['results']->setResultsHtml($this->renderToString($results_presenter->template, $results_presenter)); }