我有一个网站,其左侧有主要内容,右侧网站上的相关商品标题与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店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
任何想法或建议,这样做?
我的代码中的额外连接来自想法,我想用一个输入作为entry_id进行查询,并避免额外的查询来获取tag_id,以便代码为我提供所有不同的entry_id和同一行中的所有字段。您的代码也是一个好主意,特别是通过标记人口和类似的标记进行排序。你有想法在单个查询中做到这一点吗?谢谢。 –