对于我正在处理的项目,我会显示我从Twitter Streaming API收到的推文。在显示推文之前,我需要针对列入黑名单的单词检查每个单词。
目前,我在MongoDB集合中列出了所有列入黑名单的单词。
我想到的显而易见的方法是爆炸推文来获取每个单词,然后对于推文中的每个单词,检查黑名单集合是否包含该单词。
但是,这意味着每个推文显示约20个数据库调用。
有没有更好的方法来解决这个问题?
答案 0 :(得分:1)
我将从数据库中获取所有列入黑名单的单词,将它们作为字符串存储在变量中(以|
分隔)并使用preg_match()
查看推文中是否有任何内容。
$blacklist = 'blacklisted|words';
if (preg_match('/\b(' . $blacklist . ')\b/i', $tweet))
{
// Don't show
}
else
{
// Show the tweet
}