[go: up one dir, main page]

JP2004070957A - 検索システム - Google Patents

検索システム Download PDF

Info

Publication number
JP2004070957A
JP2004070957A JP2003285107A JP2003285107A JP2004070957A JP 2004070957 A JP2004070957 A JP 2004070957A JP 2003285107 A JP2003285107 A JP 2003285107A JP 2003285107 A JP2003285107 A JP 2003285107A JP 2004070957 A JP2004070957 A JP 2004070957A
Authority
JP
Japan
Prior art keywords
data
database
search
page
robot
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.)
Pending
Application number
JP2003285107A
Other languages
English (en)
Inventor
Setsu Suzuoka
鈴岡 節
Shinichi Sugano
菅野 伸一
Shinsuke Sawajima
澤島 信介
Tetsuya Yamane
山根 徹也
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003285107A priority Critical patent/JP2004070957A/ja
Publication of JP2004070957A publication Critical patent/JP2004070957A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 ネットワーク上に散在する膨大な検索対象データを効率良く取得しデータベース化する検索システムを提供する。
【解決手段】 ネットワーク上でロボットを用いて収集したデータをもとにデータベースを作成し、データベース検索を行なう検索システムにおいて、外部からの参照要求に応答して取得されたデータおよびロボットを用いて収集されたデータを保持するキャッシュ手段と、外部から参照要求が与えられた場合に、前記キャッシュ手段に該当するデータが保持されているならば、前記キャッシュ手段からデータを提供し、前記キャッシュ手段に該当するデータが保持されていないならば、該データを保持する本来のサーバから該データを取得して提供するデータ提供手段とを備える。
【選択図】   図10

Description

 本発明は、ネットワーク上に分散したデータの検索システムに関する。
 Altavista(http://www.altavista.com/)、Lycos(http://www.lycos.com/)、Yahoo!(http://www.yahoo.com/)などロボットを用いたネットワーク上の検索システムは多数存在する。これらはロボットと呼ばれる機械的にネットワーク上で情報を収集するソフトウェアを用いている。そして、収集したデータをデータベース化し、利用者が検索できるようにしている。
 上記ロボットは、ネットワーク上でHTML(Hyper Text Markup Language)で記述された文章を探し、そこに記載されているリンク先を辿って、ネットワーク上に存在するデータを収集する。データベース化については、フルテキストサーチをするものもあれば、タイトルやURLといった部分のみを検索対象とするようなものもある。
 上記データベースは、量が多いので分散化されている場合もある。しかし、あくまでも量が多いための単なる分割であり、何らかの意味を持って分割してはいない。
 上記検索には、キーワード検索が行なわれる。すなわち、探したい文章に含まれているであろう語を入力して、検索を行なう。
 一方、人気のあるサイトへのアクセス集中を分散させ、トラフィックを軽減するために、ミラーサイトが設けられることがある。例えば、Point Cast Network(PCN)社のI−Server(http://www.pointcast.com/products/iserver.html)ではPCN本社へ定期的に情報をプリフェッチして、ミラーサイトを管理している。
清水 奨,WWWサーバ上の検索システム構築,Interface,日本,CQ出版株式会社,1996年 7月 1日,第22巻 第6号,第130頁乃至第139頁。
 従来、ネットワーク上に分散したデータの検索システムにおいては、以下のような問題点があった。
 (1)増大するデータを扱うのが困難になりつつある。 
 例えばWWW上のページデータが1996年で世界で4000万以上あると言われ、今後も指数関数的に増加すると予想される。現在、ページ数も、1ページあたりのデータ量も急激に増大する傾向にある。 
 このように急増するデータを単に量により分割するだけでは、データベース管理が極めて困難である。
 (2)更新頻度が高い情報を扱うのが困難である。 
 一日に何度も更新されるデータについては、現在の検索システムではロボット探索対象から外している。この理由は、頻繁に更新されるデータをロボットで情報収集してデータベース化しても、そのデータが検索される前に更新されることが少なくないからである。このような場合には、検索結果に現れたページを見ても、既になくなっていたり、内容が全く別のものに変更されたために利用者の意図したものとは別ものもが表示されたりする不都合が生じる。
 本発明は、上記事情を考慮してなされたもので、ネットワーク上に散在する膨大な検索対象データを効率良く取得しデータベース化する検索システムを提供することを目的とする。
 また、本発明は、極めて更新頻度の高いデータをも効果的にデータベース化する検索システムを提供することを目的とする。
 本発明は、ネットワーク上でロボットを用いて収集したデータをもとにデータベースを作成し、データベース検索を行なう検索システムにおいて、外部からの参照要求に応答して取得されたデータおよびロボットを用いて収集されたデータを保持するキャッシュ手段と、外部から参照要求が与えられた場合に、前記キャッシュ手段に該当するデータが保持されているならば、前記キャッシュ手段からデータを提供し、前記キャッシュ手段に該当するデータが保持されていないならば、該データを保持する本来のサーバから該データを取得して提供するデータ提供手段とを備えたことを特徴とする検索システムを提供する。
 本検索システムは、プロキシーも兼ねるものであり、これによって、利用者が要求したデータがシステム内にあるならば、それが利用者からの要求によって取得したものであっても、それがロボットによって収集されたものであっても、それを利用者に提示することができる。これによって、極めて更新頻度が高いデータに対しても、検索を適用することができる。
 本発明は、上記検索システムにおいて、外部から参照要求されたデータについての統計処理を行って、今後参照要求されるデータを予測する予測手段と、予測されたデータおよび予め明示的に指定されたデータを、ロボットを用いて取得し前記キャッシュ手段にプリフェッチするプリフェッチ手段とをさらに備える。
 本発明では、取得可能なすべてのデータをロボットを用いてあらかじめ収集せずに、あらかじめ指定したデータおよび利用者からの統計的観点から参照要求があると思われるデータについてロボットによりデータをプリフェッチしておくので、適切なデータに対して効果的にミラー化される。
 本発明は、上記検索システムにおいて、前記プリフェッチ手段は、取得対象となるデータの更新頻度に応じた頻度で該データを取り直す。
 本発明は、上記検索システムにおいて、前記検索要求に応答して行う検索で対象とするデータの範囲の制約条件として、ロボットで収集されたデータに限る条件、外部からの参照要求に応答して取得されたデータに限る条件、同じ名前またはアドレスを持つデータについては最新のものだけに限る条件、動的または対話的に生成されたデータ以外のものに限る条件、および指定されたサイト群またはデータ群に限る条件のうち少なくとも1つを課す。
 本発明は、上記検索システムにおいて、前記キャッシュ手段は、取得されたデータにその更新時刻情報および収集時刻情報の少なくとも一方を付加して保持する。これによって、取得元のデータの名前が同じでも時刻によって異なるデータに対しても管理できる。
 なお、以上の各装置に係る発明は、方法に係る説明としても成立する。
 また、上記の発明は、相当する手順あるいは手段をコンピュータに実行させるためのプログラムを記録した機械読取り可能な媒体としても成立する。
 本発明によれば、データの更新頻度に応じて異なったデータベースにてデータを管理することができる。この結果、例えば、そのデータベースが管理するデータの更新頻度の高さに応じて計算機等の持つ処理能力を設定することができ、ネットワーク上に分散された膨大なデータを効果的に管理することができる。
 また、本発明によれば、検索システムにプロキシー機能をも内蔵させたので、プロキシーに格納されているデータを検索し提示することができる。この結果、例えば、極めて更新頻度が高いデータに対しても、検索サービス・参照サービスを提供することができる。
 以下、図面を参照しながら発明の実施の形態を説明する。
 まず、語句の定義を行う。
 プロキシー(Proxy)とは、クライアント(例えば利用者端末)からサーバ(例えばWWWサイト)への資源アクセスの際にアプリケーションレベルにおいて、クライアントとサーバの間に入り、クライアントからの資源アクセス要求をサーバに対して中継し、サーバからの応答をクライアントに対して中継する機能を有するサーバのことを言う。
 ページ(page)とは、ハイパーテキストのページを意味するものとする。WWWの世界では、1つのページはユニークなURLを持つ。
 URL(Uniform Resouce Location)とは、ページデータをアクセスするのに必要な情報である。URLは、プロトコル、ドメイン名、ポート番号、パス名の情報を含む。
 CGI(Common Gateway Interface)とは、対話的なページや動的なページを作るためにサーバからプログラムを起こすためのインターフェースである。
 ロボット(Robot)とは、HyperText Markup Language(HTML)やStandard Generalized Markup Language(SGML)のようなハイパーテキストで記述された文書を読み、そこに書かれているリンクを機械的に辿りながら文書をネットワーク上で収集するものであり、ソフトウェアにより実現される。ロボットの代わりにスパイダー(spider)あるいはワンダラー(Wanderer)などと呼ばれることもある。
 ロボットの基本的な動作は次のようになる。
 (手順1)指定されたURLの根を探訪リストに登録する。 
 (手順2)ロボットは、探訪リストに従いページを取得する。 
 (手順3)取得されたページを解析してURLを抽出する。 
 (手順4)抽出されたURLを探訪リストに追加する(ただし、URLの重複登録はしない)。 
 以降、手順2〜4を繰り返す。なお、ページの取得頻度は、該ページの更新頻度に応じて決めるようにしても良い。
 次に、本実施形態を概略的に説明する。
 本実施形態では、ネットワーク中に分散されたデータの一例としてページを扱うものとする。
 前述したように、例えば、World Wide Web(WWW)上のページ数(ページの種類)は4000万を越えると言われる。この数は、今後も指数関数的に増え続けると予測されている。このような膨大な量のページを単一のデータベースで管理することは極めて困難である。
 データベースを分割する最も単純な方法は、サイト(ドメイン)単位でデータベースを分割することであるが、こうすると、どのデータベースも等しく高速でなければならない。データベースを分割することができても、すべてが高速でなければならないとすると、データベース構築の負担は依然高い。
 そこで、第1の実施形態では、データベースの内容を人気の度合いに応じて分割するようにしている。そして、人気の高いデータベースは高速なシステム(例えば大容量メモリを持つマシン)の上に載せ、人気があまりないデータベースは低速なシステムの上に載せるようにする。このようにすると、人気の高いデータベースを載せるマシンだけ高速なマシンを使えば良くなり、データベース構築の負担を効果的に軽減することができる。
 ここで、ページの人気の高さを知るためには厳密に言うとネットワークの視聴率調査などをしなければならないが、そのような作業は大きな困難を伴い現実的ではない。そこで、本実施形態では、次のような良く成り立つ近似を使う。まず「ページが飽きられずに高い人気を保ためには、絶えずコンテンツをアップデートしていく必要がある」と考える。そして、その逆をとって「データの更新頻度が高いページは、人気の高いページである」と近似する。つまり、本実施形態では、人気のバロメーターとしてデータの更新頻度を使い、データベースの内容をデータの更新頻度に応じて分割する。なお、ページの更新頻度はロボットを走行させることにより取得できる情報である。
 ところで、更新頻度が高いページには1日に何度も更新されるものもある。このようなページに対して時々しかアクセスしない方法を採る場合、実際のページデータと検索システム内のデータベースとが不一致となる状態が発生する。特に、データベース検索の結果をもとにページを参照しにいくと、既に該当ページがなくなっていたり、ページ自体はあっても内容が別のものに変更されていたりすることがあり、このような場合に不具合が発生する。
 一方、データベースの陳腐化による矛盾を軽減するためには、ロボットが非常に高頻度にページをアクセスする必要がある。しかし、不定期に頻繁に変更されるページの最新情報に追い付くために頻繁にアクセスすることは、無用なトラフィックを増大させ、情報を保持するサイトにも検索システム側にも不利益を被らせる。
 そこで、第2の実施形態では、データベース化した元データを保存しておき、それを利用者に提示するようにしている。このようにすると、実際のページの変化には多少遅れるが、無駄にトラフィックを増やすこともなく、しかも検索結果に対応した元ページを常に見ることができる。
 なお、第1の実施形態と第2の実施形態を組み合わせることも可能である。この場合には、両者の効果を得ることができる。
 以下、本発明の実施形態について詳しく説明する。
 (第1の実施形態)
 まず、第1の実施形態について説明する。
 本実施形態のシステム構成例を、図1、図4、図6に示す。
 本実施形態では、複数のデータベースを容易にし、データの更新頻度に応じてデータベースを使い分ける。すなわち、各データベースに、対象とするページデータの更新頻度の範囲を割り当てる。そして、ユーザが要求するキーワードについて検索を行なう際には、複数のデータベースを連携させて検索し、結果をまとめて利用者に提示する。
 各データベースへのページ分担方法には、例えば次のようなものが考えられる。 
 (a)統計的更新頻度情報によって分担 
 (b)最終更新時刻によって分担 
 (c)統計的更新頻度情報と最終更新時刻との総合的情報によって分担
 ここで、(b)の最終更新時刻によって分担する方法について説明する。
 あるページは、更新された直後は頻繁にアクセスされ(つまり人気があり)、最後に更新されてから時間が経過している程、アクセスされる頻度が少ない(つまり人気がない)と考えられる。そこで、例えば図3のように、最終更新時刻の範囲に応じて、格納すべきデータベースを分担する。
 あるページに関する情報を格納するデータベースを決定する方法には、例えば次のようなものが考えられる。 
 (1)サイト単位に格納すべきデータベースを決定する。この場合には、サイト内のデータの更新頻度の平均値を評価値に用いる。 
 (2)サイト内のディレクトリ単位に格納すべきデータベースを決定する。この場合には、ディレクトリ内のデータの更新頻度の平均値を評価値に用いる。 
 (3)データ単位に格納すべきデータベースを決定する。この場合には、そのデータの更新頻度を評価値に用いる。
 ここで、更新頻度は、上記の統計的更新頻度情報や最終更新時刻などである。 なお、上記の(1)〜(3)の方法は、併用可能である。例えば、サイトAについてはサイト単位にデータベースに入れ、サイトBについては、データ単位にデータベースに入れるようにしても良い。また、サイトC内で、ディレクトリaについてはディレクトリ単位にデータベースに入れ、ディレクトリbについてはデータ単位にデータベースに入れるようにすることも可能である。
 また、更新頻度が高いデータほど、内部ネットワークにつながれたサーバにおくことも考えられる。例えば、更新頻度が高い方のデータを組織内のイントラネットにおき、更新頻度が低い方のデータをインターネットに直接接続された場所で管理する。
 なお、本実施形態では、データベースにはページ自体ではなくキーワードとURLとを格納するものとする。また、ページを全文検索などして抽出したキーワードをURLに付加して格納し、キーワードでURLを検索するものとする。
 また、本実施形態では、語単位もしくはキーワード単位のデータベースについて述べているが、文字単位のデータベースであっても良い。
 次に、図1、図4、図6に示す各システム構成例について説明する。
 図1の構成例では、ネットワーク100に、複数のロボットとデータベースとの組(101と102,111と112,121と122)からなる検索装置100,110,120、複数のWWWサイト(131,132)、利用者端末 (133)が接続されている。
 各データベースには、前述したようなページ分担方法で、対象とする更新頻度を割り当てる。
 第1のロボット102は、高頻度に変化するサイト群もしくはデータ群を集め(例えばWWWサイト131,132から集め)、それをデータベース化して第1のデータベース101に格納する。
 第3のロボット122は、低頻度に変化するサイト群もしくはデータ群を集め、それをデータベース化して第3のデータベース121に格納する。
 第2のロボット112は、それ以外の中頻度に変化するサイト群もしくはデータ群を集め、それをデータベース化して第2のデータベース111に格納する。
 高頻度、低頻度、それ以外の中頻度に夫々対応する実際の統計的更新頻度情報(あるいは、最終更新時刻など)の範囲は、適宜設定する。
 次に、動的なデータベースの分担変更について述べている。
 本実施形態では、統計から得られる更新頻度情報に応じて分割された各データベースに該当するページのURLを入れるが、時間とともにページの更新頻度 (あるいはページの属するサイトの平均的な更新頻度等)は変化することがあるので、あるページの更新頻度(あるいはページの属するサイトの平均的な更新頻度等)がそのページを分担した初期のデータベースの持つ更新頻度の範囲を逸脱する場合が発生する。従って、あるページを分担中のデータベースから適切な更新頻度範囲を持つデータベースにそのページデータもしくはサイトを受け持つように依頼するようにするのが望ましい。この依頼は、データベース間の交渉により実現されるものとする。
 例えば、図1において、第1のロボット102は、統計的に高頻度のデータ群を取り寄せ第1のデータベース101に格納する。しかし、当初高頻度で更新されていたデータの更新頻度が自分が受け持つ範囲よりも低下したならば、そのデータを第2のロボット112とデータベース111に引き受けてもらう。また、更新頻度が大きく落ちた場合には、第3のロボット122とデータベース121に担当を替えるよう依頼する。
 図2に、図1のように更新頻度に応じてロボットが複数台あり、それぞれにデータベースがある場合の各検索装置の処理手順の一例を示す。
 ステップS21で、他の検索装置からページの分担を依頼されているかどうか調べ、あればステップS27を行い、なければステップS22を行う。
 ステップS22で、それぞれのロボットは、指定されたページを1つ選び、そのページを取得する。このときのページの統計的更新頻度に比例した頻度でページを取得するようにスケジュールする。なお、そのページについて統計的更新頻度の情報がない場合には、そのページを含むサイトのページのうち得られている統計的更新頻度の平均的な値あるいはデフォルト値などで代用すれば良い。
 ステップS23で、取得したページが前回と変わっているか否かにより、そのページの統計的更新情報を更新する。もし、ネットワークや相手サーバのトラブルにより、そのページの取得に失敗した場合には、そのページの取得に失敗したという記録を残して、ステップS22に戻る。
 ステップS24で、新しい更新頻度が自らが担当している範囲内かどうかを調べる。
 ステップS25で、もし自らの担当範囲外になったならば、それを範囲内に含む検索装置に以降の処理を依頼する。このとき、そのページのデータは消去する。
 ステップS26で、もし自らの担当範囲内ならば、取得したページをデータベース化し、格納する。例えば、ページデータを形態素解析し、単語レベルに分解し、単語を含むページという形にデータベース化する。このとき、そのページの前のデータは消去する。
 ステップS27で、他の検索装置から依頼があった場合には、そのページを自ロボットで扱うことができるように、そのページを登録し、そのページの統計的更新頻度情報を設定する。
 本実施形態において、検索利用者がデータベース検索を行う場合、利用者端末133から複数のデータベース101,111,121のすべてに検索要求を出す方法と、いずれか1つのデータベース1に検索要求を出す方法が考えられる。後者のいずれか1つのデータベースに検索要求を出す場合には、その検索要求を受け取ったデータベースのみが結果を返すようなモードと、そのデータベースが他のデータベースにも問い合わせに行き結果をマージして返すようなモードが考えられる。
 次に、図4の構成例について説明する。図4は、基本的には図1と同様であり、データの更新頻度に応じた複数のデータベース201〜203が用意されているが、ロボット204を一台で兼用する点に関して図1の構成例と相違する。
 図5に、図4のように、ロボットが1台でデータベースが複数ある場合の検索装置の処理手順の一例を示す。
 ステップS11で、指定されたページを1つ選び、ロボット204を用いてそのページを取得する。このときのページの統計的更新頻度に比例した頻度でページを取得するようにスケジュールする。なお、そのページについて統計的更新頻度の情報がない場合には、そのページを含むサイトのページのうち得られている統計的更新頻度の平均的な値あるいはデフォルト値などで代用すれば良い。
 ステップS12で、取得したページが前回と変わっているか否かにより、そのページの統計的更新情報を更新する。もし、ネットワークや相手サーバのトラブルにより、そのページの取得に失敗した場合には、そのページの取得に失敗したという記録を残して、ステップS11に戻る。
 ステップS13で、ステップS11で取得したページの新しい統計的更新確率により、そのページをどのデータベースに担当させるかを決定する。
 ステップS14で、ページ情報をデータベース化する。例えば、ページデータを形態素解析し、単語レベルに分解し、単語を含むページという形にデータベース化する。このデータをステップS13で決めたデータベースに格納する。このとき、そのページの前のデータは消去する。もし、ここで、これまで格納されていたデータベースと異なるデータベースに格納されていたならば、それをも消去する。もし、取得したページが前回から変更がない場合には、データベース化は行わないが、格納すべきデータベースがそれにより変更された場合には、データの移動のみを行う。
 以上のように、ロボットの数はデータベースの数と一致している必要はない。例えば、図4の場合、ロボットの数は2台でも4台以上でも良い。各ロボットとデータベースとの対応関係は適宜設定すれば良い。
 なお、検索利用者によるデータベース検索については前述した図1と同様である。
 次に、図6の構成例について説明する。図6の検索装置300は、データベース全体を取りまとめるデータベース・フロントエンド(DBF)301が設けられている点が図4の検索装置200と相違する。
 本構成例では、このDBF301が利用者端末133からの検索要求を受付け、適切なデータベースに問い合わせて、結果を利用者に提示する。
 次に、データベース検索における検索対象範囲の指定について説明する。
 本第1の実施形態では、検索要求にて、キーワードを用いた検索条件の他に、対象とする更新頻度の範囲および/または更新時刻の範囲を指定できるようにすると好ましい。また、検索要求において明示的に更新頻度が指定されていない場合に、データベースあるいはDBFの方でデフォルト値(例えば最も更新頻度の高いデータベースのみといった更新頻度範囲)をもって検索を行なうようにしても良い。
 ここで、図7に、図6の検索装置における検索手順の一例を示す。
 利用者が利用者端末133からデータベース・フロントエンド301に向けて検索要求を送り出すと、ステップS31で、データベース・フロントエンド301は利用者端末308からの検索要求を受け取る。
 ステップS32で、その検索要求が更新頻度範囲指定を持つかどうかを判定する。
 もし持つならば、ステップS33で、利用者の検索要求の対象範囲に応じて適切な範囲のデータベースでのみ検索を行う。
 もし持たないならば、ステップS34で、すべてのデータベースで検索を行う。
 ステップS35で、結果をマージして利用者端末308に返す。
 次に、システムのハードウェア構成に関して説明する。
 本第1の実施形態では、更新頻度の高い方(例えば、統計的更新頻度情報の高い方、あるいは最終更新時刻の新しい方など)を受け持つデータベース(またはデータベースおよびロボット)などを構成する計算機には、更新頻度の低い方 (例えば、統計的更新頻度情報の低い方、あるいは最終更新時刻の古い方など)を受け持つデータベース(またはデータベースおよびロボット)などを構成する計算機よりも、高速性について同等以上のものを用い、あるいは台数について同数以上を用いるなどして、更新頻度が高いデータを検索するデータベースを担当する計算機の方がそうでないデータベースを担当する計算機よりも処理能力が同じかより高いようにシステムを構成すると好ましい。
 すなわち、更新頻度が高い方のデータを担当するデータベースの方が更新頻度が低い方のデータを担当するデータベースよりも頻繁に利用されるので、更新頻度が高い方のデータを担当するデータベースの方のみについて処理能力を上げるだけで、全体の処理能力を効果的に向上させることができる。
 従って、本実施形態のように更新頻度に応じてデータベースを分割することにより、更新頻度の高いデータベースを載せる計算機だけ高速なものを使えば良くなり、データベース構築の負担を効果的に軽減することができる。
 例えば、図8のように、第1の検索装置410を構成する計算機群が更新頻度が高いデータ群を担当し、第2の検索装置401を構成する計算機群が更新頻度が低いデータ群を担当している場合には、第1の計算機群410においてはデータベースをハードウェア的に二重化して高速化している。高速化の手段としては、ハードウェアを多重化する他にも、速い素子を使った計算機を使うとか、メモリの容量を大きくするなどの方法がある。
 以上では、本実施形態についてネットワークを1つとして説明したが、図9のように複数のネットワーク500〜504が結合された環境であっても良い。さらに、ネットワーク500〜504が組織や国のように物理的にまったく離れた場所を結合しているものであっても良い。
 (第2の実施形態)
 次に、第2の実施形態について説明する。
 本実施形態では、検索システムにプロキシー機能も装備し、検索結果として参照されるべきページデータを既に持っているならば、そのデータをネットワークを介して新たに取りに行くことはせずに、既に持っているデータを返す。
 これにより、前述した頻繁に変化するページの問題にも対処することができる。すなわち、頻繁に変化するページでは、検索結果として示されるリンクを辿ったときには、既にそのページがなくなっていたり、更新されていて役にたたなくなっていたりすることがある。これに対して、検索用データベースで用いたデータを提示するのであれば、このような問題は生じない。
 すなわち、頻繁に変化するページは、図13に示すようにサンプリング的に取得し、次の取得まで内容を保持しておく。これにより、例えば図13中のt1でページが消失しあるいは内容が別のものに移行されるなどしても、最後にサンプリングしたt0のときの内容を提示することができる。
 図10に、本実施形態のシステム構成例を示す。
 図10に示すように、本実施形態の検索装置601は、ネットワーク600に接続されており、ロボット602、キャッシュ603、データベース化部604、データベース605、データベース・フロントエンド(DBF)607、WWWフロントエンド606を有する。また、図10には示していないが、ネットワーク600を介して各WWWサイトや利用者端末が接続されているものとする。また、図10中では、データベースを1つとして表わしているが、複数に分割されていても良い。また、複数のデータベースに第1の実施形態にて説明した発明を適用し、データの更新頻度に応じてデータベースに情報の格納を分担させても良い。
 本実施形態では、データベースにはページのURLを格納するものとする。また、ページを全文検索などして抽出したキーワードをURLに付加して格納し、キーワードでURLを検索するのもとする。
 最初にデータベース化までを説明し、次に利用方法について説明する。
 データベース化まで手順の一例を以下に示す。 
 まず、ロボット602を用いて、探訪リストに従って、ネットワーク600を介して他のWWWサイトからデータを収集する。もし自身も独自コンテンツを持つWWWサイトであるならば、自身からもデータを収集する。 
 その収集したものをキャッシュ603に格納する。 
 キャッシュ603に格納されているものの中からデータベース化部604により検索用データベース605を作成する。例えば、語単位でのキーワード検索を行なう場合には、データベース化部604では、キャッシュ603内のデータを形態素解析し、語単位でデータベース化する。これにより、利用者から特定の語を含む情報を要求された場合に、即座にデータベース検索が可能となる。ここで、本検索装置では、データベース化するときのデータの在処として、そのデータを取得したネットワーク上のアドレス(URL)ではなく、キャッシュ603に格納されているデータのアドレスを用いる。
 一方、ユーザからの参照要求によりWWWフロントエンド606がアクセスして取得したページも、キャッシュ603に格納するとともに、上記と同様にデータベース化しておく。
 次に利用する際の手順の一例を以下に示す 。
 利用者は、ネットワーク600を介して、検索装置601のWWWフロントエンド606にアクセスし、検索要求を出す。 
 その要求は、データベース・フロントエンド(DBF)607に伝えられ、複数のデータベースがある場合には、適切なデータベースが選択され、それに検索要求を出す。 
 データベース・フロントエンド(DBF)607では、複数のデータベースに検索要求を出した場合には、それらの結果を取りまとめて、WWWフロントエンド606を介して利用者に検索結果を提示する。 
 利用者は、検索結果の中で、さらにその中身を見てみたいと思うものがあれば、検索装置601のWWWフロントエンド606に参照要求を出す。 
 WWWフロントエンド606では、参照を要求されたページが自キャッシュ603に格納されているものであるならば、該ページをキャッシュ603から取り出して参照要求者に返す。もし自キャッシュ603になければ、その旨を参照要求者に返す。
 ここで、検索装置では、取得可能なすべてのデータをロボットを用いて収集せずに、予め指定されたデータに加えて、統計的観点から参照要求があると思われるデータについてロボットによりデータをプリフェッチしておくようにしても良い。これは、WWW上のすべてのデータを検索対象としない場合や、実際のページの更新頻度ではなく、利用者の要求に基づいてデータを更新する場合に有効である。
 すなわち、WWW上のすべてのデータを検索対象としない場合には、どの範囲をロボットで収集するかが問題となる。そこで、この検索サーバ兼プロキシーへの要求に現れるページやサイトを統計処理し、その頻度が高いデータやサイトのデータを優先的にロボットを用いてあらかじめプリフェッチしておく。このときには、実際のページの更新情報が高いもの程よくそのページをロボットが訪問するのみならず、そのページに対する参照要求の発生確率が高いページほど良くそのページをロボットが訪問するようにする。これにより、システム管理者が特別に指定しなくても、適切なデータに対してミラー化される。
 上記のような検索装置に構成例を図11に示す。
 図11の検索装置701は、図10の検索装置601にユーザ要求記録部708を追加したものである。従って、相当する部分の説明は省略し、相違する部分を中心に説明を行う。
 図12に、本検索装置701による情報収集の処理手順を示す。
 ステップS41で、利用者のアクセスログを解析し、そのサイトで良く参照されるページやサイトの情報を得る。
 ステップS42で、上記とは別にシステム管理者などにより明示的に指示されたページやサイトの情報をステップS41で得たものとマージする。
 ステップS43で、上記で得たデータを、その統計的更新確率にしたがってロボットを用いて取得する。もし、ページについて統計的更新確率情報が得られていなかったときには、そのページを含むサイトのページのわかっている統計的更新確率情報の平均値で代用する。さらに、そのサイトの統計的更新確率情報もわからない場合には、知っているすべてのサイトの統計的更新確率情報もしくはデフォルト値で代用する。この統計的更新確率情報に比例した頻度でデータを繰り返し取得する。また、あるサイトがある時刻に更新される可能性が高いことがわかったならば、その時刻よりも少し後に情報を取に行くようにする。
 さて、本検索装置701は、プロキシーも兼ねているので、利用者は検索要求でなく、単にネットワーク上の情報が欲しいときには、参照要求を検索装置701に出す。その参照要求は、WWWフロントエンド706を介して、ユーザ要求記録部708に出され、ここで要求データの記録が残される。ここで要求されたデータがキャッシュ703にあれば、それをそのまま返し、なければネットワーク700を介してデータを取りに行き、そのデータをキャッシュ703に一旦格納した後、WWWフロントエンド707を介して利用者に返す。
 このように、図11の検索装置では、利用者がどのデータに関心が高いかといった情報がユーザ要求記録部708に格納されている。従って、ロボットでデータを予め収集するときに、ロボットで取得できるすべてのデータを取ろうとするのではなく、ユーザ要求記録部708に格納されているデータと明示的に指示された取得すべきデータとを取得する。
 なお、取得すべきでないデータ群を指定して、それらはユーザ要求記録部708にあるものであっても取得しないようにしても良い。
 ところで、頻繁に更新されるデータについては、ユーザ要求記録部708の記録を見ても有効でないと考えられる。なぜならば、再び訪れたときにはそのデータが消滅している可能性が高い。従って、そのようなデータについては、サイトもしくはデータへのパスのみを有効な情報とし、同じデータでなくても同じサイトのデータならばロボットによって取得するようにする。
 例えば、以下のような番号を名前とするようなURLは一時的にのみ存在している可能性が高い。 
 http://www.tsb.co.jp/foo/1246389.html
 このような場合には、このファイルを再び取得するのではなく、このファイルへのリンクを張っているファイルを取得し、そのファイルからリンクを辿った先のファイルを取得する。
 図11の検索装置では、プリフェッチしたものが将来使われると仮定している。ここでプリフェッチする対象は、文字情報、画像、音声、動画などのメディアを任意に選択できるものとする。例えば、記憶容量の制約から文字情報のみをプリフェッチするように指定したが、そのページに動画が入っていた場合には、その動画は利用者が参照したときにネットワークを介して取りに行くか、表示されないかのいずれかになる。
 次に、図10や図11の検索装置におけるページの取得頻度に関して説明する。
 ロボットは、同じURLのページを定期的に取得しに行くが、その際、対象ページの更新頻度に応じた頻度で該ページを取り直すのが好ましい。すなわち、対象ページが統計的に一日に変更される回数に比例した回数だけ、該ページを取得しに行く。ただし、指定したデータが消滅したならば、二度とそのデータを取りに行かないようにする。また、取得したデータがハイパーリンクとなっている場合には、リンク先の情報も取りに行くことも可能である。
 また、指定したサイト群やURL群のデータについては、利用者がリロード要求を出しても、それに応じないようにする。これにより、検索サーバから同じURLに対する一定回数以上の要求がでないことが保証される。
 次に、図10や図11の検索装置における検索対象に関して説明する。
 本実施形態では、ロボットで収集したデータもプロキシーのキャッシュの中に入れておき、利用者が直接要求したデータと同じ場所で管理する。
 ここで、参照したコンテンツが暗号化されていない有料データのこともあるし、利用者のプライバシーの問題もあるので、検索システムが検索対象とするデータに制限が加えられるようにしても良い。
 制限の与え方としては、以下の条件を1つ以上組み合わせたものとする。 
 (1)ロボットで収集したものに限る、 
 (2)プロキシーとしてデータを保持しているものに限る、 
 (3)同じ名前もしくはアドレスを持つ情報については最新のものだけに限る、 
 (4)CGIなどにより動的もしくは対話的に生成された情報は除く、 
 (5)指定したサイト群やURL群に限る。
 例えば、図10において、データをキャッシュ604に入れるときに、そのデータの取得状況も記録しておく。すなわち、そのデータが、ロボットで収集したものか、利用者が直接要求したものか、CGIなどにより動的もしくは対話的に生成されたものか(これはURLのパス名にCGIやBINという文字を含むかどうかで判定する)、指定されたサイト群かURL群かなどの情報も、データと一緒に記録しておく。そして、管理者がどの種類のデータはキャッシュ内のデータについて検索が可能かどうかを指定できるようにしておく。検索システムでは、この指定に従って、条件の合うものだけをデータベース化する。
 次に、図10や図11の検索装置における収集データのアドレスの付け替えについて説明する。
 本実施形態では、収集したデータを検索装置のキャッシュに格納する際に、該収集データのアドレスもしくはURLを付け変えて格納しておいても良い。すなわち、データの位置がネットワークのある場所から検索装置内のキャッシュに移動したのであるから、ドメイン名を検索装置のドメイン名に変えるようにする。次に、パス名の先頭に元のドメイン名を付加する。例えば、以下のようにする。 
 元のURL http://www.foo.co.jp/bar/index.html 
 検索装置のドメイン名 www.search.co.jp 
 新たなURL http://www.search.co.jp/www.foo.co.jp/bar/index.html
 このようにすることにより、データのミラー化が実現できる。
 次に、図10や図11の検索装置における収集データの時刻管理について説明する。
 本実施形態では、収集データに更新時刻データも付与して管理するようにしても良い。通常のプロキシーのように同じアドレス(URL)に対しては、最新のデータのみを保持するだけでなく、過去のデータも管理して保持する。ここでの時刻は、そのデータが有効になった時刻、あるいはそれに加えて無効になった時刻とを持つ。
 有効になった時刻は、同一URLで内容が更新されたような場合には、サーバから通知される更新時刻が変化するので、その時刻が無効になった時刻になり、データそのものが消滅した場合には、アクセスに行ったことにより消滅したことが判った時刻とする。
 アドレス(URL名)は、時刻管理をするために付け替えて管理する。
 まず、データの位置がネットワークのある場所から検索装置内のキャッシュに移動したのであるから、ドメイン名を検索装置のドメイン名に変える。次に、パス名の先頭に元のドメイン名を付加する。例えば、以下のようにする。
 元のURL http://www.foo.co.jp/bar/index.html 
 検索装置のドメイン名 www.search.co.jp 
 新たなURL http://www.search.co.jp/www.foo.co.jp/bar/index.html
 さらに、これに時刻の情報も付与する。例えば、1996年3月23日16:39から1996年4月30日10:23まで有効であったデータならば、以下のようにする。
 http://www.search.co.jp/www.foo.co.jp/bar/index.html/199603231639−199604301023
 また、以下のような変形も考えられる。
 http://www.search.co.jp/www.foo.co.jp/bar/index.html/1996.3.23.16.39−1996.4.30.10.23
 なお、以上説明した本発明の実施の形態における各構成は、相当する手順あるいは手段をコンピュータに実行させるためのプログラムを作成し、これをコンピュータに実行させることにより実現可能である。
 また、上記プログラムを機械読取り可能な媒体に記録し、コンピュータがこの媒体からプログラムを読取って実行するように構成することも可能である。
 本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
本発明の第1の実施形態に係る検索装置の構成例を示す図 同検索装置の処理手順の一例を示すフローチャート 最終更新時刻によってデータベースを分担する方法を説明するための図 同実施形態に係る検索装置の他の構成例を示す図 同検索装置の処理手順の一例を示すフローチャート 同実施形態に係る検索装置のさらに他の構成例を示す図 同検索装置の処理手順の一例を示すフローチャート 同実施形態に係る検索装置のさらに他の構成例を示す図 複数のネットワークが接続された場合のシステム構成の一例を示す図 本発明の第2の実施形態に係る検索装置の構成例を示す図 本発明の第2の実施形態に係る他の検索装置の構成例を示す図 同検索装置の処理手順の一例を示すフローチャート 頻繁に変化するページのサンプリングを説明するため図
符号の説明
 100,500〜504,600…ネットワーク
 100,110,120,200,300,401,410,601…検索装置
 102,112,122,204,602…ロボット
 101,101−1,101−2,111,121,605…データベース
 131,132…WWWサイト
 133…利用者端末
 301,301−1,301−2,607…データベース・フロントエンド (DBF) 603…キャッシュ
 604…データベース化部
 606…WWWフロントエンド
 708…ユーザ要求記録部

Claims (5)

  1. ネットワーク上でロボットを用いて収集したデータをもとにデータベースを作成し、データベース検索を行なう検索システムにおいて、
     外部からの参照要求に応答して取得されたデータおよびロボットを用いて収集されたデータを保持するキャッシュ手段と、
     外部から参照要求が与えられた場合に、前記キャッシュ手段に該当するデータが保持されているならば、前記キャッシュ手段からデータを提供し、前記キャッシュ手段に該当するデータが保持されていないならば、該データを保持する本来のサーバから該データを取得して提供するデータ提供手段とを備えたことを特徴とする検索システム。
  2. 外部から参照要求されたデータについての統計処理を行って、今後参照要求されるデータを予測する予測手段と、
     予測されたデータおよび予め明示的に指定されたデータを、ロボットを用いて取得し前記キャッシュ手段にプリフェッチするプリフェッチ手段とをさらに備えたことを特徴とする請求項1に記載の検索システム。
  3. 前記プリフェッチ手段は、取得対象となるデータの更新頻度に応じた頻度で該データを取り直すことを特徴とする請求項1に記載の検索システム。
  4. 前記検索要求に応答して行う検索で対象とするデータの範囲の制約条件として、ロボットで収集されたデータに限る条件、外部からの参照要求に応答して取得されたデータに限る条件、同じ名前またはアドレスを持つデータについては最新のものだけに限る条件、動的または対話的に生成されたデータ以外のものに限る条件、および指定されたサイト群またはデータ群に限る条件のうち少なくとも1つを課すことを特徴とする請求項1に記載の検索システム。
  5. 前記キャッシュ手段は、取得されたデータにその更新時刻情報および収集時刻情報の少なくとも一方を付加して保持することを特徴とする請求項1に記載の検索システム。
JP2003285107A 2003-08-01 2003-08-01 検索システム Pending JP2004070957A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003285107A JP2004070957A (ja) 2003-08-01 2003-08-01 検索システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003285107A JP2004070957A (ja) 2003-08-01 2003-08-01 検索システム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP24504996A Division JP4025379B2 (ja) 1996-09-17 1996-09-17 検索システム

Publications (1)

Publication Number Publication Date
JP2004070957A true JP2004070957A (ja) 2004-03-04

Family

ID=32025738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003285107A Pending JP2004070957A (ja) 2003-08-01 2003-08-01 検索システム

Country Status (1)

Country Link
JP (1) JP2004070957A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087349A (ja) * 2005-09-20 2007-04-05 Mitsuhiro Ishizaka 情報共有システム
JP2011039899A (ja) * 2009-08-17 2011-02-24 Nippon Telegr & Teleph Corp <Ntt> Web情報取得方法および装置
JP2011070523A (ja) * 2009-09-28 2011-04-07 Nec Corp 文書情報収集システム、文書情報収集方法、文書情報収集プログラム
JP2011215912A (ja) * 2010-03-31 2011-10-27 Yahoo Japan Corp クローラ管理システム及び方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087349A (ja) * 2005-09-20 2007-04-05 Mitsuhiro Ishizaka 情報共有システム
JP2011039899A (ja) * 2009-08-17 2011-02-24 Nippon Telegr & Teleph Corp <Ntt> Web情報取得方法および装置
JP2011070523A (ja) * 2009-09-28 2011-04-07 Nec Corp 文書情報収集システム、文書情報収集方法、文書情報収集プログラム
JP2011215912A (ja) * 2010-03-31 2011-10-27 Yahoo Japan Corp クローラ管理システム及び方法

Similar Documents

Publication Publication Date Title
JP4025379B2 (ja) 検索システム
US7398271B1 (en) Using network traffic logs for search enhancement
AU2001290363B2 (en) A method for searching and analysing information in data networks
US7565425B2 (en) Server architecture and methods for persistently storing and serving event data
US6718365B1 (en) Method, system, and program for ordering search results using an importance weighting
US7552109B2 (en) System, method, and service for collaborative focused crawling of documents on a network
US7440968B1 (en) Query boosting based on classification
US9380022B2 (en) System and method for managing content variations in a content deliver cache
US20100057802A1 (en) Method and system for updating a search engine
JP2001101061A (ja) キャッシュサーバ
WO2008117041A1 (en) Electronic document retrieval system
US20040205049A1 (en) Methods and apparatus for user-centered web crawling
JP2004070957A (ja) 検索システム
JP3506892B2 (ja) グループ適応型情報検索装置
JP2001337973A (ja) 検索システムのメンテナンス方法及び検索システム
Li et al. A hybrid cache and prefetch mechanism for scientific literature search engines
Rajaram et al. Web caching in Semantic Web based multiple search engines
Xiao et al. A similarity-aware multiagent-based web content management scheme
JP2004348550A (ja) ブラウジング履歴管理方法および装置およびプログラム
Patel et al. Web Crawler: An Intelligent Agent Through Intellect Webbot
Moazzen et al. Caching with Relation
Fagni et al. A hybrid strategy for caching web search engine results
Xiao et al. Similarity-aware Web content management and document pre-fetching
Shenoy Improving the Performance of a Proxy Server using Web log mining
Ceri et al. Search Engines

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040601

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040802

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040907

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041105

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20041112

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041203

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20041203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071101