Windows 7またはWindows XPでHD上のファイルを検索すると、処理が完了するまでに数分かかります。Googleで検索語を入力すると、答えはミリ秒単位で画面に表示されます
Googleがインターネットを検索するにはどうすればよいですか?インターネットは、私のハードドライブよりも何倍も大きく、OSがコンピューターを検索するよりも高速ですか?計算能力と適切なアルゴリズムの問題だけですか?
Windows 7またはWindows XPでHD上のファイルを検索すると、処理が完了するまでに数分かかります。Googleで検索語を入力すると、答えはミリ秒単位で画面に表示されます
Googleがインターネットを検索するにはどうすればよいですか?インターネットは、私のハードドライブよりも何倍も大きく、OSがコンピューターを検索するよりも高速ですか?計算能力と適切なアルゴリズムの問題だけですか?
回答:
Googleはインターネットを検索していません。インデックスを検索しています。Googleには巨大なサーバーファームがあり、常にインターネットをスキャンしてインデックスを作成しています。このプロセスには、インデックス化されていないハードドライブの検索と同じように時間がかかります。Windows 7では、ハードドライブのインデックスを作成するオプションがあります。このプロセスは最初は時間がかかりますが、一度実行されると、検索結果は瞬時に表示されます。
Google検索の仕組みについて詳しく知りたい場合は、Googleの記事「How Search Works」または「How Stuff Works:How Google Works」をご覧ください。
Googleのビジネスは検索(および広告の提供)であり、それに焦点を当てています。Googleがデータを迅速に返送するために行うことは多数あります。
検索の仕組みの詳細については、このリンクを参照してください
比較的インデックスなしのハードドライブ検索では、ドライブ上のすべてのファイルを読み取る必要があり、これには多くの時間がかかります。
さらに、ファイルシステムとインデックスの両方をツリーと考えることができます。ファイルシステムでは、ツリーのルートは最上位のフォルダーであり、その1つのフォルダーにブランチ(フォルダー)またはリーフ(ファイル)を持つことができます。各ブランチには、より多くのフォルダ用のサブブランチと、より多くのファイル用のサブブランチを含めることができます。この構造を検索するには、すべてのブランチ(およびサブブランチ)を「ウォーク」して、探しているリーフを見つける必要があります。インデックスはこの階層を反転します。ベースがアルファベットになり、すべてのサブブランチがこれをさらに改良します。葉は、探しているアイテムの場所です。この構造を検索すると、ツリーの大きなセクションを切り取る(除外する)ことができます(たとえば、検索語の最初の文字を使用すると、25個の他のブランチをすぐにトリミングできます)。
約4年前、私も同じ質問をしました。しかし、自分の研究をグーグルで調べたところ、最終的には、彼らが最高の最高の人材を採用して、最も洗練された検索アルゴリズムとそのすべてを考案したという事実を読んだ。
彼らが使用した重要な設計の1つは、地図を縮小するという考え方に似ていると思います。農場には安価なコンピューターがたくさんあります。これらのコンピューターのハードディスク領域は約80ギガしかなく、ハードにプッシュして、これらのコンピューターに(可能な限り)約16ギガRAMまたはさらに優れた32ギガRAMを搭載します。彼らは彼らが設計したいくつかの洗練されたシステムを介して接続されていることを忘れないでください。ただし、ここで重要なのは、クエリが送信されると、クエリがシステムに渡され、RAM内の最新データを検索しようとするということです。彼らはこれらの安価なコンピューターをたくさん持っていることに留意してください。また、データはRAMにあるため、ハードディスクよりもはるかに高速に検出されます。しかし、それらが非常に役立つ洗練された(インデックス付けとすべてのアルゴリズム)システムも持っていることを忘れないでください。
Googleがすべてを保存していることは誰もが知っているので、このデータは新鮮である必要はありません。RAMにあるべきものに関しては、スプレイツリーと同じ原則を使用でき、人々がRAMで最も多く検索しているものを保持し、最も検索されていないものをハードディスクにフラッシュします。
この小さなアイデアと、インデックス作成、および他の人が回答で言及した他のすべてのことが、ハードドライブ検索よりも高速である理由の1つである可能性があります。
もちろん間違っているかもしれませんが、これは私にとって理にかなっています。そして、学んだことに満足しました。
2004年に、一部のGoogle従業員が論文を公開しました。MapReduceは、それ以降何百回も改善されました。
また、Hadoop Distribud File System(HDFS)のような分散ファイルシステムであり、目的に合わせて最適化されたGoogle File System(GFS)を使用します。また、私が知る限り、GFSはHDFSよりも千倍高速に動作します。
私も少し前にこの質問をしていたので、これに追加するつもりで、Googleが表面上で行っていることを説明するこれらの素晴らしいビデオを見つけました。見るのが面白い。
Youtube 1での
Google Youtube 2でのGoogle
彼はもう少し深くなりますが、あなたが技術に迷うほど深くはありません。
乾杯。
単純なレベルで質問に答えるには、後ろにキーワードインデックスのある教科書があると想像してください。
ハードディスクを(少なくとも、少なくとも)検索することは、本を1ページずつ調べ、キーワードの出現を各行でスキャンするようなものです。
インターネット検索エンジンを使用することは、インデックスでキーワードを検索し、それが提供するページ番号に直接アクセスするようなものです。
もちろん、実際にはこれよりもはるかに複雑です。たとえば、通常は、インターネットとは異なる種類の情報についてハードディスクを検索します。ただし、基本的なことは、検索エンジンがインデックスを使用していることです。既に単語ごとに「本」を読み終え、それらの単語のリストをそれらがどこにあるかと一緒にまとめ、リストを整理して非常に素早く物を調べられるようにしました。 。
たとえば、本の索引の構成について考えてみましょう。第一に、通常はアルファベット順にソートされ、第二に文字の見出しがある場合があります。インデックスで単語を検索すると、目的の文字で始まる単語のリストがすぐにわかります。また、リストは並べ替えられているため、リスト内で必要な単語を簡単に見つけることができます。
つまり、要約すると、ハードディスクには本だけがあり、検索エンジンにはインデックスがあります。他の人が指摘したように、ソフトウェアを使用してハードディスクのインデックスを作成することは可能です。そして、全体ではなくインデックスを使用できます。