(57)【要約】  サーチエンジンは、ＷＷＷ中をクロールしそしてＷＷＷにおいて見つかったページをデータベースに記憶するクローラーを備えている。インデックサーは、データベース内のページをインデックスし、一次インデックスを形成する。ドキュメントマッピングセクションは、データベース内のページをページのランキングに基づき複数の階層へマップする。このランキングは、比較的高い値のコンテクストを有するページの部分に基づいてもよい。プロセッサは、マッピングに基づき一次インデックスから複数のサブインデックスを発生する。これらサブインデックスは、サーチノードクラスターに記憶される。このクラスターは、複数の行及び列に論理的に配列されたサーチノードのマトリクスである。同じ列のサーチノードは、同じサブインデックスを含む。同じ行のサーチノードは、別個のサブインデックスを含む。ユーザにより受け取られるサーチ問合せは、ディスパッチャーへ送信され、このディスパッチャーは、次いで、その問合せをサーチノードの第１階層へ転送する。ディスパッチャーがサーチ問合せをサーチノードの他の階層へ転送しなければならないときを指示するフォールスルーアルゴリズムが開示される。【選択図】図３
2007529791.tif 000002
【特許請求の範囲】
【請求項１】
データベース内のデータアイテムをインデックスする方法であって、
データベースからデータアイテムを検索するステップと、
前記データアイテムの一次インデックスを発生するステップと、
前記データアイテムを、前記データアイテムの各ランキングに基づいて少なくとも第１階層及び第２階層へとマッピングするステップと、
前記マッピングに基づいて前記一次インデックスから少なくとも第１及び第２のサブインデックスを発生するステップと、
前記少なくとも第１及び第２のサブインデックスを異なるサーチノードに記憶するステップとを備えた方法。
【請求項２】
前記データベースは、ワールドワイドウェブを通して入手できるページ及びドキュメントの集合体である請求項１に記載の方法。
【請求項３】
前記マッピングは、前記データアイテムの静的関連性スコアに基づく請求項１に記載の方法。
【請求項４】
前記データベースにおいて多数の問合せに対するサーチ問合せログを実行するステップと、
前記サーチ問合せログの結果を受信するステップと、
を更に備え、前記第１のサブインデックスは、前記問合せログの結果に基づくものである請求項１に記載の方法。
【請求項５】
前記データベースにおいて多数の問合せに対するサーチ問合せログを実行するステップと、
前記サーチ問合せログの結果を受信するステップと、
を更に備え、前記第１のサブインデックスは、前記問合せログの結果に基づくものである請求項３に記載の方法。
【請求項６】
前記マッピングは、前記データアイテムの値コンテクストに基づく請求項１に記載の方法。
【請求項７】
前記データアイテムはウェブページであり、そして前記マッピングは前記ウェブページの関連性スコアに基づく請求項１に記載の方法。
【請求項８】
データベースをサーチする方法であって、
データベースからデータアイテムを検索するステップと、
前記データアイテムの一次インデックスを発生するステップと、
前記データアイテムを、前記データアイテムの各ランキングに基づいて少なくとも第１階層及び第２階層へとマッピングするステップと、
前記マッピングに基づいて前記一次インデックスから少なくとも第１及び第２のサブインデックスを発生するステップと、
前記少なくとも第１及び第２のサブインデックスを異なるサーチノードに記憶するステップと、
サーチ問合せを受け取るステップと、
前記サーチ問合せに関する結果データアイテムについて前記第１階層をサーチするステップとを備えた方法。
【請求項９】
前記第１階層がスレッシュホールド数の結果データアイテムを生じないときに前記サーチ問合せに関する結果データアイテムについて前記第２階層をサーチするステップを更に備えた請求項８に記載の方法。
【請求項１０】
前記第１階層がスレッシュホールド数の結果データアイテムを生じないときに前記第２階層がサーチされる請求項８に記載の方法。
【請求項１１】
データベースをインデックスするためのシステムであって、
データベース中をクロールしてデータアイテムを見出すクローラーと、
前記データアイテムを受け取りそして一次インデックスを発生するインデックサーと、
前記データアイテムを、前記データアイテムの各ランキングに基づいて少なくとも第１及び第２階層へとマッピングするドキュメントマッピングセクションと、
前記マッピングに基づいて前記一次インデックスから少なくとも第１及び第２のサブインデックスを発生するプロセッサと、
前記第１サブインデックスを記憶する第１サーチノードと、
前記第２サブインデックスを記憶する第２サーチノードとを備えたシステム。
【請求項１２】
データベースのサーチを可能にするためのサーチノードクラスターにおいて、
複数の列及び複数の行に論理的に配列されたサーチノードを備え、
いずれか１つの列にある全てのサーチノードは、実質的に同じ情報を含み、
いずれか１つの行にある全てのサーチノードは、別個の情報を含み、
前記行におけるサーチノードは、少なくとも第１及び第２の階層へ論理的に分割され、
前記第１階層におけるサーチノードは、前記データベースの第１部分に対するインデックスを含み、
前記第２階層におけるサーチノードは、前記データベースの第２部分に対するインデックスを含み、
前記第１及び第２階層におけるデータは、前記データベースの第１及び第２部分における情報の各ランキングに基づくものであるサーチノードクラスター。
【請求項１３】
データベース中をクロールしてデータアイテムを見出すクローラーと、
前記データアイテムを受け取りそして一次インデックスを発生するインデックサーと、
前記データアイテムを、前記データアイテムの各ランキングに基づいて少なくとも第１及び第２階層へとマッピングするドキュメントマッピングセクションと、
前記マッピングに基づいて前記一次インデックスから少なくとも第１及び第２のサブインデックスを発生するプロセッサと、
前記第１サブインデックスを記憶する第１サーチノードと、
前記第２サブインデックスを記憶する第２サーチノードと、
問合せを受け取りそしてその問合せを前記第１サーチノードへ転送するディスパッチャーとを備えたサーチエンジン。
【請求項１４】
前記第１サブインデックスは、第１の複数の列に論理的に配列された第１の複数のサーチノードに記憶され、そして前記第２サブインデックスは、第２の複数の列に論理的に配列された第２の複数のサーチノードに記憶され、前記第１及び第２のサブインデックスが、更に、各複数の論理的行に論理的に配列されるようにした請求項１３に記載のサーチエンジン。
【請求項１５】
前記ディスパッチャーは、前記第１階層がスレッシュホールド数の結果データアイテムを発生しなかったときに前記第２階層へ問合せを送信する請求項１３に記載のサーチエンジン。
【請求項１６】
前記ディスパッチャーは、前記第１階層がスレッシュホールド数の結果データアイテムを生じないときに前記第２階層へ問合せを送信する請求項１３に記載のサーチエンジン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーチエンジンに係り、より詳細には、クロール(crawl)されたドキュメントを層構造(tier)にマップし、次いで、これら層構造を階層式（hierarchical manner）にサーチするサーチエンジンに係る。
【背景技術】
【０００２】
ワールドワイドウェブ（ＷＷＷ）は、インターネットを通してアクセスできる数十億のページを文字通り含む分散型データベースである。ユーザの問合せに応答して有用な結果を生じるようにこれらのページをサーチし及びインデックスすることは、絶えず挑戦である。ＷＷＷをサーチするのに通常使用される装置が、サーチエンジンである。ＷＷＷは絶えず進化し、毎日数百万のページが追加され、既存のページが常に変化しているので、ワーキングサーチエンジンを維持することは困難である。更に、サーチ実行のコストは、通常、サーチされるインデックスのサイズに直接的に対応する。ＷＷＷにおける大規模なサイズ及び量のデータを取り扱うために、ほとんどのサーチエンジンは、分散型で、複写及び仕切り(partitioning)技術（全て以下に述べる）を使用して、ドキュメントの数を縮小している。
【０００３】
典型的な従来のサーチエンジン５０が、図１に示されている。インターネット又は他のソース１００からのページは、クローラー(crawler)１０２の使用によりアクセスされる。クローラー１０２は、ソース１００からのドキュメントを集計して、これらドキュメントがサーチ可能となるよう確保する。クローラーについては多数のアルゴリズムが存在し、ほとんどの場合、これらのクローラーは、既知のハイパーテキストドキュメントにおけるリンクをたどり、他のドキュメントを得る。クローラー１０２により検索されたページは、データベース１０８に記憶される。その後、これらのドキュメントは、インデックサー(indexer)１０４によりインデックスされる。インデックサー１０４は、データベース１０８におけるドキュメントのサーチ可能なインデックスを構築する。典型的な従来のインデックス方法は、反転ファイル、ベクトルスペース、サフィックス構造、及びその混成体を含む。例えば、各ウェブページは、ワードと、そのページにおける各ワードの各位置とに分割されてもよい。次いで、ページは、ワードと、それらの各位置とでインデックスされる。次いで、全データベース１０８の一次インデックスが複数のサブインデックス（以下に述べる）に分割され、そして各サブインデックスがサーチノードクラスター１０６のサーチノードへ送信される。
【０００４】
使用中に、ユーザ１１２は、サーチ問合せをディスパッチャー(dispatcher)１１０に入力する。ディスパッチャー１１０は、クラスター(cluster)１０６におけるサーチノードのリストをコンパイルして、問合せを実行し、それらの選択されたサーチノードへ問合せを転送する。コンパイルされたリストは、各仕切り(partition)が一度にサーチされることを保証する。サーチノードクラスター１０６におけるサーチノードは、インデックサー１０４により形成された一次インデックスの各部分をサーチし、そして分類されたサーチ結果を、ドキュメント識別子及びスコアと共にディスパッチャー１１０へ返送する。ディスパッチャー１１０は、受け取った結果を合体して最終的リストを作成し、これは、関連性スコアにより分類されてユーザ１１２に表示される。関連性スコアは、問合せそれ自体と、形成されるドキュメントの形式との関数である。関連性に使用されるファクタは、ドキュメントに対する静的な関連性スコア、例えば、リンクのカーディナリティ(cardinality)及びページのクオリティ、ドキュメントの高位部分、例えば、タイトル、メタデータ及びドキュメントヘッダー、ドキュメントの権威、例えば、外部参照及び参照の「レベル」、ドキュメントの統計学的データ、例えば、ドキュメントにおける問合せ用語の頻度、全体的用語頻度、及びドキュメント内の用語距離を含む。
【０００５】
図２を参照すれば、サーチノードのクラスター１０６が示されている。説明上、クラスター１０６は、列１２２ａ、１２２ｂ等、及び行１２４ａ、１２４ｂ等にグループ分けされたマトリクスで示されている。サーチノードの各列１２２において、各々のサーチノードごとに同じセットのインデックスが複写される。例えば、列１２２ａ、行１２４ａのサーチノードは、列１２２ａ、行１２４ｂのサーチノードと同じサブセットのインデックスを含む。サーチノードの各行１２４には、異なるサブセットのインデックスが使用される。これらインデックスは、サーチのための時間長さを分割するように等分割される。
【０００６】
例えば、列１２２ａ、行１２４ａのサーチノードは、列１２２ｂ、行１２４ａのサーチノードとは異なるサブセットのインデックスを含む。各サーチノードにおいて、「Ｉ」は、全データベース１０８に対するインデックスを表わし、「Ｓ」は、サーチノードに対応し、「Ｓn（Ｉn）」は、サーチノードｎが全インデックスＩのサブインデックスｎを保持することを指示し、そして「Ｓnm（Ｉn）」は、サーチノードｎの複写数ｍが全インデックスＩのサブインデックスｎを保持することを指示する。
【０００７】
ディスパッチャー１１０からの各問合せは、各サーチノードへ送信されて、各仕切り内の単一のノードが問合せされる。例えば、行１２２ａ、１２２ｂ等における全てのノードが問合せされる。というのは、これらノードの組合せがその合計インデックスを表わすからである。即ち、クラスター１２０における各行は、全インデックスの全ての仕切りを含むサーチノードのセットである。その結果はディスパッチャー１１０により合体され、そしてクラスターからの完全な結果が発生される。データをこのように仕切ることにより、データの量がスケーリングされる。例えば、ｎ個の列がある場合に、各ノードに対するサーチ時間は、ディスパッチャー１１０により結果を合体するのに要する時間を除いて、基本的にｎのファクタで減少される。
【０００８】
サーチノードを複写することにより、各インデックスに対する問合せ処理率が高められる。図２において、各列における全サーチノードが同じインデックスを保持する。これは、ディスパッチャー１１０が、到来する問合せを取り扱うためにサーチノードのセットを選択するときに、各インデックス仕切りに対して列内のノード間を回転するのを許す。
【０００９】
しかしながら、本発明者は、典型的なサーチエンジンには、独特のサーチ問合せの分布に著しい偏りがあると決定した。例えば、トップ２５個の問合せが、全問合せ量の１％以上を占めることがある。その結果、一次インデックスを、それより小さいサブインデックスに等分割しても、最適な結果を与えないことがある。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
それ故、サーチ問合せの分布に鑑み、ドキュメント及びインデックスを編成するサーチエンジンが要望される。
【課題を解決するための手段】
【００１１】
サーチエンジンは、ＷＷＷ中をクロール(crawl)しそしてＷＷＷにおいて見つかったページをデータベースに記憶するクローラーを備えている。インデックサーがデータベース内のページをインデックスし、一次インデックスを形成する。ドキュメントマッピングセクションは、データベース内のページをページのランキングに基づき複数の階層へマップする。このランキングは、比較的高い値のコンテクストを有するページの部分に基づいてもよい。プロセッサは、マッピングに基づき一次インデックスから複数のサブインデックスを発生する。これらサブインデックスは、サーチノードクラスターに記憶される。このクラスターは、複数の行及び列に論理的に配列されたサーチノードのマトリクスである。同じ列のサーチノードは、同じサブインデックスを含む。同じ行のサーチノードは、別個のサブインデックスを含む。ユーザにより受け取られるサーチ問合せは、ディスパッチャーへ送信され、このディスパッチャーは、次いで、その問合せをサーチノードの第１階層へ転送する。ディスパッチャーがサーチ問合せをサーチノードの他の階層へ転送しなければならないときを指示するフォールスルー(fall through)アルゴリズムが開示される。
【００１２】
本発明の１つの態様は、データベース内のデータアイテムをインデックスする方法である。この方法は、データベースからデータアイテムを検索し、そしてデータアイテムの一次インデックスを発生することを含む。この方法は、更に、データアイテムを、データアイテムの各ランキングに基づいて少なくとも第１階層及び第２階層へとマッピングすることを含む。この方法は、更に、マッピングに基づいて一次インデックスから少なくとも第１及び第２のサブインデックスを発生し、そしてこの少なくとも第１及び第２のサブインデックスを異なるサーチノードに記憶することを含む。
【００１３】
本発明の別の態様は、データベースをサーチする方法である。この方法は、データベースからデータアイテムを検索し、そしてデータアイテムの一次インデックスを発生することを含む。この方法は、更に、データアイテムを、データアイテムの各ランキングに基づいて少なくとも第１階層及び第２階層へとマッピングすることを含む。この方法は、更に、マッピングに基づいて一次インデックスから少なくとも第１及び第２のサブインデックスを発生することを含む。更に、この方法は、少なくとも第１及び第２のサブインデックスを異なるサーチノードに記憶し、サーチ問合せを受け取り、そしてサーチ問合せに関する結果データアイテムについて第１階層をサーチすることを含む。
【００１４】
本発明の更に別の態様は、データベースをインデックスするためのシステムである。このシステムは、データベース中をクロールしてデータアイテムを見出すクローラーを備えている。インデックサーは、データアイテムを受け取り、そして一次インデックスを発生する。ドキュメントマッピングセクションは、データアイテムを、データアイテムの各ランキングに基づいて少なくとも第１及び第２階層へとマッピングする。プロセッサは、マッピングに基づいて一次インデックスから少なくとも第１及び第２のサブインデックスを発生する。第１サーチノードは、第１サブインデックスを記憶する。第２サーチノードは、第２サブインデックスを記憶する。
【００１５】
本発明の更に別の態様は、データベースのサーチを可能にするためのサーチノードクラスターである。このクラスターは、複数の列及び複数の行に論理的に配列されたサーチノードを備えている。いずれか１つの列にある全てのサーチノードは、実質的に同じ情報を含む。いずれか１つの行にある全てのサーチノードは、別個の情報を含む。行におけるサーチノードは、少なくとも第１及び第２の階層に論理的に分割される。第１階層におけるサーチノードは、データベースの第１部分に対するインデックスを含む。第２階層におけるサーチノードは、データベースの第２部分に対するインデックスを含む。第１及び第２階層におけるデータは、データベースの第１及び第２部分における情報の各ランキングに基づく。
【００１６】
本発明の更に別の態様は、データベース中をクロールしてデータアイテムを見出すクローラーを備えたサーチエンジンである。インデックサーは、データアイテムを受け取り、そして一次インデックスを発生する。ドキュメントマッピングセクションは、データアイテムを、データアイテムの各ランキングに基づいて少なくとも第１及び第２階層へとマッピングする。プロセッサは、マッピングに基づいて一次インデックスから少なくとも第１及び第２のサブインデックスを発生する。第１サーチノードは、第１サブインデックスを記憶する。第２サーチノードは、第２サブインデックスを記憶する。ディスパッチャーは、問合せを受け取り、そしてその問合せを第１サーチノードへ転送する。
【発明を実施するための最良の形態】
【００１７】
図３を参照すれば、本発明の実施形態に基づくサーチエンジン９０が示されている。インターネット１００のような情報源、或いはその他、企業又は組織のネットワークのようなファイル又はドキュメントの集合体が、クローラー１０２によってクロールされ、該クローラーは、次いで、情報源に対応するデータをデータベース１０８に記憶する。次いで、ドキュメントマッピングアルゴリズム１１４が、ドキュメントを、以下に述べるように階層へとマッピングする。プロセッサ１１１により制御されるインデックサー１０５は、データベース１０８内のマッピングされたドキュメントに基づいて複数のサブインデックスを構築する。サーチノードクラスター１６０における複数のサーチノードは、各々、各サブインデックスを記憶すると共に、それらの各サブインデックスをサーチできるようにされる。ディスパッチャー１１０は、以下に述べるように、ユーザ１１２からの問合せをサーチノードクラスター１６０へ送信する。
【００１８】
最近の研究では、インターネット上の情報に対する最も人気のある問合せの分布に偏りがあることが分かった。例えば、ほとんどの問合せ（５０％−８０％）は、トップ百万の最も頻繁に要求される問い合わせである。同様に、異なる月の単日に同じ問合せの８０−８５％のオーバーラップが現われる。逆に、同様の期間内に一度しか質問されない問合せは、７％に過ぎない。これらの事実の利点を取り入れるために、エンジンは、インデックスが必ずしも等分割されない解体階層型アーキテクチャー(disjointed tiered architecture)を使用する。
【００１９】
図４を参照すれば、データベース１０８内のデータの各断片は、１組のプロパティに基づいて、複数の階層（３つの階層(tier)が図示されている）の１つへとマッピングされる。例えば、データベースアドミニストレータにより定義された第１スレッシュホールドより上で、サーチ問合せとは独立して、静的な関連性ランキングを有すると思われるドキュメントは、階層(Tier)Ｉへマッピングされてもよい。別のスレッシュホールドに基づき第２の最高ランキングをもつドキュメントは、階層IIへマッピングされてもよい。別の例として、各ドキュメント又はウェブページの部分は、異なる階層へと分割することができる。特定のドキュメントにおいて、図４に示すように、ヘッダー及びアンカーのような高位コンテクストは、階層Ｉに配置されてもよく、そしてドキュメントの本体は、階層IIに配置されてもよい。マッピングは、データベース１０８のデータに対して周期的に実行される。
【００２０】
又、図５を参照すれば、データ構造体（明確に示さず）は、クラスター１６０のサーチノードが特定の階層に論理的に指定されるように、ディスパッチャー１１０に記憶される。データベース１０８のドキュメントがドキュメントマッピングアルゴリズム１１４により階層へとマッピングされた後に、インデックサー１０５は、階層に基づいて複数の対応するサブインデックスを発生する。これらサブインデックスは、クラスター１６０の各サーチノードに記憶される。クラスター１６０は、サーチノードの論理的な列１６２ａ、１６２ｂ、１６２ｃ、等と、論理的な行１６４ａ、１６４ｂ、等を含む。ノードは、行及び列に物理的に配置されて示されているが、ノードは、論理的に同様に配列される限り、このように物理的に配置される必要がないことが明らかである。
【００２１】
各列１６２のサーチノードは、同じサブインデックスの複写を含み、従って、ディスパッチャー１１０は、複数のサーチノードを経て循環することができる。各行１６４のサーチノードは、異なるサブインデックスを含む。例えば、図５に示すように、列１６２ａのサーチノードは、全て、階層Ｉからの情報を含む。従って、アルゴリズム１１４により階層Ｉへマップされると決定されるドキュメントは、このようにマップされ、サブインデックスがインデックサー１０５において生成され、そして階層Ｉに対するこのサブインデックスが列１６２ａのサーチインデックスに記憶される。
【００２２】
同様に、列１６２ｂのサーチノードは、階層IIの情報の一部分を含む。列１６２ｃのサーチノードは、列１６２ｂのサーチノードに含まれなかった階層IIからの情報の残りを含む。２つのサーチノード列が階層IIとして示されており、そしてインデックスは、これらノード間で等分割することができる。いかなる数のノードも使用できることが明らかである。
【００２３】
同様に、列１６２ｄのサーチノードは、階層IIIからの情報の一部分を含む。クラスター１６０の説明を容易にするために、各列のノードは、同じサイズとして示されているが、各ノードは、同じ行内の他のノードと同じ量又は異なる量の情報を含んでもよいことが明らかであろう。例えば、列１６２ａ、行１６４ａのノードは、おそらくその情報が、列１６２ｂ、行１６４ａのノードより少ない。というのは、それらが異なる階層にあるからである。図示された階層アーキテクチャーの一例として、階層１の全ノードでは、１５０万のドキュメントをインデックスすることができ、階層２の全ノードでは、６００万のドキュメントをインデックスすることができ、そして階層３の全ノードでは、１千万のドキュメントをインデックスすることができる。
【００２４】
ディスパッチャー１１０からの各問合せは、最初、階層１のインデックスにおいてサーチされ、次いで、サーチは、ディスパッチャー１１０に記憶されたフォールスルーアルゴリズム（ＦＴＡ）に基づいて他の階層のインデックスへと続く。ＦＴＡは、問合せを他の階層において実行し続けるべきかどうか決定すると共に、多数の階層からの結果をいかに合体すべきかも決定する。換言すれば、ＦＴＡは、関連性スコア及び結果セットにおけるヒットの数のような基準に基づいて階層のセットにおける問合せの経路を決定する。又、次の階層が検討される前に各階層からどれほど多くの結果を使用できるかも決定する。
【００２５】
ＦＴＡは、ｈｉｔｌｉｍｉｔ、ｐｅｒｃｅｎｔｌｉｍｉｔ、ｒａｎｋｌｉｍｉｔ、ｔｅｒｍｒａｎｋｌｉｍｉｔ、及びｍｉｎｕｓａｂｌｅｈｉｔを含む複数の変数を使用して、次の階層を評価すべきかどうか決定する。変数ｈｉｔｌｉｍｉｔは、次の階層へのフォールスルーを強制する前に階層から使用されるべきヒットの数を評価するものである。例えば、階層１から２へのジャンプの場合、変数ｈｉｔｌｉｍｉｔは１０００であり、階層２から３へのジャンプの場合、変数ｈｉｔｌｉｍｉｔは８１００である。変数ｐｅｒｃｅｎｔｌｉｍｉｔは、次の階層へのフォールスルーを強制する前に使用できる階層からのヒットの最大パーセンテージである。所与の階層におけるヒットの数が、要求された結果全体のｐｅｒｃｅｎｔｌｉｍｉｔ未満である場合には、フォールスルーが生じる。例えば、階層１から２へのジャンプの場合、変数ｐｅｒｃｅｎｔｌｉｍｉｔは１０でよく、そして階層２から３へのジャンプの場合、変数ｐｅｒｃｅｎｔｌｉｍｉｔは３０でよい。変数ｔｅｒｍｒａｎｋｌｉｍｉｔは、当該ヒットの関連性スコアが、別の変数ｒａｎｋｌｉｍｉｔと、ｔｅｒｍｒａｎｋｌｉｍｉｔ値にその問合せにおける用語の数を乗じたものとの和より小さい場合に、次の階層へのフォールスルーが強制されるというものである。例えば、階層１から２へのジャンプの場合に、変数ｒａｎｋｌｉｍｉｔは２００でよく、そして変数ｔｅｒｍｒａｎｋｌｉｍｉｔは４００でよい。例えば、２用語の問合せでは、この基準にパスするためのヒットの関連性スコアは、２００＋（２ｘ４００）＝１０００となる。階層２から３へジャンプする場合、変数ｒａｎｋｌｉｍｉｔは０でよく、そして変数ｔｅｒｍｒａｎｋｌｉｍｉｔは０でよい。
【００２６】
変数ｍｉｎｕｓａｂｌｅｈｉｔは、次の階層への即座のフォールスルーが生じないために所与の階層のＦＴＡに対する上記基準にパスしなければならないヒットの数である。この数は、通常、結果ページのユーザに提示される結果の数である。その考え方は、最も頻繁に要求されるヒットの数を発生するためにフォールスルーが必要であると知られている場合に、フォールスルーをできるだけ即座に行わねばならないというものである。この変数は、定数値と共に使用しなければならない。例えば、階層１から２へのジャンプの場合、変数ｍｉｎｕｓａｂｌｅｈｉｔは０でよく、そして階層２から３へのジャンプの場合、変数ｍｉｎｕｓａｂｌｅｈｉｔは１００でよい。
【００２７】
階層２は、階層１をパスする問合せしか処理せず、そして階層３は、階層１及び２の両方をパスする問合せしか処理しないので、階層１が最高性能のノードを有するのが望ましい。階層２及び３における特別な容量は、複写される列により達成されてもよいし、又は各ノードにおけるドキュメントの数を減少することにより達成されてもよい。
【００２８】
図５の実施形態では、全てのドキュメント及びそれに対応するインデックスが静的な関連性スコアを使用して分布されるという点で、一次元階層化構成が使用される。例えば、静的な関連性スコアは、リンクのカーディナリティ(cardinality)、リンクの人気、又はウェブにおけるサイトの人気に基づいてもよい。
【００２９】
例えば、１０億のレコードのデータベースでは、静的な関連性に基づきトップ３千万のドキュメントが階層１にマップされ、次の３億６千万のドキュメントが階層２にマップされ、そしてそれに続く６億１千万のドキュメントが階層３にマップされる。この構成の１つの欠点は、静的な関連性の使用が、関連ドキュメントを決定するのに使用される式全体の一部分に過ぎないことである。
【００３０】
図６を参照すれば、本発明によるノードの別のクラスター１７０が示されている。このクラスター１７０は、クラスター１６０に代わって使用できるもので、列１７２ａ、１７２ｂ、等及び行１７４ａ、１７４ｂ、等にノードを含む。この実施形態では、１．５次元の構成が実現される。ある期間中に百万の最も一般的な問合せに対して問合せログが実行される。百万の問合せの各々に対して最初の２０個のヒットは、図６に１７６で示すように、階層１へマップされる。これは、ほぼ５百万のドキュメントでよい。残りのドキュメントは、静的な関連性スコアに基づいて分布される。例えば、１０億のドキュメントのデータベースの場合に、トップ３千万のドキュメントが階層１へマップされ（これらドキュメントのうち５百万は、この階層にロックされ）、３億６千万のドキュメントは、階層２へマップされ、そして６億１千万のドキュメントは、階層３へマップされる。ＦＴＡは、上述したように使用される。
【００３１】
図７を参照すれば、本発明によるノードの別のクラスター１８０が示されている。このクラスター１８０は、クラスター１６０に代わって使用できるもので、列１８２ａ、１８２ｂ、等及び行１８４ａ、１８４ｂ、等にノードを含む。この実施形態では、２次元の構成が実現される。図７の実施形態では、図６の１．５次元の構成と同じ階層分布が任意に使用される。しかしながら、全てのドキュメントに対して高い値のコンテクストの情報が、最初に、階層Ｉと同時にサーチされる。これらの高い値のコンテクストは、ドキュメントの動的な関連性を決定するときに各ウェブページの最も重要な部分である。これらの部分は、タイトル、アンカー等を含む。
【００３２】
より多くのヒットが必要とされる場合には、返送される結果から複写を除去しつつ、多階層構成を使用して全インデックスが連続的にサーチされる。例えば、トップ３千万のドキュメント（５百万は上述したようにロックされる）の本体コンテクストが階層１へマップされ、３億６千万のドキュメントの本体コンテクストが階層２へマップされ、そして６億１千万のドキュメントの本体コンテクストが階層３へマップされる。１０億の全ドキュメントの高位コンテクストを含む新たな階層０が使用される。クラスター１８０のアーキテクチャーに対するＦＴＡの変数の幾つかの値が図８に示されている。低い値のドキュメントを伴う任意の階層４が使用されてもよい。このようなドキュメントは、純粋なリンクでもよいし又はスパムドキュメントでもよい。階層０において全ての階層の大量のコンテクストをサーチすることにより、本発明は、階層２及び階層３のノードにおける比較的小さな情報サブセットをサーチする方が、これらノードにおいてインデックスされる全情報をサーチするより相当に低廉であるという事実の利点を取り入れる。
【００３３】
図９を参照すれば、本発明のオペレーションの幾つかを要約するフローチャートが示されている。Ｓ２において、サーチエンジンは、データソース中をクロールする。Ｓ４において、データソースから収集されたドキュメントがデータベースに記憶される。Ｓ６において、ドキュメントは、上述したアルゴリズムの１つを使用して、階層へと分割される。Ｓ８において、ドキュメントは、決定された階層へマップされる。Ｓ１０において、決定された階層に基づいてサブインデックスが発生される。Ｓ１２において、サブインデックスは、サーチノードクラスターの各サーチノードに記憶される。Ｓ１３において、ユーザからサーチ問合せが受け取られる。Ｓ１４において、サーチエンジンは、階層Ｉ内のインデックスをサーチする。Ｓ１６において、ＦＴＡに基づき、サーチエンジンは、階層IIサーチノードを、そして他の階層のサーチノードをサーチする。Ｓ１８において、サーチの結果がユーザに与えられる。
【００３４】
従って、データベースにおいてクロールされたドキュメントを解体型階層へマップすることにより、高速で、よりコスト効率の良いサーチエンジンが実現される。更に、これら階層のどれほど多くがサーチされるか動的に決定するフォールスルーアルゴリズムを設けることにより、データベースのスケーリングが改善される。
【００３５】
以上、本発明の好ましい実施形態を説明したが、本発明の精神及び範囲から逸脱せずに多数の変更や修正が当業者に明らかであろう。それ故、本発明は、上述した方法又は構造の正確な細部に限定されるものでなく、本発明の範囲内にこのような変更や修正が包含されるものとする。
【図面の簡単な説明】
【００３６】
【図１】従来のサーチエンジンアーキテクチャーを示すブロック図である。
【図２】従来技術に基づくノードのクラスターを示す図である。
【図３】本発明の実施形態に基づくサーチエンジンを示すブロック図である。
【図４】本発明の実施形態に基づきドキュメントを階層へとマップする機能を示す図である。
【図５】本発明の実施形態に基づきドキュメントを階層へとマップし、それにより生じるノードのクラスターを示す図である。
【図６】本発明の実施形態に基づきドキュメントを階層へとマップし、それにより生じるノードのクラスターを示す図である。
【図７】本発明の実施形態に基づきドキュメントを階層へとマップし、それにより生じるノードのクラスターを示す図である。
【図８】本発明の実施形態に基づくフォールスルーアルゴリズムの種々の変数に対する値を示すテーブルである。
【図９】本発明の実施形態に基づくサーチアルゴリズムのオペレーションを示すフローチャートである。
【図１】
2007529791.tif 000003
【図２】
2007529791.tif 000004
【図３】
2007529791.tif 000005
【図４】
2007529791.tif 000006
【図５】
2007529791.tif 000007
【図６】
2007529791.tif 000008
【図７】
2007529791.tif 000009
【図８】
2007529791.tif 000010
【図９】
2007529791.tif 000011