Example #1
0
 /**
  * Re-write queries into primitive queries
  * Also used for query optimization and binding to the index
  *
  * @param Zend_Search_Lucene $index
  * @return Zend_Search_Lucene_Search_Query
  */
 public function rewrite(Zend_Search_Lucene $index)
 {
     if ($this->_term->field != null) {
         return $this;
     } else {
         $query = new Zend_Search_Lucene_Search_Query_MultiTerm();
         $query->setBoost($this->getBoost());
         foreach ($index->getFieldNames(true) as $fieldName) {
             $term = new Zend_Search_Lucene_Index_Term($this->_term->text, $fieldName);
             $query->addTerm($term);
         }
         return $query->rewrite($index);
     }
 }
 /**
  * Re-write queries into primitive queries
  * Also used for query optimization and binding to the index
  *
  * @param Zend_Search_Lucene $index
  * @return Zend_Search_Lucene_Search_Query
  */
 public function rewrite(Zend_Search_Lucene $index)
 {
     if (count($this->_terms) == 0) {
         return new Zend_Search_Lucene_Search_Query_Empty();
     } else {
         if ($this->_terms[0]->field !== null) {
             return $this;
         } else {
             $query = new Zend_Search_Lucene_Search_Query_Boolean();
             $query->setBoost($this->getBoost());
             foreach ($index->getFieldNames(true) as $fieldName) {
                 $subquery = new Zend_Search_Lucene_Search_Query_Phrase();
                 $subquery->setSlop($this->getSlop());
                 foreach ($this->_terms as $termId => $term) {
                     $qualifiedTerm = new Zend_Search_Lucene_Index_Term($term->text, $fieldName);
                     $subquery->addTerm($qualifiedTerm, $this->_offsets[$termId]);
                 }
                 $query->addSubquery($subquery);
             }
             return $query;
         }
     }
 }