PHP全文搜索与PDO
我已经开始使用php pdo进行MySQL全文搜索。 我已经设置了像这样的全文索引:
CREATE FULLTEXT INDEX ft_title ON booklist (title);
我也试过:
ALTER TABLE booklist ADD FULLTEXT ft_title (title);
两者似乎都已经正确设定了指数。
然后我查询数据库如下:
$stmt = $this->pdo1->prepare("SELECT * FROM booklist WHERE MATCH(title) AGAINST(:value)");
try {
$stmt->execute(array(':value' => $val));
} catch (Exception $e) {
return false;
}
$code = $stmt->fetchAll(PDO::FETCH_ASSOC);
无论赋值给$ val,结果数组始终保持为空。 没有错误消息给出。 另外(显然)数据库中存在许多匹配条目。
我迷路了,希望得到任何帮助。
“SHOW VARIABLES LIKE'%ft%'”的结果:
ft_boolean_syntax + -><()~*:""&|
ft_max_word_len 84
ft_min_word_len 4
ft_query_expansion_limit 20
ft_stopword_file (built-in)
您的表中有多少条记录符合您的搜索条件?
默认情况下,如果匹配出现在超过50%的记录中,mysql全文搜索将不会返回任何结果。
这意味着如果您的表格中只有一条记录,或者只有两条记录,则无论您搜索什么,您都将始终得不到结果。
为了简短起见,您的表格中至少需要3条记录,并且只有其中一条记录必须符合您的搜索条件才能获得任何结果。
当你只是开发你的项目并且在表中只有1或2行时,这是一种常见的情况,然后尝试一个完整的测试搜索不会返回任何东西。
链接地址: http://www.djcxy.com/p/75343.html