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 | 591 | public function getSQL($field, $fieldname, $op, $not=false) |
| 592 | 592 | { |
| 593 | 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 | 614 | $val = $field->modifyValue($val); |
| 612 | 615 | $quote = ''; | ... | ... |