繁体   English   中英

在MySQL和PHP中无法进行全文搜索

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM