[英]Fulltext search in MySQL and PHP doesn't work
我目前正在尝试使用PHP对我的MySQL表(文本类型)中的2个字段执行搜索。
SELECT * FROM content_items WHERE MATCH (content,name) AGAINST ('".urldecode($_REQUEST['term'])."' IN BOOLEAN MODE)
无论我搜索什么,我总是得到零结果(甚至试图使查询变为静态,但仍然无法正常工作)。 我在两个字段上都有全文索引。
是什么原因造成的?
谢谢,
罗伊
ps
搜索应适合任何长度的刺(甚至短的刺)
sql语句很有意义。 我认为问题出在这里:
urldecode($_REQUEST['term'])
PHP手册中有关于此的注释
警告
超全局变量$ _GET和$ _REQUEST已被解码。 在$ _GET或$ _REQUEST中的元素上使用urldecode()可能会导致意外和危险的结果。
干杯,
标记
(假设您的查询没有引发错误)
您可能要检查与全文搜索有关的mysql配置。 例如,默认情况下,少于4个字符的字词不匹配任何内容
mysql> show variables like 'ft_%';
+--------------------------+----------------+
| Variable_name | Value |
+--------------------------+----------------+
| ft_boolean_syntax | + -><()~*:""&| |
| ft_max_word_len | 84 |
| ft_min_word_len | 4 |
| ft_query_expansion_limit | 20 |
| ft_stopword_file | (built-in) |
+--------------------------+----------------+
5 rows in set (0.00 sec)
索引有问题。 重建它们解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.