根据单词过滤内容

时间:2012-07-03 05:29:53

标签: php mongodb

对于我正在处理的项目,我会显示我从Twitter Streaming API收到的推文。在显示推文之前,我需要针对列入黑名单的单词检查每个单词。

目前,我在MongoDB集合中列出了所有列入黑名单的单词。

我想到的显而易见的方法是爆炸推文来获取每个单词,然后对于推文中的每个单词,检查黑名单集合是否包含该单词。

但是,这意味着每个推文显示约20个数据库调用。

有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

我将从数据库中获取所有列入黑名单的单词,将它们作为字符串存储在变量中(以|分隔)并使用preg_match()查看推文中是否有任何内容。

$blacklist = 'blacklisted|words';
if (preg_match('/\b(' . $blacklist . ')\b/i', $tweet))
{
    // Don't show
}
else
{
    // Show the tweet
}