我有一个文本,可以是255个字符长。我有一个包含关键字的数据库。在PHP或MYSQL中是否有方法测试句子以找到匹配的关键字?(有点像StackOverflow在输入问题后建议标记)
eg.the文本是:
“纽约时报”:寻找突发新闻,多媒体,评论和评论华盛顿,商业,体育,电影,旅游,书籍,工作。
并且说我的mysql数据库包含newspaper, news, book.
我不知道从哪里开始..。什么是最好的方法?
发布于 2017-10-17 03:13:04
我知道你想做与全文索引功能相反的事情。您的数据库包含关键字,而不是要搜索的文本正文。
所以使用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;
}https://stackoverflow.com/questions/46781828
复制相似问题