更改最小和最大字长
我有一个文件路径搜索,允许用户在网站上搜索他/她的文件。示例条目如下:
`path`
- /Volumes/Fulfill/03-01-13/FILFILE.txt
- /Volumes/Master/.Trash/Weeds.mov
如果有人搜索"master mov",它将执行以下查询:
SELECT * FROM files WHERE path LIKE '%master%' AND path LIKE '%mov%'
返回:
- /Volumes/Master/.Trash/Weeds.mov
做上述搜索的更好的方法是什么?
更新:我试着做以下事情,但是我的MYISAM FULLTEXT
搜索的实现根本不工作:
select * from path where path like '%red%' and path like '%state%' <-- works
select * from path where match(path) against ('red state'); <-- zero results
有没有其他方法来实现全文搜索比上面?
%是通配符。如果您将其替换为以下内容,将会更快:
SELECT * FROM files WHERE path LIKE '/Volumes/Master%mov'
因为你没有检查更多的条件。
对于全文选项,您将(一次)
ALTER TABLE files ADD FULLTEXT(path);
对于搜索,您可以
SELECT * FROM files
WHERE MATCH (path)
AGAINST ('+Master +mov' IN BOOLEAN MODE);
短单词被忽略,默认最小长度为4个字符。您可以使用变量ft_min_word_len和ft_max_word_len