質問: googleがハードドライブ検索よりもはるかに速いのはなぜですか。 windows 7またはwindows xpで自分のhdでファイルを検索すると、処理が完了するまで数分かかります。 googleで検索語を入力した場合、答えは画面にミリ秒単位で表示されます。私のosが私のコンピュータを検索することができるより速く、googleは私のハードドライブより何倍も大きいインターネットを検索することが可能ですか?それは計算能力と正しいアルゴリズムの問題だけでしょうか。
回答: googleの事業は検索(および広告の配信)であり、それが非常に重視されています。データが非常に速くあなたに返されるようにするためにgoogleがすることはたくさんあります。 まず、 mapreduce と pagerank を使って、world wide webの総合的なインデックスを生成します。これは定期的にこれを更新するので結果は新鮮です。 そのインデックスは、googleの多数のサーバーに分散して複製されています。 返された結果を構築するために、クエリは複数のサーバーに分割されます。これにより、プロセスを高度に並列化することができます。 一般的なクエリと結果がキャッシュされるため、検索を実行する必要がまったくありません。 検索のしくみ の詳細については、このリンクを参照してください。比較的、インデックスのないハードドライブ検索では、ドライブ上のすべてのファイルを読み取る必要があり、これにはかなりの時間がかかります。さらに、ファイルシステムとインデックスの両方をツリーと考えることもできます。ファイルシステムでは、ツリーのルートは最上位フォルダであり、その1つのフォルダ内にブランチ(フォルダ)またはリーフ(ファイル)を含めることができます。各ブランチには、より多くのフォルダー用のサブブランチと、より多くのファイル用のリーフがあります。この構造を検索するためには、あなたが探している葉を見つけるためにすべての枝(そして副枝)を「歩く」必要があります。インデックスはこの階層を反転します。ベースがアルファベットになり、すべてのサブブランチがこれをさらに改良します。葉はあなたが探しているアイテムの場所です。この構造を検索すると、ツリーの大きな部分を切り取る(除外する)ことができます(たとえば、検索語の最初の文字を使用すると、すぐに他の25個のブランチを切り取ることができます)。