Пример #1
0
 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);
 }
Пример #2
0
 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);
 }
Пример #3
0
 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));
 }