首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个搜索/标签系统更好?

哪个搜索/标签系统更好?
EN

Stack Overflow用户
提问于 2010-01-13 15:52:38
回答 1查看 953关注 0票数 4

我在一个有用户和用户生成的文章、画廊和视频的网站上工作,我试图制作一个标签系统,并搜索他们所有的东西。

起初,我在想,在tbl_articles、tbl_galleries和tbl_videos中,我会有一个标题、描述和标记字段。然后对每个查询运行如下查询:

代码语言:javascript
复制
select * from tbl_articles where match(title, description, tags)
  against ('$search' in boolean mode) ORDER BY match(title, description, tags)
  against ('$search' in boolean mode) DESC, views desc LIMIT 0, 3

对tbl_galleries和tbl_videos的相同查询。对于用户,只需比较用户名。然后用一个“更多”按钮(facebook样式)在结果页面中各显示三个。

当查看一篇文章、图片库或视频时,也会有指向相关内容的链接,所以我想只使用相同的查询,限制设置为'1,3‘-以避免显示自己。

Q1 -这个系统怎么样?

我对这个系统很满意,直到我找到了

他们在其中

  • 一个“标记”表,它包含两个列--一个主id和一个唯一索引的tag_name。
  • 一个'type‘表,其中他们有另一个主id和一个唯一索引的'type’(类别)(我想我可以将它用于用户/视频/文章/图库)
  • 一个“search”表,其中包含文章的url,其中包含来自“标记”和“type”的外来id。(我认为可以不用一个完整的url来存储相关的外国id,这样我就可以生成url,例如article.php?id=.)

Q2 -这个系统看起来要高效得多.虽然我如何搜索标题或描述?

Q3 --另一件坏事是,对于每一个页面视图,我都必须加入标记。所以它可能没有那么高的效率。

Q4 -我的系统也只搜索布尔值,我会更好地使用一个类似的查询吗?

Q5 -我限制我的用户为4个标签,但我鼓励单字(堆叠溢出样式).我意识到,在我的系统中,搜索“火车站”并不能与“火车站”这样的标签相匹配,我该如何绕过这个问题呢?

这么多问题..。抱歉太久了。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-13 19:16:25

Q1 --您最好为文章、标签和一个与文章和标签相关的链接表提供三个单独的表。您还可以使用两个用于文章的表和一个articles_tags表来完成此操作。articles_tags表将包含一个articleID字段,并将标记本身作为一个复合键。两个或三个表都可以很容易地找到哪些项目有给定的标签,哪些标签分配给给定的项目。

Q2 -标题和描述搜索可以使用“喜欢”的百分比或正则表达式或全文搜索。

Q3 --不要担心将标签表与其他表连接起来。要理解Knuth,首先构建它,然后找到瓶颈。MySQL非常擅长它所做的事情。一遍又一遍地把这些桌子连在一起不会有什么害处。

Q4 --这取决于你想从结果中得到什么。通常,您需要的是实际数据,然后只需测试返回的行数,以判断其是否正确。

Q5 --同样,在将查询传递给数据库之前,您必须在PHP端使用"like“语法,或者使用一些创造性的正则表达式。

祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2058016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档