我的文字可以是255个字符长。 我有一个包含关键字的数据库。 有没有办法在PHP或MYSQL中测试句子才能找到匹配的关键字? (有点像StackOverflow在输入问题后会建议标签)
例如,文字是:
纽约时报:寻找突发新闻,多媒体,评论&意见 华盛顿,商业,体育,电影,旅游,书籍,工作。
并说我的mysql DB包含newspaper, news, book.
我不知道从哪里开始......最好的方法是什么?
答案 0 :(得分:0)
我知道你想要与fulltext indexing functions相反。您的数据库包含关键字,而不是要搜索的文本正文。
所以它无法使用MATCH () AGAINST()
。这会搜索数据库中的关键字。
您可以将数据库中的关键字提取到PHP脚本中,然后使用PHP字符串函数将关键字与文本进行比较。
$stmt = $pdo->query("SELECT word FROM keywords");
while ($row = $stmt->fetchAll()) {
if (stripos($text, $row["word"])) {
$found = true;
break;
}
}
或者
$stmt = $pdo->query("SELECT GROUP_CONCAT(word SEPARATOR '|') AS pat FROM keywords");
$row = $stmt->fetch();
if (preg_match("/{$row['pat']}/i", $text)) {
$found = true;
}