考慮下面的搜索結果:搜索引擎如何進行「AND」操作?
- Google for 'David' - 591百萬安打0.28秒
- Google for 'John' - 785百萬安打0.18秒
確定。頁面被編入索引,它只需要查找索引表中的計數和前幾個項目,因此速度是可以理解的。
現在考慮下面的搜索與操作:
- Google for 'David John'( '大衛' 和 '約翰') - 173個百萬命中在0.25秒
這讓我打勾;)搜索引擎如何能夠如此快地獲得巨大數據集上的AND運算結果?我看到以下兩種方式來執行任務,兩者都很糟糕:
- 您進行'大衛'的搜索。拿着巨大的臨時表,並在其上搜索「約翰」。但是,臨時表不是由'John'索引的,因此需要進行強力搜索。不管你有什麼樣的硬件,它在0.25秒內都不會計算。
- 通過所有可能的詞索引 像'大衛約翰'組合。然後我們面臨一個關鍵數量的組合式爆炸,並且 甚至沒有Google的存儲 容量來處理。
你可以和在一起as many search phrases as you want,你仍然可以在0.5秒內得到答案!怎麼樣?