i-C*_*ICA 6 mysql sql coldfusion
我有一个客户问他们的搜索,搜索公司名称可以根据用户输入以多种格式搜索,例如存储在数据库中的公司是AJR Kelly Ltd,例如,如果用户搜索" AJR Kelly"发现,使用;
<cfif pctermsCount gt 0>
AND (LOWER(p.name) LIKE '%#pcTerms#%')
</cfif>
Run Code Online (Sandbox Code Playgroud)
如果他们搜索"凯利"公司被发现,但如果他们搜索像"AJ凯利"或"AJ凯利"这样的字符串的破损版本,则找不到.
有什么我可以做的让它更宽容一点吗?
谢谢.
如果您使用的是MyISAM,则可以使用全文索引.请参阅本教程
如果您使用的是其他存储引擎,则可以使用第三方全文引擎,如sphinx,它可以充当mysql的存储引擎或可以查询的单独服务器.
使用MySQL全文索引,搜索A J Kelly将匹配AJ Kelly(不要混淆事项,但A,J和AJ将被忽略,因为它们在默认情况下太短而且它会与Kelly匹配.)通常全文更宽容(并且通常比LIKE'%string%')因为允许部分匹配,然后可以根据相关性进行排名.
您还可以使用SOUNDEX通过索引单词的语音等价物来使搜索更加宽容,并通过在搜索字词上应用SOUNDEX然后使用它们搜索索引来搜索它们.例如,使用soundex mary,marie并且marry都将匹配.
| 归档时间: |
|
| 查看次数: |
389 次 |
| 最近记录: |