*4. System anatomy
*4.1. Google architecture overview
Googleの中では、検索エンジンのWebサイト・クローリング(Webページのダウンロード)はいくつかの分散型のクローラー(crawler : web巡回を行い、web上の文書や画像などを周期的に取得し、自動的にデータベース化するプログラム )によって行われる。
クローリングとはWebページの情報をサーバーに取り込む事、であることが明確な表現である。 (The Web crawling downloading of Web page)
- URL server : フェッチされる(fetch 、取り込まれる)URLのリストをクローラーに送る。フェッチされるWebページはその後Storeserverに送られる。
- Storesever : Webページを圧縮する。その後、Repositoryに送る。
- Repository : 圧縮されたWebページを保存する。
- Indexer : 各Webページは一つの関連したdocIDと呼ばれるID番号をIndexerにより振られる。ID番号は新たなURLが一つのWebページから解析される時にはいつでも振られる。なお、index機能はSorterでも行われる。Indexerはいくつかの働きをする。IndexerはRepositoryを読み、ドキュメントを解凍し、それらを解析する。各々のドキュメントはHitsと呼ばれる一連のword occurrence(単語の出来事: 無理な訳です)に変換される。Hitsは言葉、ドキュメント内の位置、フォントサイズの近似値、大文字使用を記録する。Indexerは、部分的にソートされたforward index(本の目次の様な順索引)を創作して、これらのHitsを一連のBarrels に配置する。Indexerはもう一つの重要な機能を果たす。Indexerは各々のWebページの中の全てのリンクを解析し、一つのanchorファイルの中でそれらについての重要な情報をソートする。このファイルは、各リンクが示す始まりの場所と終わりの場所を決定するに十分な情報と、リンクのテキストを含んでいる。
- URL resolver : anchorファイルを読み、相対URL(http, https などから始まる URL)を絶対URL(http, https などから始まらないURL)に変換し、順番にdocIDに変換する。これはAnchor テキストをAnchorがリンクする先のdocIDと関連するForward indexに収める。URL resolverはまたdocIDと対をなすリンクのデータベースを作り出す。リンクデータベースは全てのドキュメントについてPageRankを計算するのに適している。
- Sorter : docIDでソートされた(詳細はfull versionの2.5を参照)Barrelを読み、wordIDでソートし直してInverted indexを生成する。これは所定の場所で行われるため、この処理のためにわずかな一時スペースが必要である。ソータはまたwordIDリストを作成し、Inverted index(逆引きインデックス)に置き換える(offsets into the inverted index)。DumpLexiconと呼ばれるプログラムがこのリストをIndexerで作られたLexiconと一緒に取り、Searcherに使われるnew Lexiconを生成する。
- Searcher : Webサーバーにより走らされ、Inverted indexとqueriesに答えるPageRankと一緒に作られたDumpLexiconによって構築されたlexiconを使う。
これらは、図式 High level Google architectureを見ながら読んでも、理解には至っていない。
参照資料 :
- The anatomy of a large-scale hypertextual Web search engine. Stanford University Sergey Btin、Lawrence Page (発表に際してFull versionと配布用のShorter versionが用意されていた様だ。)
- SEOとは? 初心者向け完全ガイド 向井 拓真
- 検索エンジンとSEOの歴史 戸栗 頌平