コード例 #1
0
 /**
  * ищет документы с соответствием со строкой переданной в $_POST['searchstring']
  */
 public function indexAction()
 {
     // форма поиска
     $form = new Application_Form_Search();
     $this->view->searchForm = $form;
     // если есть post-данные и они валидны
     if ($this->getRequest()->isPost()) {
         $request = $this->getRequest();
         if ($form->isValid($request->getPost())) {
             // получаем строку для поиска
             $values = $form->getValues();
             $searchString = $values['searchstring'];
             // ищем
             $search = new Application_Model_Search();
             $hits = $search->search($searchString);
             // отправляем в вид строку поиска и результат
             $this->view->searchString = $searchString;
             $this->view->searchResult = $hits;
         }
     }
 }
コード例 #2
0
ファイル: NewappController.php プロジェクト: sk16/jobPortal
 public function searchAction()
 {
     $form = new Application_Form_Search();
     $this->view->form = $form;
     $form->submit->setLabel('search jobs');
     $currentPermissions = Zend_Search_Lucene_Storage_Directory_Filesystem::getDefaultFilePermissions();
     echo $currentPermissions;
     if ($this->getRequest()->isPost()) {
         $formData = $this->getRequest()->getPost();
         if ($form->isValid($_POST)) {
             $query = $form->getValue('query');
             $index = Zend_Search_Lucene::open('C:\\indexed');
             $hits = $index->find($query);
             $this->view->jobs = $hits;
             // foreach ($hits as $hit) {
             //echo $hit->pri;
             //echo $hit->shortd;
             //}
         } else {
             $form->populate($formData);
         }
     }
 }
コード例 #3
0
ファイル: Search.php プロジェクト: PavloKovalov/seotoaster
 private function _searchResultsByTerm($searchTerm)
 {
     $searchForm = new Application_Form_Search();
     if ($searchForm->getElement('search')->isValid($searchTerm)) {
         $searchTerm = $searchForm->getElement('search')->getValue();
         $this->_view->pagerData = array('search' => $searchTerm);
         if (mb_strpos($searchTerm, ' ') === false) {
             $searchTerm = trim($searchTerm, '*') . '*';
         }
         if (null === ($searchResults = $this->_cache->load($searchTerm, strtolower(__CLASS__)))) {
             $toasterSearchIndex = Tools_Search_Tools::initIndex();
             $toasterSearchIndex->setResultSetLimit(self::SEARCH_LIMIT_RESULT * 10);
             $pattern = new Zend_Search_Lucene_Index_Term($searchTerm);
             $searchTerm = new Zend_Search_Lucene_Search_Query_Wildcard($pattern);
             $hits = $toasterSearchIndex->find($searchTerm);
             $cacheTags = array('search_' . $searchTerm);
             $searchResults = array_map(function ($hit) use(&$cacheTags) {
                 array_push($cacheTags, 'pageid_' . $hit->pageId);
                 try {
                     // checking if page is in drafts
                     $draft = (bool) $hit->draft;
                 } catch (Zend_Search_Lucene_Exception $e) {
                     // seems we are on old release
                     $draft = false;
                 }
                 if (!$draft) {
                     return array('pageId' => $hit->pageId, 'url' => $hit->url, 'h1' => $hit->h1, 'navName' => $hit->navName, 'teaserText' => $hit->teaserText);
                 }
             }, $hits);
             $searchResults = array_filter($searchResults);
             array_merge($this->_cacheTags, $cacheTags);
             $this->_cache->save($searchTerm, $searchResults, strtolower(__CLASS__), $this->_cacheTags, Helpers_Action_Cache::CACHE_LONG);
         }
         return $searchResults;
     } else {
         $msg = $searchForm->getElement('search')->getMessages();
         $error = $this->_translator->translate('Search error. ' . implode(PHP_EOL, $msg));
         throw new Exceptions_SeotoasterWidgetException($error);
     }
 }