我正在尝试在用户键入时实施主题标签建议,所以我正在构建一个这样的主题标签表:
CREATE TABLE IF NOT EXISTS `hashtags_weight` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`hashtag` varchar(140) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`tot` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `hashtag` (`hashtag`,`tot`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
我稍后会查询:
SELECT hashtag FROM hashtags_weight WHERE hashtag LIKE 'foob%' ORDER BY tot DESC
我从中获取主题标签的来源来自先前插入的主题标签。现在,虽然这都是非常基本的东西,但我认为最好建议一个带有最常用案例的主题标签。假设我有一张桌子:
10 Foobar
5 FooBar
2 foobar
这意味着已经使用了 10 次 Foobar,5 次 FooBar 和 2 次 foobar。现在,我想将主题标签计为 17,并在自动完成期间仅建议 Foobar。
当然,我可以通过一些数组排序来做到这一点,但我已经看到这需要很多时间(有很多行)。我想听听一些不同的方法来解决这个问题。
ps这项工作将每晚运行,因此无需超快。我只是想确保我做得正确。当然,我可以向 Db 添加更多表,这没问题。