php - MySQL 全文搜索不起作用

标签 php mysql search

我有一个结构如下的 MySQL 表:

$sql = "CREATE TABLE test(
id INT NOT NULL,
title VARCHAR(512) NOT NULL COLLATE utf8_general_ci,
body TEXT NOT NULL COLLATE utf8_general_ci,
dateStored VARCHAR(32) NOT NULL COLLATE utf8_general_ci,
fileName VARCHAR(128) NOT NULL COLLATE utf8_general_ci,

FOREIGN KEY(id) REFERENCES `database`.`parent`(id)

);";

我的存储引擎是 MYISAM。

现在,当我想使用 MATCH - AGAINSTbody 字段中搜索时/strong>,没有结果……

这是我的尝试:

$sql2 = "SELECT * FROM database.test 
        WHERE MATCH(body) AGAINST('?')";
$prepare = $pdo->prepare($sql2);
$prepare->execute( array( $pattern ) );
$fetch = $prepare->fetchAll();

这看起来很基础,但我的代码仍然不起作用。你能告诉我我的代码有什么问题吗?

这是因为我有一个字段引用了另一个表吗?

最佳答案

添加更多数据。默认情况下,MySQL 将忽略表中 50% 或更多行中的任何单词,因为它认为这将是一个“噪音”单词。

如果表格中的行很少,通常会经常达到这个 50% 的限制(即,如果您有两行,每个单词至少出现在 50% 的行中!)。

关于php - MySQL 全文搜索不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23811196/

相关文章:

javascript - 将数据发送到 mysql 表时,html 按钮(onclick)不起作用

mysql - IN 子句中最高匹配的 ORDER 值

windows - 持久性处理程序是否已弃用搜索?

javascript - 通过jquery在数据表中设置 "Search Box"的值为空

php - CakePHP 查找没有 HABTM 关系记录的项目

php - 如何让 Apache 服务 index.php 而不是 index.html?

php activerecord 多对多

mysql - 如何将 XML 数据存储到 mysql 数据库中?我不想疯狂地想要外键

mysql - 在mysql中使用root帐户截断多个数据库中的同一个表

ios - 在 iPhone 中搜索某个范围内的设备 IP 地址的优化方法