/** * @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; } }