Example #1
0
 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;
 }