假设我有文件列表。它们具有元数据,例如php, html, css
或maths, homeworks
等标签。检索此类文件的最佳方法是什么? MATCH..AGAINST
或LIKE('%user_post_tag%')
是唯一的解决方案吗?是否有任何机器学习技术可以在这里应用,所以如果用户经常打开相同的文件,它会排名更好,并在搜索完成后位于列表的顶部?应该如何进行搜索(有没有流行的技术?)如果我们有一个文件存储网站,最重要的是搜索好吗?
P.S。用户可以输入类似give me a file with math homeworks
的内容,也可以只输入math homeworks
。
答案 0 :(得分:1)
您计划在数据库中使用CSV 这总是一个坏主意。
使用这样的标签表:
Table tag
id primary key integer auto_increment
tag char(10) unique key
使用n对n链接表
Table tag_link
tag_id integer
article_id integer
primary key (article_id, tag_id)
然后你有一个主题表
Table article
id integer primary key auto_increment
.....
现在,您可以使用以下查询查找包含标记的所有文章:
SELECT a.id, a.header, a.body
FROM tag t
INNER JOIN tag_link tl ON (t.id = tl.tag_id)
INNER JOIN article a ON (a.id = tl.tag_id)
WHERE t.tag = 'search-engine'
这是最快的方式,事实上它是stackoverflow本身使用的方法。