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

上一篇: PHP Fulltext Search with PDO

下一篇: MySQL FULLTEXT not working