Commit af5d03c03bc25adca447d8b7f624b86eacea0034

Authored by conradverm
1 parent 75750751

KTS-3163

"Wildcard search on metadata inconsistent with full text content search"
Fixed.

Committed By: Conrad Vermeulen
Reviewed By: Megan Watson

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@8260 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 18 additions and 15 deletions
search2/search/expr.inc.php
@@ -591,22 +591,25 @@ class ValueExpr extends Expr @@ -591,22 +591,25 @@ class ValueExpr extends Expr
591 public function getSQL($field, $fieldname, $op, $not=false) 591 public function getSQL($field, $fieldname, $op, $not=false)
592 { 592 {
593 $val = $this->getValue(); 593 $val = $this->getValue();
594 - switch($op)  
595 - {  
596 - case ExprOp::LIKE:  
597 -  
598 - break;  
599 - case ExprOp::CONTAINS:  
600 - $val = "%$val%";  
601 - break;  
602 - case ExprOp::STARTS_WITH:  
603 - $val = "$val%";  
604 - break;  
605 - case ExprOp::ENDS_WITH:  
606 - $val = "%$val";  
607 - break;  
608 - } 594 + if (strpos($val, '*') !== false || strpos($val, '?') !== false)
  595 + {
  596 + $val = str_replace(array('?','*'), array('%','%'), $val);
  597 + }
609 598
  599 + switch($op)
  600 + {
  601 + case ExprOp::LIKE:
  602 + break;
  603 + case ExprOp::CONTAINS:
  604 + $val = "%$val%";
  605 + break;
  606 + case ExprOp::STARTS_WITH:
  607 + $val = "$val%";
  608 + break;
  609 + case ExprOp::ENDS_WITH:
  610 + $val = "%$val";
  611 + break;
  612 + }
610 613
611 $val = $field->modifyValue($val); 614 $val = $field->modifyValue($val);
612 $quote = ''; 615 $quote = '';