public function buildusers($users = null) { ini_set('memory_limit', '1000M'); set_time_limit(0); Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive()); /** * Create index */ if (isset($users)) { $index = Search_MyLucene::open($this->_indexPath); } else { $index = Search_MyLucene::create($this->_indexPath); /** * Get all users */ $sql = $this->_db->select()->from('freniz', array('userid', 'username', 'type', 'user_url' => 'url'))->joinLeft('user_info', 'freniz.userid=user_info.userid', array('school', 'college', 'employer', 'hometown', 'currentcity', 'mood', 'skills'))->joinLeft('friends_vote', 'friends_vote.userid=freniz.userid', array('friends' => 'friendlist', 'user_vote' => 'vote'))->joinLeft('image', 'image.imageid=user_info.propic', array('propic_url' => 'url'))->joinLeft('pages', 'pages.pageid=freniz.userid', array('page_vote' => 'vote', 'category', 'subcategory', 'bids'))->joinLeft('image', 'image.imageid=pages.pagepic', array('pagepic_url' => 'url'))->where("freniz.userid!='default'"); $users = $this->_db->fetchAssoc($sql); //$this->view->results=$users; } /** * Create a document for each user and add it to the index */ foreach ($users as $user) { $doc = new Zend_Search_Lucene_Document(); /** * Fill document with data */ if ($user['type'] == 'user') { $index->addDocument($this->insertUserDocument($user, $doc)); } else { if ($user['type'] == 'page') { $index->addDocument($this->insertPageDocument($user, $doc)); } } /** * Add document */ } $index->optimize(); $index->commit(); }
public function getskillsAction() { $skills = $this->getRequest()->getParam('skills'); //$this->view->result=$post; /** * Open index */ $index = Search_MyLucene::open($this->_userindexPath); //$term=new Zend_search_lucene_i Zend_Search_Lucene_Search_Query_Wildcard::setMinPrefixLength(0); //$query = 'name:' . $post['name']; $query = 'skills:' . $skills . '*'; $results = $index->find($query); $matches = array(); foreach ($results as $values) { $string = explode(' ', $values->skills); foreach ($string as $str) { if (stripos($str, $skills) === 0) { array_push($matches, strtolower($str)); } } } $matches = array_unique($matches); $this->view->result = $matches; }