Фильтрация контента на основе слов

Для проекта, над которым я работаю, я показываю твиты, которые я получаю от 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 }