持续更新。
- FB search框架 Php写的Browse layer,负责同client对话以及param处理和passing等。 C++写的backend,最大的一坨叫做TopAggregator,主要负责三件事 a)rewrite query to get better search results (e.g. force retrieval); b)和每个vertical的RackAggregator对话,比如posts,web,people等,从这些分支收集response; c)对response做twiddling,所以有一堆twiddlers比如web twiddler 每个RackAggregator做的事主要就是和index对话,从各个shards拿结果(用reverse index做retrieval, top m, determined by static rank),以及score results(用forward index / docdata做ranking)。 然后再返回php的middle tier,做caching, privacy check等等。
- Forward index和Reverse index f index主要是给id找doc,r index主要是给出terms找list<doc(id)>
- index build: 也是分batch pipeline (base index build)和live update pipeline (realtime)。