/** * ищет документы с соответствием со строкой переданной в $_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; } } }
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); } } }
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); } }