一堆标签标记了一堆 item。如何通过标签快速找到对应的 item?

2013-08-03 20:09:39 +08:00
 daoluan
经常在浏览网页(比如一个博文)的时候,标题下会有标签,点击某个标签,网页挑战,系统会从后台数据中搜索到对应的 item,把结果返回给用户,如果 item 很多,标签也很多,大!数!据!,是如何「快速」的?

小白想:直接使用数据库存储,每个 item 有对应的标签 id,要的时候直接 select 出来。应该没有那么简单的?!

数据是实时的,也就是每个时刻可能用户都在添加数据,所以无法提早预备查询结果,比如我把 python 标签的所有 item 先存好。


最近,我在项目中遇到了这个问题,不知道大公司里的产品中是如何做的?用到了什么算法?

比如 stackoverflow 上 http://stackoverflow.com/tags
比如 知乎等等等等
2552 次点击
所在节点    问与答
2 条回复
crazybubble
2013-08-04 08:01:58 +08:00
mongodb做tag什么的很方便,一个doc也就是一个item里,包含一个array用来存tag,然后给doc里的这个array做index
Perry
2013-08-04 08:33:46 +08:00
如果是redis的话结构应该类似这样。。

LPUSH article:article_id:tags "tag1" "tag2" "tag3"
LPUSH tag:tag1 "article_id"
LPUSH tag:tag2 "article_id"
LPUSH tag:tag3 "article_id"

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/77888

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX