JP4699379B2 - 階層式にインデックスを記憶するサーチエンジン - Google Patents

階層式にインデックスを記憶するサーチエンジン Download PDF

Info

Publication number
JP4699379B2
JP4699379B2 JP2006539808A JP2006539808A JP4699379B2 JP 4699379 B2 JP4699379 B2 JP 4699379B2 JP 2006539808 A JP2006539808 A JP 2006539808A JP 2006539808 A JP2006539808 A JP 2006539808A JP 4699379 B2 JP4699379 B2 JP 4699379B2
Authority
JP
Japan
Prior art keywords
search
index
hierarchy
sub
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006539808A
Other languages
English (en)
Other versions
JP2007529791A (ja
JP2007529791A5 (ja
Inventor
クヌート マグネ リスヴィック
イングヴェ アースヘイム
トール エッゲ
ハヴァルド ペテルセン
Original Assignee
ヤフー! インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ヤフー! インコーポレイテッド filed Critical ヤフー! インコーポレイテッド
Publication of JP2007529791A publication Critical patent/JP2007529791A/ja
Publication of JP2007529791A5 publication Critical patent/JP2007529791A5/ja
Application granted granted Critical
Publication of JP4699379B2 publication Critical patent/JP4699379B2/ja
Anticipated expiration legal-status Critical
Active legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、サーチエンジンに係り、より詳細には、クロール(crawl)されたドキュメントを層構造(tier)にマップし、次いで、これら層構造を階層式(hierarchical manner)にサーチするサーチエンジンに係る。
ワールドワイドウェブ(WWW)は、インターネットを通してアクセスできる数十億のページを文字通り含む分散型データベースである。ユーザの問合せに応答して有用な結果を生じるようにこれらのページをサーチし及びインデックスすることは、絶えず挑戦である。WWWをサーチするのに通常使用される装置が、サーチエンジンである。WWWは絶えず進化し、毎日数百万のページが追加され、既存のページが常に変化しているので、ワーキングサーチエンジンを維持することは困難である。更に、サーチ実行のコストは、通常、サーチされるインデックスのサイズに直接的に対応する。WWWにおける大規模なサイズ及び量のデータを取り扱うために、ほとんどのサーチエンジンは、分散型で、複写及び仕切り(partitioning)技術(全て以下に述べる)を使用して、ドキュメントの数を縮小している。
典型的な従来のサーチエンジン50が、図1に示されている。インターネット又は他のソース100からのページは、クローラー(crawler)102の使用によりアクセスされる。クローラー102は、ソース100からのドキュメントを集計して、これらドキュメントがサーチ可能となるよう確保する。クローラーについては多数のアルゴリズムが存在し、ほとんどの場合、これらのクローラーは、既知のハイパーテキストドキュメントにおけるリンクをたどり、他のドキュメントを得る。クローラー102により検索されたページは、データベース108に記憶される。その後、これらのドキュメントは、インデックサー(indexer)104によりインデックスされる。インデックサー104は、データベース108におけるドキュメントのサーチ可能なインデックスを構築する。典型的な従来のインデックス方法は、反転ファイル、ベクトルスペース、サフィックス構造、及びその混成体を含む。例えば、各ウェブページは、ワードと、そのページにおける各ワードの各位置とに分割されてもよい。次いで、ページは、ワードと、それらの各位置とでインデックスされる。次いで、全データベース108の一次インデックスが複数のサブインデックス(以下に述べる)に分割され、そして各サブインデックスがサーチノードクラスター106のサーチノードへ送信される。
使用中に、ユーザ112は、サーチ問合せをディスパッチャー(dispatcher)110に入力する。ディスパッチャー110は、クラスター(cluster)106におけるサーチノードのリストをコンパイルして、問合せを実行し、それらの選択されたサーチノードへ問合せを転送する。コンパイルされたリストは、各仕切り(partition)が一度にサーチされることを保証する。サーチノードクラスター106におけるサーチノードは、インデックサー104により形成された一次インデックスの各部分をサーチし、そして分類されたサーチ結果を、ドキュメント識別子及びスコアと共にディスパッチャー110へ返送する。ディスパッチャー110は、受け取った結果を合体して最終的リストを作成し、これは、関連性スコアにより分類されてユーザ112に表示される。関連性スコアは、問合せそれ自体と、形成されるドキュメントの形式との関数である。関連性に使用されるファクタは、ドキュメントに対する静的な関連性スコア、例えば、リンクのカーディナリティ(cardinality)及びページのクオリティ、ドキュメントの高位部分、例えば、タイトル、メタデータ及びドキュメントヘッダー、ドキュメントの権威、例えば、外部参照及び参照の「レベル」、ドキュメントの統計学的データ、例えば、ドキュメントにおける問合せ用語の頻度、全体的用語頻度、及びドキュメント内の用語距離を含む。
図2を参照すれば、サーチノードのクラスター106が示されている。説明上、クラスター106は、列122a、122b等、及び行124a、124b等にグループ分けされたマトリクスで示されている。サーチノードの各列122において、各々のサーチノードごとに同じセットのインデックスが複写される。例えば、列122a、行124aのサーチノードは、列122a、行124bのサーチノードと同じサブセットのインデックスを含む。サーチノードの各行124には、異なるサブセットのインデックスが使用される。これらインデックスは、サーチのための時間長さを分割するように等分割される。
例えば、列122a、行124aのサーチノードは、列122b、行124aのサーチノードとは異なるサブセットのインデックスを含む。各サーチノードにおいて、「I」は、全データベース108に対するインデックスを表わし、「S」は、サーチノードに対応し、「Sn(In)」は、サーチノードnが全インデックスIのサブインデックスnを保持することを指示し、そして「Sn m(In)」は、サーチノードnの複写数mが全インデックスIのサブインデックスnを保持することを指示する。
ディスパッチャー110からの各問合せは、各サーチノードへ送信されて、各仕切り内の単一のノードが問合せされる。例えば、行122a、122b等における全てのノードが問合せされる。というのは、これらノードの組合せがその合計インデックスを表わすからである。即ち、クラスター120における各行は、全インデックスの全ての仕切りを含むサーチノードのセットである。その結果はディスパッチャー110により合体され、そしてクラスターからの完全な結果が発生される。データをこのように仕切ることにより、データの量がスケーリングされる。例えば、n個の列がある場合に、各ノードに対するサーチ時間は、ディスパッチャー110により結果を合体するのに要する時間を除いて、基本的にnのファクタで減少される。
サーチノードを複写することにより、各インデックスに対する問合せ処理率が高められる。図2において、各列における全サーチノードが同じインデックスを保持する。これは、ディスパッチャー110が、到来する問合せを取り扱うためにサーチノードのセットを選択するときに、各インデックス仕切りに対して列内のノード間を回転するのを許す。
しかしながら、本発明者は、典型的なサーチエンジンには、独特のサーチ問合せの分布に著しい偏りがあると決定した。例えば、トップ25個の問合せが、全問合せ量の1%以上を占めることがある。その結果、一次インデックスを、それより小さいサブインデックスに等分割しても、最適な結果を与えないことがある。
それ故、サーチ問合せの分布に鑑み、ドキュメント及びインデックスを編成するサーチエンジンが要望される。
サーチエンジンは、WWW中をクロール(crawl)しそしてWWWにおいて見つかったページをデータベースに記憶するクローラーを備えている。インデックサーがデータベース内のページをインデックスし、一次インデックスを形成する。ドキュメントマッピングセクションは、データベース内のページをページのランキングに基づき複数の階層へマップする。このランキングは、比較的高い値のコンテクストを有するページの部分に基づいてもよい。プロセッサは、マッピングに基づき一次インデックスから複数のサブインデックスを発生する。これらサブインデックスは、サーチノードクラスターに記憶される。このクラスターは、複数の行及び列に論理的に配列されたサーチノードのマトリクスである。同じ列のサーチノードは、同じサブインデックスを含む。同じ行のサーチノードは、別個のサブインデックスを含む。ユーザにより受け取られるサーチ問合せは、ディスパッチャーへ送信され、このディスパッチャーは、次いで、その問合せをサーチノードの第1階層へ転送する。ディスパッチャーがサーチ問合せをサーチノードの他の階層へ転送しなければならないときを指示するフォールスルー(fall through)アルゴリズムが開示される。
本発明の1つの態様は、データベース内のデータアイテムをインデックスする方法である。この方法は、データベースからデータアイテムを検索し、そしてデータアイテムの一次インデックスを発生することを含む。この方法は、更に、データアイテムを、データアイテムの各ランキングに基づいて少なくとも第1階層及び第2階層へとマッピングすることを含む。この方法は、更に、マッピングに基づいて一次インデックスから少なくとも第1及び第2のサブインデックスを発生し、そしてこの少なくとも第1及び第2のサブインデックスを異なるサーチノードに記憶することを含む。
本発明の別の態様は、データベースをサーチする方法である。この方法は、データベースからデータアイテムを検索し、そしてデータアイテムの一次インデックスを発生することを含む。この方法は、更に、データアイテムを、データアイテムの各ランキングに基づいて少なくとも第1階層及び第2階層へとマッピングすることを含む。この方法は、更に、マッピングに基づいて一次インデックスから少なくとも第1及び第2のサブインデックスを発生することを含む。更に、この方法は、少なくとも第1及び第2のサブインデックスを異なるサーチノードに記憶し、サーチ問合せを受け取り、そしてサーチ問合せに関する結果データアイテムについて第1階層をサーチすることを含む。
本発明の更に別の態様は、データベースをインデックスするためのシステムである。このシステムは、データベース中をクロールしてデータアイテムを見出すクローラーを備えている。インデックサーは、データアイテムを受け取り、そして一次インデックスを発生する。ドキュメントマッピングセクションは、データアイテムを、データアイテムの各ランキングに基づいて少なくとも第1及び第2階層へとマッピングする。プロセッサは、マッピングに基づいて一次インデックスから少なくとも第1及び第2のサブインデックスを発生する。第1サーチノードは、第1サブインデックスを記憶する。第2サーチノードは、第2サブインデックスを記憶する。
本発明の更に別の態様は、データベースのサーチを可能にするためのサーチノードクラスターである。このクラスターは、複数の列及び複数の行に論理的に配列されたサーチノードを備えている。いずれか1つの列にある全てのサーチノードは、実質的に同じ情報を含む。いずれか1つの行にある全てのサーチノードは、別個の情報を含む。行におけるサーチノードは、少なくとも第1及び第2の階層に論理的に分割される。第1階層におけるサーチノードは、データベースの第1部分に対するインデックスを含む。第2階層におけるサーチノードは、データベースの第2部分に対するインデックスを含む。第1及び第2階層におけるデータは、データベースの第1及び第2部分における情報の各ランキングに基づく。
本発明の更に別の態様は、データベース中をクロールしてデータアイテムを見出すクローラーを備えたサーチエンジンである。インデックサーは、データアイテムを受け取り、そして一次インデックスを発生する。ドキュメントマッピングセクションは、データアイテムを、データアイテムの各ランキングに基づいて少なくとも第1及び第2階層へとマッピングする。プロセッサは、マッピングに基づいて一次インデックスから少なくとも第1及び第2のサブインデックスを発生する。第1サーチノードは、第1サブインデックスを記憶する。第2サーチノードは、第2サブインデックスを記憶する。ディスパッチャーは、問合せを受け取り、そしてその問合せを第1サーチノードへ転送する。
図3を参照すれば、本発明の実施形態に基づくサーチエンジン90が示されている。インターネット100のような情報源、或いはその他、企業又は組織のネットワークのようなファイル又はドキュメントの集合体が、クローラー102によってクロールされ、該クローラーは、次いで、情報源に対応するデータをデータベース108に記憶する。次いで、ドキュメントマッピングアルゴリズム114が、ドキュメントを、以下に述べるように階層へとマッピングする。プロセッサ111により制御されるインデックサー105は、データベース108内のマッピングされたドキュメントに基づいて複数のサブインデックスを構築する。サーチノードクラスター160における複数のサーチノードは、各々、各サブインデックスを記憶すると共に、それらの各サブインデックスをサーチできるようにされる。ディスパッチャー110は、以下に述べるように、ユーザ112からの問合せをサーチノードクラスター160へ送信する。
最近の研究では、インターネット上の情報に対する最も人気のある問合せの分布に偏りがあることが分かった。例えば、ほとんどの問合せ(50%−80%)は、トップ百万の最も頻繁に要求される問い合わせである。同様に、異なる月の単日に同じ問合せの80−85%のオーバーラップが現われる。逆に、同様の期間内に一度しか質問されない問合せは、7%に過ぎない。これらの事実の利点を取り入れるために、エンジンは、インデックスが必ずしも等分割されない解体階層型アーキテクチャー(disjointed tiered architecture)を使用する。
図4を参照すれば、データベース108内のデータの各断片は、1組のプロパティに基づいて、複数の階層(3つの階層(tier)が図示されている)の1つへとマッピングされる。例えば、データベースアドミニストレータにより定義された第1スレッシュホールドより上で、サーチ問合せとは独立して、静的な関連性ランキングを有すると思われるドキュメントは、階層(Tier)Iへマッピングされてもよい。別のスレッシュホールドに基づき第2の最高ランキングをもつドキュメントは、階層IIへマッピングされてもよい。別の例として、各ドキュメント又はウェブページの部分は、異なる階層へと分割することができる。特定のドキュメントにおいて、図4に示すように、ヘッダー及びアンカーのような高位コンテクストは、階層Iに配置されてもよく、そしてドキュメントの本体は、階層IIに配置されてもよい。マッピングは、データベース108のデータに対して周期的に実行される。
又、図5を参照すれば、データ構造体(明確に示さず)は、クラスター160のサーチノードが特定の階層に論理的に指定されるように、ディスパッチャー110に記憶される。データベース108のドキュメントがドキュメントマッピングアルゴリズム114により階層へとマッピングされた後に、インデックサー105は、階層に基づいて複数の対応するサブインデックスを発生する。これらサブインデックスは、クラスター160の各サーチノードに記憶される。クラスター160は、サーチノードの論理的な列162a、162b、162c、等と、論理的な行164a、164b、等を含む。ノードは、行及び列に物理的に配置されて示されているが、ノードは、論理的に同様に配列される限り、このように物理的に配置される必要がないことが明らかである。
各列162のサーチノードは、同じサブインデックスの複写を含み、従って、ディスパッチャー110は、複数のサーチノードを経て循環することができる。各行164のサーチノードは、異なるサブインデックスを含む。例えば、図5に示すように、列162aのサーチノードは、全て、階層Iからの情報を含む。従って、アルゴリズム114により階層Iへマップされると決定されるドキュメントは、このようにマップされ、サブインデックスがインデックサー105において生成され、そして階層Iに対するこのサブインデックスが列162aのサーチインデックスに記憶される。
同様に、列162bのサーチノードは、階層IIの情報の一部分を含む。列162cのサーチノードは、列162bのサーチノードに含まれなかった階層IIからの情報の残りを含む。2つのサーチノード列が階層IIとして示されており、そしてインデックスは、これらノード間で等分割することができる。いかなる数のノードも使用できることが明らかである。
同様に、列162dのサーチノードは、階層IIIからの情報の一部分を含む。クラスター160の説明を容易にするために、各列のノードは、同じサイズとして示されているが、各ノードは、同じ行内の他のノードと同じ量又は異なる量の情報を含んでもよいことが明らかであろう。例えば、列162a、行164aのノードは、おそらくその情報が、列162b、行164aのノードより少ない。というのは、それらが異なる階層にあるからである。図示された階層アーキテクチャーの一例として、階層1の全ノードでは、150万のドキュメントをインデックスすることができ、階層2の全ノードでは、600万のドキュメントをインデックスすることができ、そして階層3の全ノードでは、1千万のドキュメントをインデックスすることができる。
ディスパッチャー110からの各問合せは、最初、階層1のインデックスにおいてサーチされ、次いで、サーチは、ディスパッチャー110に記憶されたフォールスルーアルゴリズム(FTA)に基づいて他の階層のインデックスへと続く。FTAは、問合せを他の階層において実行し続けるべきかどうか決定すると共に、多数の階層からの結果をいかに合体すべきかも決定する。換言すれば、FTAは、関連性スコア及び結果セットにおけるヒットの数のような基準に基づいて階層のセットにおける問合せの経路を決定する。又、次の階層が検討される前に各階層からどれほど多くの結果を使用できるかも決定する。
FTAは、hitlimit、percentlimit、ranklimit、termranklimit、及びminusablehitを含む複数の変数を使用して、次の階層を評価すべきかどうか決定する。変数hitlimitは、次の階層へのフォールスルーを強制する前に階層から使用されるべきヒットの数を評価するものである。例えば、階層1から2へのジャンプの場合、変数hitlimitは1000であり、階層2から3へのジャンプの場合、変数hitlimitは8100である。変数percentlimitは、次の階層へのフォールスルーを強制する前に使用できる階層からのヒットの最大パーセンテージである。所与の階層におけるヒットの数が、要求された結果全体のpercentlimit未満である場合には、フォールスルーが生じる。例えば、階層1から2へのジャンプの場合、変数percentlimitは10でよく、そして階層2から3へのジャンプの場合、変数percentlimitは30でよい。変数termranklimitは、当該ヒットの関連性スコアが、別の変数ranklimitと、termranklimit値にその問合せにおける用語の数を乗じたものとの和より小さい場合に、次の階層へのフォールスルーが強制されるというものである。例えば、階層1から2へのジャンプの場合に、変数ranklimitは200でよく、そして変数termranklimitは400でよい。例えば、2用語の問合せでは、この基準にパスするためのヒットの関連性スコアは、200+(2x400)=1000となる。階層2から3へジャンプする場合、変数ranklimitは0でよく、そして変数termranklimitは0でよい。
変数minusablehitは、次の階層への即座のフォールスルーが生じないために所与の階層のFTAに対する上記基準にパスしなければならないヒットの数である。この数は、通常、結果ページのユーザに提示される結果の数である。その考え方は、最も頻繁に要求されるヒットの数を発生するためにフォールスルーが必要であると知られている場合に、フォールスルーをできるだけ即座に行わねばならないというものである。この変数は、定数値と共に使用しなければならない。例えば、階層1から2へのジャンプの場合、変数minusablehitは0でよく、そして階層2から3へのジャンプの場合、変数minusablehitは100でよい。
階層2は、階層1をパスする問合せしか処理せず、そして階層3は、階層1及び2の両方をパスする問合せしか処理しないので、階層1が最高性能のノードを有するのが望ましい。階層2及び3における特別な容量は、複写される列により達成されてもよいし、又は各ノードにおけるドキュメントの数を減少することにより達成されてもよい。
図5の実施形態では、全てのドキュメント及びそれに対応するインデックスが静的な関連性スコアを使用して分布されるという点で、一次元階層化構成が使用される。例えば、静的な関連性スコアは、リンクのカーディナリティ(cardinality)、リンクの人気、又はウェブにおけるサイトの人気に基づいてもよい。
例えば、10億のレコードのデータベースでは、静的な関連性に基づきトップ3千万のドキュメントが階層1にマップされ、次の3億6千万のドキュメントが階層2にマップされ、そしてそれに続く6億1千万のドキュメントが階層3にマップされる。この構成の1つの欠点は、静的な関連性の使用が、関連ドキュメントを決定するのに使用される式全体の一部分に過ぎないことである。
図6を参照すれば、本発明によるノードの別のクラスター170が示されている。このクラスター170は、クラスター160に代わって使用できるもので、列172a、172b、等及び行174a、174b、等にノードを含む。この実施形態では、1.5次元の構成が実現される。ある期間中に百万の最も一般的な問合せに対して問合せログが実行される。百万の問合せの各々に対して最初の20個のヒットは、図6に176で示すように、階層1へマップされる。これは、ほぼ5百万のドキュメントでよい。残りのドキュメントは、静的な関連性スコアに基づいて分布される。例えば、10億のドキュメントのデータベースの場合に、トップ3千万のドキュメントが階層1へマップされ(これらドキュメントのうち5百万は、この階層にロックされ)、3億6千万のドキュメントは、階層2へマップされ、そして6億1千万のドキュメントは、階層3へマップされる。FTAは、上述したように使用される。
図7を参照すれば、本発明によるノードの別のクラスター180が示されている。このクラスター180は、クラスター160に代わって使用できるもので、列182a、182b、等及び行184a、184b、等にノードを含む。この実施形態では、2次元の構成が実現される。図7の実施形態では、図6の1.5次元の構成と同じ階層分布が任意に使用される。しかしながら、全てのドキュメントに対して高い値のコンテクストの情報が、最初に、階層Iと同時にサーチされる。これらの高い値のコンテクストは、ドキュメントの動的な関連性を決定するときに各ウェブページの最も重要な部分である。これらの部分は、タイトル、アンカー等を含む。
より多くのヒットが必要とされる場合には、返送される結果から複写を除去しつつ、多階層構成を使用して全インデックスが連続的にサーチされる。例えば、トップ3千万のドキュメント(5百万は上述したようにロックされる)の本体コンテクストが階層1へマップされ、3億6千万のドキュメントの本体コンテクストが階層2へマップされ、そして6億1千万のドキュメントの本体コンテクストが階層3へマップされる。10億の全ドキュメントの高位コンテクストを含む新たな階層0が使用される。クラスター180のアーキテクチャーに対するFTAの変数の幾つかの値が図8に示されている。低い値のドキュメントを伴う任意の階層4が使用されてもよい。このようなドキュメントは、純粋なリンクでもよいし又はスパムドキュメントでもよい。階層0において全ての階層の大量のコンテクストをサーチすることにより、本発明は、階層2及び階層3のノードにおける比較的小さな情報サブセットをサーチする方が、これらノードにおいてインデックスされる全情報をサーチするより相当に低廉であるという事実の利点を取り入れる。
図9を参照すれば、本発明のオペレーションの幾つかを要約するフローチャートが示されている。S2において、サーチエンジンは、データソース中をクロールする。S4において、データソースから収集されたドキュメントがデータベースに記憶される。S6において、ドキュメントは、上述したアルゴリズムの1つを使用して、階層へと分割される。S8において、ドキュメントは、決定された階層へマップされる。S10において、決定された階層に基づいてサブインデックスが発生される。S12において、サブインデックスは、サーチノードクラスターの各サーチノードに記憶される。S13において、ユーザからサーチ問合せが受け取られる。S14において、サーチエンジンは、階層I内のインデックスをサーチする。S16において、FTAに基づき、サーチエンジンは、階層IIサーチノードを、そして他の階層のサーチノードをサーチする。S18において、サーチの結果がユーザに与えられる。
従って、データベースにおいてクロールされたドキュメントを解体型階層へマップすることにより、高速で、よりコスト効率の良いサーチエンジンが実現される。更に、これら階層のどれほど多くがサーチされるか動的に決定するフォールスルーアルゴリズムを設けることにより、データベースのスケーリングが改善される。
以上、本発明の好ましい実施形態を説明したが、本発明の精神及び範囲から逸脱せずに多数の変更や修正が当業者に明らかであろう。それ故、本発明は、上述した方法又は構造の正確な細部に限定されるものでなく、本発明の範囲内にこのような変更や修正が包含されるものとする。
従来のサーチエンジンアーキテクチャーを示すブロック図である。 従来技術に基づくノードのクラスターを示す図である。 本発明の実施形態に基づくサーチエンジンを示すブロック図である。 本発明の実施形態に基づきドキュメントを階層へとマップする機能を示す図である。 本発明の実施形態に基づきドキュメントを階層へとマップし、それにより生じるノードのクラスターを示す図である。 本発明の実施形態に基づきドキュメントを階層へとマップし、それにより生じるノードのクラスターを示す図である。 本発明の実施形態に基づきドキュメントを階層へとマップし、それにより生じるノードのクラスターを示す図である。 本発明の実施形態に基づくフォールスルーアルゴリズムの種々の変数に対する値を示すテーブルである。 本発明の実施形態に基づくサーチアルゴリズムのオペレーションを示すフローチャートである。

Claims (5)

  1. データベースをインデックスするためのシステムであって、
    データベース中をクロールしてデータアイテムを見出すクローラーと、
    少なくとも一部が前記データアイテムのための関連度スコアに基づく各ランキングに対応づけられたデータアイテムを受信し、一次インデックスを発生するインデクサーと、
    前記データアイテムの各ランキングに基づいて、少なくとも第1及び第2階層にデータアイテムをマッピングするドキュメントマッピング部と、
    前記マッピングに基づいて前記一次インデックスから少なくとも第1及び第2のサブインデックスを発生するプロセッサと、
    前記第1サブインデックスを記憶する第1の複数の列に論理的に配列された第1の複数のサーチノードと、
    前記第2サブインデックスを記憶する第2の複数の列に論理的に配列された第2の複数のサーチノードとを備えたシステム。
  2. 前記データアイテムは、ワールドワイドウェブを通じて入手できるページ及びドキュメントある請求項1に記載のシステム
  3. 前記データアイテムのための関連度スコアウェブページの関連スコアである請求項1に記載のシステム
  4. データベース中をクロールしてデータアイテムを見出すクローラーと、
    少なくとも一部が前記データアイテムのための関連度スコアに基づく各ランキングに対応づけられたデータアイテムを受信し、一次インデックスを発生するインデクサーと、
    前記データアイテムの各ランキングに基づいて、少なくとも第1及び第2階層にデータアイテムをマッピングするドキュメントマッピング部と、
    前記マッピングに基づいて前記一次インデックスから少なくとも第1及び第2のサブインデックスを発生するプロセッサと、
    サーチノードの論理的な列及び論理的な行を含むサーチノードクラスターと、
    前記第1サブインデックスを記憶する第1の複数の列に論理的に配列された、前記第1階層にマッピングされたノードである第1の複数のサーチノードと、
    前記第2サブインデックスを記憶する第2の複数の列に論理的に配列された、前記第2階層にマッピングされたノードである第2の複数のサーチノードと、
    質問を受取り、その質問を前記第1の複数のサーチノード内のサーチノードに転送するディスパッチャー(dispatcher)部とを備えたサーチエンジン。
  5. 前記ディスパッチャー部は、前記第1階層に対してのサーチによりスレッシュホールド数の結果データアイテムを生じないときに前記第2階層へ問合せを送信する請求項4に記載のサーチエンジン。
JP2006539808A 2003-11-10 2004-11-09 階層式にインデックスを記憶するサーチエンジン Active JP4699379B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/705,641 US7240064B2 (en) 2003-11-10 2003-11-10 Search engine with hierarchically stored indices
US10/705,641 2003-11-10
PCT/US2004/037507 WO2005048069A2 (en) 2003-11-10 2004-11-09 Search engine with hierarchically stored indices

Publications (3)

Publication Number Publication Date
JP2007529791A JP2007529791A (ja) 2007-10-25
JP2007529791A5 JP2007529791A5 (ja) 2007-12-27
JP4699379B2 true JP4699379B2 (ja) 2011-06-08

Family

ID=34552416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006539808A Active JP4699379B2 (ja) 2003-11-10 2004-11-09 階層式にインデックスを記憶するサーチエンジン

Country Status (7)

Country Link
US (1) US7240064B2 (ja)
EP (1) EP1682993A4 (ja)
JP (1) JP4699379B2 (ja)
KR (1) KR100828232B1 (ja)
CN (1) CN100585590C (ja)
HK (1) HK1119798A1 (ja)
WO (1) WO2005048069A2 (ja)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536713B1 (en) 2002-12-11 2009-05-19 Alan Bartholomew Knowledge broadcasting and classification system
US7725452B1 (en) 2003-07-03 2010-05-25 Google Inc. Scheduler for search engine crawler
US8042112B1 (en) 2003-07-03 2011-10-18 Google Inc. Scheduler for search engine crawler
US7516086B2 (en) * 2003-09-24 2009-04-07 Idearc Media Corp. Business rating placement heuristic
US7822661B1 (en) 2003-09-24 2010-10-26 SuperMedia LLC Information distribution system and method utilizing a position adjustment factor
US7293016B1 (en) * 2004-01-22 2007-11-06 Microsoft Corporation Index partitioning based on document relevance for document indexes
US8055553B1 (en) 2006-01-19 2011-11-08 Verizon Laboratories Inc. Dynamic comparison text functionality
US7580929B2 (en) * 2004-07-26 2009-08-25 Google Inc. Phrase-based personalization of searches in an information retrieval system
US7567959B2 (en) * 2004-07-26 2009-07-28 Google Inc. Multiple index based information retrieval system
US7580921B2 (en) 2004-07-26 2009-08-25 Google Inc. Phrase identification in an information retrieval system
US7599914B2 (en) 2004-07-26 2009-10-06 Google Inc. Phrase-based searching in an information retrieval system
US7584175B2 (en) 2004-07-26 2009-09-01 Google Inc. Phrase-based generation of document descriptions
US7536408B2 (en) 2004-07-26 2009-05-19 Google Inc. Phrase-based indexing in an information retrieval system
US7702618B1 (en) 2004-07-26 2010-04-20 Google Inc. Information retrieval system for archiving multiple document versions
US7711679B2 (en) 2004-07-26 2010-05-04 Google Inc. Phrase-based detection of duplicate documents in an information retrieval system
US7987172B1 (en) * 2004-08-30 2011-07-26 Google Inc. Minimizing visibility of stale content in web searching including revising web crawl intervals of documents
US9189481B2 (en) * 2005-05-06 2015-11-17 John M. Nelson Database and index organization for enhanced document retrieval
US7685107B2 (en) * 2005-06-07 2010-03-23 International Business Machines Corporation Apparatus, system, and method for scanning a partitioned data set
US7831474B2 (en) * 2005-10-28 2010-11-09 Yahoo! Inc. System and method for associating an unvalued search term with a valued search term
US7739239B1 (en) * 2005-12-29 2010-06-15 Amazon Technologies, Inc. Distributed storage system with support for distinct storage classes
US8392400B1 (en) 2005-12-29 2013-03-05 Amazon Technologies, Inc. Method and apparatus for stress management in a searchable data service
US20070198504A1 (en) * 2006-02-23 2007-08-23 Microsoft Corporation Calculating level-based importance of a web page
EP1862916A1 (en) * 2006-06-01 2007-12-05 Microsoft Corporation Indexing Documents for Information Retrieval based on additional feedback fields
US7809704B2 (en) * 2006-06-15 2010-10-05 Microsoft Corporation Combining spectral and probabilistic clustering
US9015197B2 (en) 2006-08-07 2015-04-21 Oracle International Corporation Dynamic repartitioning for changing a number of nodes or partitions in a distributed search system
US7725470B2 (en) * 2006-08-07 2010-05-25 Bea Systems, Inc. Distributed query search using partition nodes
US20080033925A1 (en) * 2006-08-07 2008-02-07 Bea Systems, Inc. Distributed search analysis
US20080059486A1 (en) * 2006-08-24 2008-03-06 Derek Edwin Pappas Intelligent data search engine
EP1903457B1 (en) 2006-09-19 2012-05-30 Exalead Computer-implemented method, computer program product and system for creating an index of a subset of data
US7689548B2 (en) * 2006-09-22 2010-03-30 Microsoft Corporation Recommending keywords based on bidding patterns
WO2008046098A2 (en) * 2006-10-13 2008-04-17 Move, Inc. Multi-tiered cascading crawling system
US7783689B2 (en) * 2006-10-26 2010-08-24 Microsoft Corporation On-site search engine for the World Wide Web
US8086594B1 (en) 2007-03-30 2011-12-27 Google Inc. Bifurcated document relevance scoring
US8166045B1 (en) 2007-03-30 2012-04-24 Google Inc. Phrase extraction using subphrase scoring
US7925655B1 (en) 2007-03-30 2011-04-12 Google Inc. Query scheduling using hierarchical tiers of index servers
US8166021B1 (en) 2007-03-30 2012-04-24 Google Inc. Query phrasification
US7702614B1 (en) 2007-03-30 2010-04-20 Google Inc. Index updating using segment swapping
US7693813B1 (en) 2007-03-30 2010-04-06 Google Inc. Index server architecture using tiered and sharded phrase posting lists
US20090055436A1 (en) * 2007-08-20 2009-02-26 Olakunle Olaniyi Ayeni System and Method for Integrating on Demand/Pull and Push Flow of Goods-and-Services Meta-Data, Including Coupon and Advertising, with Mobile and Wireless Applications
US8117223B2 (en) 2007-09-07 2012-02-14 Google Inc. Integrating external related phrase information into a phrase-based indexing information retrieval system
WO2009078729A1 (en) * 2007-12-14 2009-06-25 Fast Search & Transfer As A method for improving search engine efficiency
US8024285B2 (en) 2007-12-27 2011-09-20 Microsoft Corporation Determining quality of tier assignments
US8103652B2 (en) * 2008-02-13 2012-01-24 Microsoft Corporation Indexing explicitly-specified quick-link data for web pages
US9135328B2 (en) * 2008-04-30 2015-09-15 Yahoo! Inc. Ranking documents through contextual shortcuts
US8606627B2 (en) * 2008-06-12 2013-12-10 Microsoft Corporation Sponsored search data structure
KR100953869B1 (ko) * 2008-08-04 2010-04-20 고려대학교 산학협력단 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및방법
US7733247B1 (en) * 2008-11-18 2010-06-08 International Business Machines Corporation Method and system for efficient data transmission with server side de-duplication
US20100153371A1 (en) * 2008-12-16 2010-06-17 Yahoo! Inc. Method and apparatus for blending search results
US20100287129A1 (en) * 2009-05-07 2010-11-11 Yahoo!, Inc., a Delaware corporation System, method, or apparatus relating to categorizing or selecting potential search results
KR101104112B1 (ko) * 2009-10-19 2012-01-13 한국과학기술정보연구원 차세대 대용량 저장장치의 동적 색인 관리 시스템 및 그 방법과 그 소스 프로그램을 기록한 기록매체
CN102087646B (zh) * 2009-12-07 2013-03-20 北大方正集团有限公司 一种索引建立方法及装置
US20110258212A1 (en) * 2010-04-14 2011-10-20 Microsoft Corporation Automatic query suggestion generation using sub-queries
US9152683B2 (en) * 2010-10-05 2015-10-06 International Business Machines Corporation Database-transparent near online archiving and retrieval of data
CN101989301B (zh) * 2010-10-22 2012-05-23 复旦大学 一种支持多数据源的索引维护方法
US8370319B1 (en) * 2011-03-08 2013-02-05 A9.Com, Inc. Determining search query specificity
US9495453B2 (en) * 2011-05-24 2016-11-15 Microsoft Technology Licensing, Llc Resource download policies based on user browsing statistics
US8965921B2 (en) * 2012-06-06 2015-02-24 Rackspace Us, Inc. Data management and indexing across a distributed database
US8700583B1 (en) 2012-07-24 2014-04-15 Google Inc. Dynamic tiermaps for large online databases
US8862566B2 (en) 2012-10-26 2014-10-14 Equifax, Inc. Systems and methods for intelligent parallel searching
US9721000B2 (en) * 2012-12-20 2017-08-01 Microsoft Technology Licensing, Llc Generating and using a customized index
US9501506B1 (en) 2013-03-15 2016-11-22 Google Inc. Indexing system
US9483568B1 (en) 2013-06-05 2016-11-01 Google Inc. Indexing system
US9727648B2 (en) * 2014-12-19 2017-08-08 Quixey, Inc. Time-box constrained searching in a distributed search system
US9792286B2 (en) 2014-12-31 2017-10-17 Rovi Guides, Inc. Systems and methods for obtaining customized search results by way of user-specific search indices
US10380207B2 (en) * 2015-11-10 2019-08-13 International Business Machines Corporation Ordering search results based on a knowledge level of a user performing the search
US11347798B2 (en) * 2016-12-29 2022-05-31 Ancestry.Com Operations Inc. Dynamically-qualified aggregate relationship system in genealogical databases
CN109062936B (zh) * 2018-06-15 2023-10-31 中国平安人寿保险股份有限公司 一种数据查询方法、计算机可读存储介质及终端设备
CN111581237B (zh) * 2019-02-15 2023-06-09 阿里巴巴集团控股有限公司 数据查询方法、装置、系统及电子设备
CN110990366B (zh) * 2019-12-04 2024-02-23 中国农业银行股份有限公司 一种提升基于es的日志系统性能的索引分配方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002023398A1 (en) * 2000-09-14 2002-03-21 Fast Serach & Transfer Asa A method for searching and analysing information in data networks
JP2002544598A (ja) * 1999-05-10 2002-12-24 ファースト サーチ アンド トランスファー エイエスエイ 二次元線形スケーラブル・パラレル・アーキテクチャを有する検索エンジン

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2977260B2 (ja) * 1990-09-27 1999-11-15 株式会社東芝 情報提示装置
US7599910B1 (en) * 1993-11-16 2009-10-06 Hitachi, Ltd. Method and system of database divisional management for parallel database system
US5694593A (en) * 1994-10-05 1997-12-02 Northeastern University Distributed computer database system and method
US5913215A (en) * 1996-04-09 1999-06-15 Seymour I. Rubinstein Browse by prompted keyword phrases with an improved method for obtaining an initial document set
US5787435A (en) * 1996-08-09 1998-07-28 Digital Equipment Corporation Method for mapping an index of a database into an array of files
US6360215B1 (en) * 1998-11-03 2002-03-19 Inktomi Corporation Method and apparatus for retrieving documents based on information other than document content
US6804675B1 (en) * 1999-05-11 2004-10-12 Maquis Techtrix, Llc Online content provider system and method
US6507837B1 (en) * 2000-06-08 2003-01-14 Hyperphrase Technologies, Llc Tiered and content based database searching
US6778977B1 (en) * 2001-04-19 2004-08-17 Microsoft Corporation Method and system for creating a database table index using multiple processors
US6928425B2 (en) * 2001-08-13 2005-08-09 Xerox Corporation System for propagating enrichment between documents
US7565367B2 (en) * 2002-01-15 2009-07-21 Iac Search & Media, Inc. Enhanced popularity ranking

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002544598A (ja) * 1999-05-10 2002-12-24 ファースト サーチ アンド トランスファー エイエスエイ 二次元線形スケーラブル・パラレル・アーキテクチャを有する検索エンジン
WO2002023398A1 (en) * 2000-09-14 2002-03-21 Fast Serach & Transfer Asa A method for searching and analysing information in data networks

Also Published As

Publication number Publication date
WO2005048069A3 (en) 2007-08-23
EP1682993A2 (en) 2006-07-26
US7240064B2 (en) 2007-07-03
CN101189602A (zh) 2008-05-28
CN100585590C (zh) 2010-01-27
WO2005048069A2 (en) 2005-05-26
EP1682993A4 (en) 2009-06-24
US20050102270A1 (en) 2005-05-12
KR100828232B1 (ko) 2008-05-07
JP2007529791A (ja) 2007-10-25
HK1119798A1 (en) 2009-03-13
KR20060083229A (ko) 2006-07-20

Similar Documents

Publication Publication Date Title
JP4699379B2 (ja) 階層式にインデックスを記憶するサーチエンジン
EP1934823B1 (en) Click distance determination
Freeston The BANG file: a new kind of grid file
JP2007529791A5 (ja)
Guo et al. XRANK: Ranked keyword search over XML documents
US20050256865A1 (en) Method and system for indexing and searching databases
JP2011175670A (ja) 情報検索システムにおけるフレーズに基づく検索方法
Kumari et al. Comparative study of page rank and weighted page rank algorithm
Kim et al. Performance Comparison of the {\rm R}^{\ast}-Tree and the Quadtree for kNN and Distance Join Queries
Wu et al. Index structures of user profiles for efficient web page filtering services
Gil-Costa et al. Modelling efficient novelty-based search result diversification in metric spaces
Batra et al. Comparative study of page rank algorithm with different ranking algorithms adopted by search engine for website ranking
Savoy et al. Report on the TREC-8 Experiment: Searching on the Web and in Distributed Collections.
Wang et al. Web search with personalization and knowledge
Phillips et al. InterJoin: Exploiting indexes and materialized views in XPath evaluation
Badan et al. Keyword-based access to relational data: To reproduce, or to not reproduce?
Dyreson A jumping spider: Restructuring the WWW graph to index concepts that span pages
Yu et al. Distributed Metadata Search for the Cloud.
Skopal et al. On index-free similarity search in metric spaces
Sangaraju Ranking Of XML Documents by Using Adaptive Keyword Search
Daoud Perfect Hash Functions for Large Web Repositories.
Shejawal et al. Nearest Neighbor Search Technique Using Keywords and Threshold
Li et al. User-assisted similarity estimation for searching related web pages
Lokoc et al. On M-tree variants in metric and non-metric spaces
Bartere et al. Optimization of Query Processing Time Base on Materialized Sample View

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071109

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20090528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100712

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100917

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110302

R150 Certificate of patent or registration of utility model

Ref document number: 4699379

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250