Для проекта, над которым я работаю, я показываю твиты, которые я получаю от API Streaming Stream. Перед отображением твита мне нужно проверить каждое слово на список вложенных в черный список слов.
В настоящее время у меня есть все черные списки в коллекции MongoDB.
Очевидный способ, который приходит мне на ум, – взорвать твит, чтобы получить каждое слово, а затем для каждого слова в твите, проверьте, содержит ли коллекция черного списка это слово.
Однако это означало бы ~ 20 запросов к базе данных за твит, которые я показываю.
Есть ли лучший способ сделать это?
Я бы забрал все вложенные в черный список слова из базы данных, сохранил их внутри переменной как строку (разделенную |
) и использовал preg_match()
чтобы увидеть, есть ли в чириканье.
$blacklist = 'blacklisted|words'; if (preg_match('/\b(' . $blacklist . ')\b/i', $tweet)) { // Don't show } else { // Show the tweet }