예제 #1
0
 /**
  * @param \Zend_Search_Lucene_Search_Query $po_original_subquery
  * @param FieldTypes\FieldType $po_fld
  * @param \Zend_Search_Lucene_Index_Term $po_term
  * @return \Zend_Search_Lucene_Search_Query
  */
 protected function getSubqueryWithAdditionalTerms($po_original_subquery, $po_fld, $po_term)
 {
     if (($va_additional_terms = $po_fld->getAdditionalTerms($po_term)) && is_array($va_additional_terms)) {
         // we cant use the index terms as is; have to construct term queries
         $va_additional_term_queries = $va_signs = array();
         if ($po_original_subquery) {
             $va_additional_term_queries[] = $po_original_subquery;
         }
         foreach ($va_additional_terms as $o_additional_term) {
             $va_additional_term_queries[] = new \Zend_Search_Lucene_Search_Query_Term($o_additional_term);
             $va_signs[] = true;
         }
         return new \Zend_Search_Lucene_Search_Query_Boolean($va_additional_term_queries, $va_signs);
     } else {
         return $po_original_subquery;
     }
 }