/** * Test custom munge rules. * * @return void */ public function testCustomMunge() { // fake munge rules based on a simplified version of default searchspecs.yaml $spec = ['CustomMunge' => ['callnumber_exact' => [['uppercase'], ['preg_replace', '/[ "]/', ""], ['preg_replace', '/\\*+$/', ""]], 'callnumber_fuzzy' => [['uppercase'], ['preg_replace', '/[ "]/', ""], ['preg_replace', '/\\*+$/', ""], ['append', '*']]], 'QueryFields' => ['callnumber' => [['callnumber_exact', 1000], ['callnumber_fuzzy', '~']], 'dewey-full' => [['callnumber_exact', 1000], ['callnumber_fuzzy', '~']]]]; $hndl = new SearchHandler($spec); $this->assertEquals('(callnumber:(ABC123)^1000 OR callnumber:(ABC123*) OR dewey-full:(ABC123)^1000 OR dewey-full:(ABC123*))', $hndl->createSimpleQueryString('abc"123*')); }
/** * Return search string based on input and handler. * * @param string $string Input search string * @param SearchHandler $handler Search handler * * @return string */ protected function createSearchString($string, SearchHandler $handler = null) { $advanced = $this->getLuceneHelper()->containsAdvancedLuceneSyntax($string); if ($advanced && $handler) { return $handler->createAdvancedQueryString($string); } else { if ($handler) { return $handler->createSimpleQueryString($string); } else { return $string; } } }