/**
  * 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*'));
 }
Example #2
0
 /**
  * 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;
         }
     }
 }