PartialMatchFilter问题

时间:2014-06-10 03:57:09

标签: php silverstripe

网站上有一个搜索页面,因此网站访问者可以按城市或/和名称搜索内容。因此,城市是一个下拉过滤器,名称搜索是PartialMatchFilter文本字段。

PartialMatchFilter可正常搜索名称的一部分,例如Tim或Smith,然后Tim Glen Smith出现。我遇到的问题是当你接触蒂姆史密斯时,它说不匹配,因为我在中间错过了格伦。

当人们不知道此人的中间名时,PartialMatchFilter能否适用于此案例?最好的方法是怎样做的?感谢。

以下是代码。

$filters = array (
'YourName' => new PartialMatchFilter("YourName"),
'YourCity' => new ExactMatchMultiFilter("YourCity"),
}

2 个答案:

答案 0 :(得分:0)

我认为您需要使用百分号替换搜索条件中的空格

例如“Tim Smith”成为“Tim%Smith”

然后部分匹配过滤器应该能够找到正确的记录。

答案 1 :(得分:0)

PartialMatchFilter相当于

WHERE FieldName LIKE '%{$your_input}%'

所以只会匹配字段中某处的确切字符串。

为了能够在字段中搜索多个字词,您最好使用FullTextFilter