Zend_Search_Lucene is bad with numbers

I have a small site I have built using Doctrine and the Zend Framework. the Lucene search within the Zend Framework works great for me, except when the search terms have numbers in them. It hits the max execution time every time. But if I search with just text, it returns immediately.

Any ideas on how I can extend the search to be as efficient with numbers as it is letters/words?
class Search {
 
    const INDEX_DIR = '../search/data/';
 
    private $_index;
 
    static public function createIndex() {
        Zend_Search_Lucene::create( realpath( self::INDEX_DIR ) );
    }
 
    public function __construct() {
        try {
            $dir = realpath( self::INDEX_DIR );
            $this->_index = Zend_Search_Lucene::open( $dir );
            $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive( );
            $analyzer->addFilter( new Search_PorterStemmerFilter( ) );
            Zend_Search_Lucene_Analysis_Analyzer::setDefault( $analyzer );
        } catch (Exception $e) {
            self::createIndex();
            $this->__construct();
        }
    }
 
    public function find( $query ) {
        return $this->_index->find( $query );
    }
}
////////////////////////////////
////////////////////////////////
class SearchController extends Zend_Controller_Action {
      $term = $this->_getParam('q');
      $this->view->assign( 'term', ucwords( strtolower( $term ) ) );      
      
      $searcher = new Search( );
      if ( !empty( $term ) ) {
         
         $searchTerm = new SearchTerm( );
         $searchTerm->query = $term;
         if(array_key_exists('HTTP_REFERER', $_SERVER)) {
            $searchTerm->referrer = $_SERVER['HTTP_REFERER'];
         }
         
         $term = str_ireplace(array('bar','club'), '', $term);
         $term = trim($term);
         //$term .= '~.5';
         
         Zend_Search_Lucene::setResultSetLimit( 15 );
         
         $results = $searcher->find( '*' . $term . '*' );
         
         $this->view->assign( 'results', $results );
         
      
      }
      
   }

Open in new window

hallikpapaAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
RoonaanConnect With a Mentor Commented:
You mean adding wildcards for numbers, or is it ok to only use them for non-numeric terms?
0
 
RoonaanCommented:
How do numeric searches perform when you leave out the asterixes?
0
 
hallikpapaAuthor Commented:
It seems to work better, but I need some sort of wildcard operation in there. Any suggestions?
0
 
hallikpapaAuthor Commented:
I am going to just upgrade to the newest version and see if this resolves the problem.
0
All Courses

From novice to tech pro — start learning today.