У меня есть сеть, в которой основной контент находится слева, а названия соответствующих элементов - в правой полосе, как на Youtube.
Я хочу запросить наиболее относительные элементы, которые будут отображаться на правой полосе, как на Youtube.com.
Дополнительная информация:
На странице, отображающей любой элемент, есть заголовок элемента, пиксель, очень краткое описание и теги (не более 5).
В базе данных я записываю количество просмотров, количество голосов на странице и количество комментариев.
Моя проблема в том, что мой веб-сайт написан на тайском языке: все слова в заголовке и описании элемента написаны без пробелов между словами, что затрудняет поиск или получение ключевых слов из заголовка и описания.
Что я делаю сейчас, это просто запрашиваю элемент, который имеет похожий тег или теги и отсортирован по количеству просмотров. Это работает очень хорошо для разных предметов, которые не закрыты в истории. Я заметил, что результаты выглядят почти одинаково для элементов, имеющих одинаковый тег (даже если 1 тег). Я думаю, что он должен показать другой результат на любом предмете, как на youtube.com.
Техническая информация:
У меня есть основные таблицы: entry, entry_tag, tag.
Таблица ввода магазинов entry_id, title,number of view, number of vote, number of comment, etc.
Таблица entry_tag store entry_id, tag_id
Таблица тегов магазинов tag_id and tag
Мой текущий код выглядит примерно так:
SELECT DISTINCT t1.* FROM entry AS t1
INNER JOIN entry_tag AS t2 ON t1.entry_id=t2.entry_id
INNER JOIN tag AS t3 ON t2.tag_id=t3.tag_id
INNER JOIN tag AS t4 ON t3.tag=t4.tag
INNER JOIN entry_tag AS t5 ON t4.tag_id=t5.tag_id
WHERE t5.entry_id={$entry_id} AND t1.entry_id!={$entry_id}
ORDER BY view DESC
LIMIT 20
Есть идеи или предложения сделать это?