Я столкнулся с дилеммой в среде разработки. Это структура из трех таблиц:
- Содержимое таблицы (статьи, новости ...)
- Теги таблицы (теги для каждой статьи и записи новостей)
- Пропуск таблицы Слова (слова типа "for", "get", "to" ...)
Основная идея - получить записи содержимого в соответствии с текстовым поиском. Как?
Сначала , удаляя слова из текстового поиска в соответствии с таблицей Skip Words , а затем сопоставляя остальные слова с таблицей тегов. Тем не менее, я хотел бы дать «более умный» результат, как
второй шаг, я хотел бы сначала получить статьи, которые соответствуют всем оставшимся словам текста поиск. Эти записи будут основной печатью.
Третий шаг , если нет подходящих записей со всеми словами текстового поиска, тогда начните искать записи, которые соответствуют меньшему количеству слов и сохраните подсчитать их и т. д., пока я не получу список записей контента.
На шаге last отображаются записи, упорядоченные в соответствии с количеством совпадений слов. Итак, рассматривая этот процесс, я подумал:
- Временная таблица для загрузки данных из всех упомянутых шагов
- Использование одной хранимой процедуры со всеми необходимыми логами c
Выше приведено сравнение тегов с использованием условий «Мне нравится» (and field like "word1%" and field like "word2%"
)
Однако меня беспокоит производительность. Это будет процесс на главной странице веб-сайта, который имеет более 1700 посещений в час. Я был бы признателен, если бы вы могли объяснить свой опыт такого рода процессов (если они были)? или какой, по вашему мнению, лучший способ реализовать с учетом производительности?