2

假设我有文件列表。他们有元数据,例如标签php, html, cssmaths, homeworks等。检索此类文件的最佳方法是什么?是MATCH..AGAINST还是LIKE('%user_post_tag%')唯一的解决方案?是否有任何机器学习技术可以在这里应用,所以如果用户经常打开同一个文件,它会在搜索完成后排名更好并位于列表的顶部?如果我们有一个文件存储网站并且最重要的是进行良好的搜索,应该如何进行搜索(有没有流行的技术?)?

PS 用户会在搜索中输入类似的内容give me a file with math homeworks,或者只是math homeworks.

4

1 回答 1

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 本身使用的方法。

请参阅:https ://meta.stackexchange.com/a/2678/161093

于 2013-10-03T02:24:38.847 回答