c******a 发帖数: 789 | 1 1 trillion messages, each has maximum 10 words. How would you build the
index table?
How many machines are needed on the cluster to store the index table?
找到一个用hbase解决的,但我没用过hbase,都不知道人在讲啥 http://www.slideshare.net/brizzzdotcom/facebook-messages-hbase/14 | J****3 发帖数: 427 | | g**u 发帖数: 504 | 3 不是很懂,跟大家讨论一下.应该要一个reversed index table 存到hbase里.我本来的
想法是每一个word是row key, 但其实我们查的时候应该是给定user id的(不知道对不
对), 所以我们需要一个reversed index table for each user.如果每个user建这样一
个表就很麻烦了.看了楼主贴的那个链接里的inbox search,感觉只要一张表: Row key:
userid, Column key: word, Version: message id 就可以了.
查询的时候,input是 userid + query string, 首先在hbase里根据row key找到那个
user id, 再用个filter把不相关的列去掉,就能查到想要的那些message了.
看到有用bloom filter的,这样filter column的时候会快些,不知道这个怎么弄,难道对
每一个user id都要搞一个,感觉也不对啊.
等大牛来解惑~~
【在 c******a 的大作中提到】 : 1 trillion messages, each has maximum 10 words. How would you build the : index table? : How many machines are needed on the cluster to store the index table? : 找到一个用hbase解决的,但我没用过hbase,都不知道人在讲啥 http://www.slideshare.net/brizzzdotcom/facebook-messages-hbase/14
| a*****a 发帖数: 46 | 4 楼主能不能讲细一点儿?
index table怎么建取决于将来要怎么查询吧。如果是FB用户的message,应该是用关键
词查询,显示消息及用户名?关键词需要同时match用户名么?比如,搜Cook,需不需
要显示所有含Cook的消息以及所有叫Cook的人发的消息呢?还是只显示前者?
假设不需要match用户名。
Slide 14里说用hbase存,<(row) user id::(column) word::message id>
Slide 13里说hbase是按column分组存的,组内按user id、word、message id排序。那
么查的时候应该先用每个word查出column,还可以根据查询者的好友过滤掉不相干的
user的message,然后merge sorted list
刚开始学习hbase和reverse index,等大牛详解~~ | x*****0 发帖数: 452 | | c******a 发帖数: 789 | 6 就这点信息。
怎么查询就看你怎么设计了吧。见inline
哎那slide我是看不懂,没办法跟你讨论了
both,这个gmail/gchat都是这样的。
【在 a*****a 的大作中提到】 : 楼主能不能讲细一点儿? : index table怎么建取决于将来要怎么查询吧。如果是FB用户的message,应该是用关键 : 词查询,显示消息及用户名?关键词需要同时match用户名么?比如,搜Cook,需不需 : 要显示所有含Cook的消息以及所有叫Cook的人发的消息呢?还是只显示前者? : 假设不需要match用户名。 : Slide 14里说用hbase存,<(row) user id::(column) word::message id> : Slide 13里说hbase是按column分组存的,组内按user id、word、message id排序。那 : 么查的时候应该先用每个word查出column,还可以根据查询者的好友过滤掉不相干的 : user的message,然后merge sorted list : 刚开始学习hbase和reverse index,等大牛详解~~
| w******j 发帖数: 185 | |
|