Ejemplo n.º 1
0
 /**
  * Transform entry to a subquery
  *
  * @param string $encoding
  * @return Zend_Search_Lucene_Search_Query
  */
 public function getQuery($encoding)
 {
     $this->_query->setBoost($this->_boost);
     return $this->_query;
 }
 /**
  * Adds a query.
  *
  * @param Zend_Search_Lucene_Search_Query $q
  */
 private function add(Zend_Search_Lucene_Search_Query $q)
 {
     $autoClose = false;
     // apply modifiers
     foreach ($this->modifiers as $type => $value) {
         switch ($type) {
             case self::M_BOOST:
                 $q->setBoost($value);
                 break;
             case self::M_REQUIREMENT:
                 $q = new Zend_Search_Lucene_Search_Query_Boolean(array($q), array($value));
                 $autoClose = true;
                 break;
         }
     }
     $this->modifiers = array();
     // determine how to add the query
     if ($this->master === null) {
         $this->master = $q;
     } else {
         $c = count($this->queries);
         if ($c == 0) {
             throw new xfLuceneException('Cannot add a query to a ' . get_class($this->master) . ' query, likely a mismatch in creating a boolean query');
         }
         $this->queries[count($this->queries) - 1]->addSubquery($q);
     }
     if (!$autoClose && $q instanceof Zend_Search_Lucene_Search_Query_Boolean) {
         $this->queries[] = $q;
     }
 }