Commit af5d03c03bc25adca447d8b7f624b86eacea0034
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 = ''; |