0

对于我正在进行的项目,我会显示从 Twitter Streaming API 收到的推文。在显示推文之前,我需要根据黑名单单词列表检查每个单词。

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

我想到的最明显的方法是爆炸推文以获取每个单词,然后针对推文中的每个单词,检查黑名单集合中是否包含该单词。

但是,这意味着我显示的每条推文都需要 20 次数据库调用。

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

4

1 回答 1

1

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

$blacklist = 'blacklisted|words';
if (preg_match('/\b(' . $blacklist . ')\b/i', $tweet))
{
    // Don't show
}
else
{
    // Show the tweet
}
于 2012-07-03T05:37:21.270 回答