Добрый день. Есть такая задача. Есть сайт, на каждой его странице есть много названий (назовем текстовая метка), скажем, 100 таких меток на каждой странице. Запросов в минуту к сайту не менее 150. Задача состоит в том, что нужно выводить только те текстовые метки, которые не попадают под определенный фильтр слов, причем по маске %LIKE%. Список стоп-слов состоит примерно из 150 штук. Как понимаете, нужно каждую метку проверить 150 раз соответственно и как только находится совпадение цикл проверки текущей метки прервать и перейти к следующей. Если на странице 100 меток, то проверок будет 100*150=15.000 при 150 запросах в минуту, таких проверок будет ~2.250.000. Сравнение на данный момент делаю через strpos, работает, конечно, не быстро, но и не сказать что медленно. Список стоп-слов содерждится сейчас в подключаемом php файле в виде одномерного массива. Есть мысль перенести его в БД, где каждая строка будет содежать одно стоп-слово. Но вопрос - ускорит ли это процесс? У кого есть мысли как оптимизировать данный процесс? Спасибо заранее.
|