设计一个document repository

大致的需求就是类似设计一个大规模的图书馆,要能快速找到书的内容。请问老师这道题重点是什么?

我的想法是这和设计search engine,yelp有相关性。我有这些想法:

*我猜这些书可能是pdf可能是raw text等,可以用document store或者直接存到file system?
*可以用map reduce先做这些书的reverse index,方便直接按content keyword来搜索。这个可以提到用MQ和很多pipeline parallel process?
*如果需要实时,可以用stream process
*可以用不同的tag/field再做index,比如language, type等,类似yelp的filter。也可以直接用elastic search?
*再提一下data sharding, hot partition, data replication

这个思路怎么样呢?还有什么别的点吗?

听上去这跟 Search Engine 是一样的,你提到这些点都挺好的。我觉得实时的需求应该不强(可以跟面试官确认),所以主要就是 MapReduce 就好。

谢谢老师!关于用document store还是file system,document store是nosql就按照课上讲的来说,但是之前好像没有过直接把data存到file system的例子。这里有什么要注意的吗?比如file system能做类似index吗?需要append only或者sstable吗?

存file system(比如 GFS)就跟你本地电脑里存一样,有个路径作为文件的地址。搜索的时候会有数据库会做 index.