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)。