【问题标题】:Best method to store and retrieve files with metadata [closed]使用元数据存储和检索文件的最佳方法 [关闭]
【发布时间】:2013-10-02 18:52:18
【问题描述】:

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

附:用户会在搜索中输入 give me a file with math homeworks 之类的内容,或者可能只是 math homeworks

【问题讨论】:

    标签: php mysql ruby-on-rails machine-learning search-engine


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      相关资源
      最近更新 更多