/** * Generate 'signs style' query from the context * '+term1 term2 -term3 +(<subquery1>) ...' * * @return \ZendSearch\Lucene\Search\Query\AbstractQuery */ public function _signStyleExpressionQuery() { $query = new Query\Boolean(); if (QueryParser::getDefaultOperator() == QueryParser::B_AND) { $defaultSign = true; // required } else { $defaultSign = null; // optional } foreach ($this->_entries as $entryId => $entry) { $sign = $this->_signs[$entryId] !== null ? $this->_signs[$entryId] : $defaultSign; $query->addSubquery($entry->getQuery($this->_encoding), $sign); } return $query; }
/** * default (omitted) + NOT operator processing */ public function emptyNotOperatorAction() { if (QueryParser::getDefaultOperator() == QueryParser::B_AND) { // Do nothing } else { $this->orOperatorAction(); } // Process NOT operator $this->notOperatorAction(); }