0
對於我正在處理的項目,我會顯示來自Twitter Streaming API的推文。在顯示推文之前,我需要檢查每個單詞與列入黑名單的單詞。根據單詞過濾內容
目前,我有一個MongoDB集合中的所有黑名單單詞。
我想到的一個顯而易見的方式是,將推文分解爲每個單詞,然後對推文中的每個單詞檢查黑名單集合是否包含該單詞。
但是,這意味着每個tweet會顯示20個數據庫調用。
有沒有更好的方法來解決這個問題?
對於我正在處理的項目,我會顯示來自Twitter Streaming API的推文。在顯示推文之前,我需要檢查每個單詞與列入黑名單的單詞。根據單詞過濾內容
目前,我有一個MongoDB集合中的所有黑名單單詞。
我想到的一個顯而易見的方式是,將推文分解爲每個單詞,然後對推文中的每個單詞檢查黑名單集合是否包含該單詞。
但是,這意味着每個tweet會顯示20個數據庫調用。
有沒有更好的方法來解決這個問題?
我會從數據庫中提取所有黑名單單詞,將它們作爲字符串存儲在一個變量中(用|
分隔)並使用preg_match()
來查看推文中是否有任何內容。
$blacklist = 'blacklisted|words';
if (preg_match('/\b(' . $blacklist . ')\b/i', $tweet))
{
// Don't show
}
else
{
// Show the tweet
}
謝謝。這可能會快很多,因爲我只需要對數據庫進行單個查詢。 – xbonez
不是你問的解決方案,但值得一讀:http://stackoverflow.com/questions/1327112/blacklist-of-words-on-content-to-filter-message –