JP4380375B2 - 文書収集装置および文書収集用コンピュータプログラム - Google Patents

文書収集装置および文書収集用コンピュータプログラム Download PDF

Info

Publication number
JP4380375B2
JP4380375B2 JP2004075221A JP2004075221A JP4380375B2 JP 4380375 B2 JP4380375 B2 JP 4380375B2 JP 2004075221 A JP2004075221 A JP 2004075221A JP 2004075221 A JP2004075221 A JP 2004075221A JP 4380375 B2 JP4380375 B2 JP 4380375B2
Authority
JP
Japan
Prior art keywords
document
time
collection
recorded
documents
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.)
Expired - Fee Related
Application number
JP2004075221A
Other languages
English (en)
Other versions
JP2004303226A5 (ja
JP2004303226A (ja
Inventor
節 國武
惠久 川邉
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2004075221A priority Critical patent/JP4380375B2/ja
Publication of JP2004303226A publication Critical patent/JP2004303226A/ja
Publication of JP2004303226A5 publication Critical patent/JP2004303226A5/ja
Application granted granted Critical
Publication of JP4380375B2 publication Critical patent/JP4380375B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

この発明は、文書サーバ例えばウェブサーバを巡回して当該文書サーバに保管されている文書を収集する文書収集技術に関し、とくに、一定の巡回期間内になるべく多くの文書について文書情報を巡回できるようにするようにしたものである。
ネットワークで接続された種々の文書サーバ上の文書の情報を収集して、検索サービスなどのインデックスを提供する場合、収集対象となる全ての文書が、一定の時間内に最低1回は巡回されることがのぞましい。しかし、HTML文書のようにハイパーリンク構造を有した文書からリンクを抽出し、それらを収集対象のリストに追加するという方法で収集対象を増やしながら収集を行う文書収集装置の場合、収集規模を予め知ることはできない。そのため、従来技術のように巡回優先度決定を行って、優先度の高い文書を巡回するという手法が適用されることが多い。なお、以上のように文書の情報を収集して検索サービスを提供するシステムを以下では収集型サーチエンジンと呼ぶこともある。
特許文献1は、収集対象文書の更新状況を監視し、更新履歴をもとに巡回間隔を決めるようにしている(更新履歴情報から次回更新予測時刻を決め、現在時刻が更新予測時刻を過ぎているURLの全部または一部を巡回する)。しかしながら、特許文献1の手法では、過去の更新情報をもとに次回更新予測時刻を算出し、収集時刻が更新予測時刻を過ぎている文書の一部または全部を収集対象とするだけであり、頻繁に更新される文書は一定時間内に何度も収集され、更新頻度の低い文書はその間に全く収集されない、ということが起こる。
特許文献2は、人気度(例えば他のドキュメントからリファレンスされている)をもとに収集対象文書の優先度を決めて文書を収集するようにしている。この場合、人気度が低い文書はなかなか巡回を受ける機会に恵まれない。
また、具体的な問題としてはつぎのようなことがある。
収集型サーチエンジンにおいて、複数のWebサーバから文書を自動的に収集する場合、高速かつ効率的に文書を収集することが望まれる。しかしながら、例えば、メンテナンスで、応答しないサーバが存在し、当該サーバから文書を収集すると、サービス接続がタイムアウトするまで収集が停止するため、収集性能が低下する。
Webサーバ等のホストに過剰な負荷をかけないように、同時アクセス数やアクセス最短間隔を制限する場合がある。このようなホストを収集対象にして、連続して同一ホストへアクセスすると、収集性能が低下する。
特開平10−49553「情報収集方法」 米国特許明細書第5748954号「Method for searching a queued and ranked constructed catalog of files stored on a network」
この発明は、以上の事情を考慮してなされたものであり、一定時間内になるべく多くの文書が巡回されるようにする文書収集技術を提供することを目的としている。また、この発明の具体的な目的は、収集対象のホストの不応答やアクセス制限による収集性能の低下を解消することにある。
この発明によれば、上述の目的を達成するために、特許請求の範囲に記載のとおりの構成を採用している。ここでは、発明を詳細に説明するのに先だって、特許請求の範囲の記載について補充的に説明を行なっておく。
この発明の原理的な構成においては、一定時間内の巡回文書割合を高くするため、収集対象の文書のうちで実際に巡回を行う文書を決定する際、文書の更新履歴情報だけではなく、巡回履歴情報や基準時刻を使う。そして、巡回優先度の判定基準を複数用意して、動的に変更できるようにする。
具体的には、ネットワークを介して接続された文書サーバ上の文書情報を収集し、各文書の特性・属性情報を算出、管理することによりユーザが要求する種類の文書の情報、または、文書の位置情報を提供する文書情報提供サーバにおいて文書サーバ上の文書の巡回優先度、または巡回すべきかどうかを決定し、優先度が高い文書を先に巡回して、あるいは巡回すべき文書のみを巡回し、文書の収集を行う。このとき、巡回優先度を決定する際に使用する関数や定数の情報を複数用意して、それらを動的に変えながら収集を行うことによって、収集時間に余裕があれば次の基準で優先度が高いと判定されたものを巡回する。これにより、文書サーバ上の文書に対して、一定の収集時間中に実際に巡回できる文書の割合がなるべく高くなるようにする。
より具体的な構成では、収集した文書がハイパーリンク構造を有しており、文書から抽出したリンクを巡回対象の文書リストに追加する手段をもった前述の文書情報提供サーバにおいて、サーバのドメイン名やサーバ内のディレクトリ名でリンクの種類を区別して、除外されていないリンクだけを巡回対象の文書リストに追加する。このようにすると、リンク先が分散している場合であっても、収集対象を企業内のウェブ文書に限定できる。
また、巡回開始時刻からの経過時間が所定の時間に達したら収集を打ち切るようにすることも好ましい。
さらにこの発明を説明する。
この発明の一側面によれば、上述の目的を達成するために、ネットワークを介して接続された文書サーバ上の文書を収集する文書収集装置に:上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する巡回決定要素属性記憶手段と;複数の基準のうちの1つを選択する手段と;選択された基準に基づいて上記巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定手段と;巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得手段とを設けるようにしている。
この構成においては、基準を切り換えて、もって、所定の巡回時間内に実際に巡回できる文書の割合を高くすることが可能になる。
文書収集装置は、いわゆるクローラとして用いることができ、この文書装置とインデクサと検索装置本体とを用いていわゆるロボット巡回型の検索エンジンを構成できが、この発明はこれに限定されず、ひろく文書収集に適用できる。
この構成において、上記巡回決定要素属性は、例えば、上記文書に対する巡回予定時刻、あるいは、上記文書の更新予測時刻である
また、上記文書のすべてについて巡回すべきかどうかを判断し終え、必要な巡回を終了した後、文書収集の終了条件が満たされていない場合には、上記基準を切り換えて文書収集動作を繰り返してもよい。上記文書収集の終了条件の1つは、文書収集の経過時間が所定の制限時間になる。また他の文書収集の終了条件は、文書収集に伴う文書アクセス回数が所定の制限回数になることである
また、上記文書について文書取得の効率を低下させるかどうかに基づいて巡回すべきかどうかを判断してもよい。例えば、上記文書についてタイムアウトの可能性に基づいて巡回すべきかどうかを判断してタイムアウトの可能性が高い文書の巡回をスキップし、必要な巡回を終了した後、文書収集の終了条件が満たされていない場合には、スキップした文書について巡回を行なうようにしてもよい。また、同一ホストへのアクセスの連続回数に基づいて文書を巡回すべきかどうかを判断して所定数を越えて同一ホストにアクセスする場合には文書の巡回をスキップし、必要な巡回を終了した後、文書収集の終了条件が満たされていない場合には、スキップした文書について巡回を行なうようにしてもよい。
この発明の他の側面によれば、上述の目的を達成するために、ネットワークを介して接続された文書サーバ上の文書を収集する文書収集装置に:上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する第1巡回決定要素属性記憶手段と;所定の基準に基づいて上記第1巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定手段と;上記巡回決定手段により巡回すべき文書として選択されなかった文書の巡回決定要素属性を受け取って記憶する第2巡回決定要素属性記憶手段と;巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得手段と;巡回を終了すべきかどうかを判別する巡回終了判別手段とを設け;上記第1巡回決定要素属性記憶手段のすべて文書について巡回すべきかどうかを判別し終え、かつ、巡回すべき文書を取得し終えたときに、上記については巡回終了判別手段が巡回を終了すべきと判別していない場合には、上記第2巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定し、巡回すべき文書について文書を取得するようにしている。
ネットワークを介して接続された文書サーバ上の文書を収集する文書収集装置に:上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する巡回決定要素属性記憶手段と;複数の基準のうちの1つを選択する手段と;選択された基準に基づいて上記巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定手段と;巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得手段とを設けるようにしている。
巡回すべきでないと判別された文書、典型的には、前回タイムアウトを伴ったり、同一ホストへの連続アクセスとなる文書については巡回をスキップし、効率よく収集可能と予測される文書のみ収集し、その後、余裕があるときには第2巡回決定要素属性記憶手段を算用してスキップした文書の巡回を行なうので、効率よく文書を収集できる。第2巡回決定要素属性記憶手段のレコードは任意のキーに基づいてソートして文書収集基準を切り替えることもできる。第2巡回決定要素属性記憶手段を複数の記憶部(キューテーブル)から構成し、ハッシュ値に基づいて振り分けて、上記ソート操作等を効率よく行なうようにしても良い。
なお、この発明は装置またはシステムとして実現できるのみでなく、方法としても実現可能である。また、そのような発明の一部をソフトウェアとして構成することができることはもちろんである。またそのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品もこの発明の技術的な範囲に含まれることも当然である。
この発明の上述の側面および他の側面は特許請求の範囲に記載され以下実施例を用いて詳述される。
この発明によれば、所定の基準に基づいて適切に文書を巡回収集できる上に基準を適宜変更して予定期間内により多くの文書を巡回収集するようにできる。たとえば、同一の文書が必要以上に巡回されるのを防ぎ、収集対象の文書のうち巡回できる割合を高くすることができる。
以下、この発明の実施例について説明する。
まずこの発明を原理的な構成を実装する実施例1について説明する。
図1は、この発明の実施例1の文書収集技術を利用した文書検索システムを示しており、この図において、検索エンジン20、文書サーバ13、14、ユーザ端末16がネットワーク15に接続されている。文書サーバ13、14は例えばウェブサーバである。検索エンジン20は、文書収集装置(クローラ)10、インデクサ11、検索装置12等を含んで構成されている。検索エンジン20の文書収集装置10は、巡回対象の文書のアドレスの情報(図2のキューテーブル102a)を予め有しており、例えば予め定められた時刻に巡回を開始し、文書サーバ13、14等の対象文書をアクセスする。例えば、HTTPのHEADメソッドにより更新情報を受取り、新たに更新が行われていることが判明したならば、当該文書をGETメソッドにより収集して処理を行う。文書収集処理は、後述するように巡回開始後所定時間例えば1時間経過したときに打ち切られるようにすることが好ましい。文書収集に際しては、後述するように、更新時刻、前回巡回時刻等を記録保持する。
文書収集装置10は収集した文書のアンカータグ等を参照してリンク先の文書のアドレスを取得し、新たに巡回対象(キューテーブル102a)に含める。文書のリンク先を重み付け加算等して人気度を計算し、巡回の優先順位を設けるようにしてもよい。この優先順位は検索結果のランキングにも用いることができる。
インデクサ11は、文書収集装置10が収集した文書について形態素解析等を行い、インデックスを生成し、検索装置12に供給する。
ユーザはユーザ端末16を用いて検索エンジンにキーワード検索要求を行い、その検索結果に基づいて文書サーバ13、14等の文書にアクセスする。
図2は、上述実施例の文書収集装置10の構成を機能ブロック表現で示しており、この図において、文書収集装置10は、文書情報取得部101、収集情報格納部102、巡回判定部103、判定規範情報設定部104、リンク抽出部105等を有している。
文書情報取得部101は、収集情報格納部102(より具体的にはキューテーブル102a)の文書アドレス情報を用いて対象の文書サーバ13、14等から文書情報(属性情報やコンテンツ)を取得する。リンク抽出部105は、文書情報取得部101が文書サーバ13、14等から取得した文書情報のうち、ハイパーリンク構造を持つものからリンク情報を文書アドレスの形式で抽出する。抽出されたリンク情報は収集情報格納部102(キューテーブル102a)に格納される。収集情報格納部102は、収集対象文書の文書アドレスや、その文書の巡回履歴情報、取得履歴情報、更新履歴情報などを保持する。これらの情報は図3に示すようなスキーマでキューテーブル102aに保持される。これら情報は以下のようなものである。
(1)文書アドレス情報には、例えば、URL文字列がある。(2)巡回履歴情報には、例えば、前回巡回時刻がある。(3)取得履歴情報には、例えば、前回取得時刻がある。(4)更新履歴情報には、例えば、過去の更新時刻(有限個)、過去の更新間隔(有限個)、次回更新予測時刻などがある。次回更新予測時刻は格納せずに、必要になった都度計算するようにしてもよい。
その他、リンク数等に基づいて付与される人気度等が保持されていてもよい。これにより優先度を規定してもよい。
巡回判定部103は、収集情報格納部102に格納されている履歴情報にもとづいて、文書を巡回するか否かを決定し、巡回することが決定した文書の文書アドレス情報を出力する。
巡回判定方法として、例えば、つぎのようなものがある。
(a)まず、次回更新予測時刻を以下のようにして決定する。更新間隔が短いものは、次回巡回予定時刻を早めに設定する。最終更新時刻と取得時刻の差が少ないものは、早めに次回巡回予定時刻を設定する。
(b)つぎに、次回更新予測時刻と、前回巡回時刻と、巡回時に指定される基準時刻とクライテリア関数から文書を巡回するか否かを決定する。
詳細については図4〜図7を参照して後述する。
判定規範情報設定部104は、収集情報格納部102に格納された情報を使って判定規範を決定し、巡回判定部103に判定規範情報を設定する。
判定規範情報の決め方には、例えば、一定時間に巡回した累計文書数で決めたり、更新予測時刻の度数分布(ヒストグラム)に基づいて決めたりするものがある。
判定規範情報設定部104によるクライテリア関数の切り替え例について説明する。
巡回判定部103が1つのクライテリア関数を使って収集情報格納部102に格納された文書アドレス情報を判定しながら巡回・収集を行う処理において、以下の条件[A]を満たした場合には、クライテリア関数を別のものに変えて処理を継続する。
条件[A]
・文書アドレス情報を一通りチェックし尽くした。
・所定の時間に達していない。
[例1]
1つの文書アドレスを1日に1回だけ巡回するように設定されている場合に、翌日するはずの文書が今日、巡回されるようにする。例えば、クライテリア関数を以下のように変更する。
クライテリア関数:fc(x,y)=x−y+c …[関数1]
(ただしxは巡回を開始した基準時刻、yは巡回予定時刻、cはマージン(単位は時間である)
旧 f0(x,y)=x−y
新 f24(x,y)=x−y+24
クライテリア関数を変更するには、例えば、関数ポインタへの配列を用意し、配列のインデクスをパラメータとして用いる方法がある。他に、cの値を直接パラメータとして受け渡す方法もある。
[例2]
クライテリア関数を選択するためのヒント情報として収集情報格納部に格納された巡回予定時刻の度数分布を使用する。
ステップ(i):基準時刻に対して所定の時間幅ごとに度数を集計する整数配列を用意する。
ステップ(ii):巡回処理を開始する。
ステップ(iii):収集情報格納部から読み出した文書アドレス情報のうち、巡回判定部が巡回しない、と決めた文書アドレス情報に対して基準時刻と巡回予定時刻との差分の値を求め、ステップ(i)で用意した度数集計用配列に反映させる。
ステップ(iv):条件[A]を満たしたら、度数集計用配列に記録された度数値を先頭のインデクスから順に加算し、合計値が所定の値(*)を超過するインデクスを記憶する。所定の値(*)はタイムアウト時間に対する残り時間に基づいて決定してもよい。
ステップ(v):ステップ(iv)で記憶したインデクス値とステップ(i)で設定した時間幅の値とを掛け合わせその結果の値に基づいてクライテリア関数を決める。(例えば、[関数1]のcの値として適用するのでもよい。)
図4および図5を組み合わせてなるフローチャートは、上述の[関数1]により巡回判定を行うフローを示しており、さらに、全文書を巡回しても時間(巡回制限時間)が余っているときには[関数1](fc)を変更してより多くの文書が巡回対象になるようにするものである。これは上述の(例1)に対応する。図4および図5の処理は以下のとおりである。
[ステップS10]:巡回開始時刻を記録する。
[ステップS11]:キューテーブル102aをオープンする。
[ステップS12]:キューテーブル102aから次のレコードを取り出す。
[ステップS13]:キューテーブル102aを最後まで参照したかどうかを判別し、最後まで参照した場合にはステップS24に進み、そうでない場合にはステップS14へ進む。
[ステップS14]:「基準時刻−前回巡回時刻<巡回閾値時間」が満たされるかどうか判別し、満たされる場合には、巡回をスキップするためにステップS23に進み、満たされない場合にはステップS15へ進む。
[ステップS15]:[関数1](fc)で巡回判定を行なう。巡回すべきと判定された場合にはステップS16へ進み、そうでない場合には巡回をスキップするためにステップS23に進む。
[ステップS16]:文書アドレス情報を取り出す。
[ステップS17]:HTTPリクエスト(HEADメソッド)により文書の更新時刻情報を取得する。
[ステップS18]:レコードの更新時刻情報と、取得した更新時刻情報とを比較する。
[ステップS19]:比較結果に基づいて、文書が前回取得時から更新されている場合(レコードの更新時刻情報が古い場合)にはステップS20に進み、そうでない場合には、ステップS22に進む。
[ステップS20]:文書を取得してインデクサ11に渡し、インデックス情報を更新する。次回巡回予定時刻を計算し、レコードの巡回予定時刻に書き込み、現在時刻を前回巡回時刻フィールドに書き込む。ステップS21へ進む。
[ステップS21]:前回更新時刻を前前回更新時刻フィールドに書き込み、更新時刻を前回更新時刻フィールドの書き込む。ステップS23へ進む。
[ステップS22]:次回巡回予定時刻を計算して巡回予定時刻フィールドに書き込み、現在時刻を前回巡回時刻フィールドに書き込む。ステップS23へ進む。
[ステップS23]:巡回経過時間が巡回制限時刻を上回っていたら巡回を終了し、そうでない場合にはステップS12へ戻り処理を繰り返す。
[ステップS24]:全文書が巡回されたら、すべきことがないので、巡回を終了し、そうでない場合にはステップS25へ進む。
[ステップS25]:[関数1](fc)を変更してステップS11へ戻り処理を繰り返す。
図6および図7を組み合わせてなるフローチャートも、上述の[関数1]を用いるものであるが、巡回予測時刻の度数分布を用いてマージンとなる時間を最適化している。これは上述の(例2)に対応するものである。図6および図7の処理は以下のとおりである。
[ステップS30]:巡回開始時刻を記録する。
[ステップS31]:キューテーブル102aをオープンする。
[ステップS32]:キューテーブル102aから次のレコードを取り出す。
[ステップS33]:キューテーブル102aを最後まで参照したかどうかを判別し、最後まで参照した場合にはステップS34に進み、そうでない場合にはステップS45へ進む。
[ステップS34]:「基準時刻−前回巡回時刻<巡回閾値時間」が満たされるかどうか判別し、満たされる場合には、巡回をスキップするためにステップS44に進み、満たされない場合にはステップS35へ進む。
[ステップS35]:[関数1](fc)で巡回判定を行なう。巡回すべきと判定された場合にはステップS36へ進み、そうでない場合には巡回をスキップするためにステップS43に進む。
[ステップS36]:文書アドレス情報を取り出す。
[ステップS37]:HTTPリクエスト(HEADメソッド)により文書の更新時刻情報を取得する。
[ステップS38]:レコードの更新時刻情報と、取得した更新時刻情報とを比較する。
[ステップS39]:比較結果に基づいて、文書が前回取得時から更新されている場合(レコードの更新時刻情報が古い場合)にはステップS40に進み、そうでない場合には、ステップS42に進む。
[ステップS40]:文書を取得してインデクサ11に渡し、インデックス情報を更新する。次回巡回予定時刻を計算し、レコードの巡回予定時刻に書き込み、現在時刻を前回巡回時刻フィールドに書き込む。ステップS41へ進む。
[ステップS41]:前回更新時刻を前前回更新時刻フィールドに書き込み、更新時刻を前回更新時刻フィールドの書き込む。ステップS43へ進む。
[ステップS42]:次回巡回予定時刻を計算して巡回予定時刻フィールドに書き込み、現在時刻を前回巡回時刻フィールドに書き込む。ステップS43へ進む。
[ステップS43]:基準時刻と巡回時刻との差を度数集計用配列に記録する。ステップS44へ進む。
[ステップS44]:巡回経過時間が巡回制限時刻を上回っていたら巡回を終了し、そうでない場合にはステップS32へ戻り処理を繰り返す。
[ステップS45]:全文書が巡回されたら、すべきことがないので、巡回を終了し、そうでない場合にはステップS46へ進む。
[ステップS46]:度数集計結果を用いて[関数1](fc)を変更してステップS31へ戻り処理を繰り返す。
つぎに実施例1の変形例について説明する。
図8は第1の変形例を示している。図8において、図2と対応する箇所には対応する符号を付す。この変形例では、収集範囲情報格納部106を設けている。この収集範囲情報格納部106は、文書収集装置10が巡回する文書アドレスの範囲を定める情報を保持する。リンク抽出部105は、収集範囲情報格納部106に格納された情報をもとに収集対象に該当するリンク情報だけを収集情報格納部102に出力する。アドレス範囲情報には、例えば、サーバのドメイン名やサーバ内のディレクトリ名などがある。これにより、情報収集対象外のアドレスをアンカー情報として含む文書を巡回しても、そのアドレスを巡回対象から排除でき、例えば、企業内の文書検索システムに適用する場合に最適である。
図9は第2の変形例を示している。図9においても図2と対応する箇所には対応する符号を付して詳細な説明を省略する。この変形例では、収集中断指示部107を設けている。この収集中断指示部107は、所定の条件に達したら巡回判定部へ収集を中断する指示を出力する。収集を中断する条件には、例えば、巡回開始時刻からの経過時間などがある。この構成は、例えば、ユーザのアクセスが少ない時間帯にかぎって文書情報を収集する場合に最適である。
つぎに、サーバないしホストが応答しない場合でも収集性能を低下させないようにした実施例2の文書収集装置について説明する。
図10は実施例2の文書収集装置10の構成を機能ブロック表現で示しており、図11は、その要部を相互の関係を中心に模式的に示している。図10および図11において、図2と対応する箇所には対応する符号を付した。
図10および図11において、タイムアウト検出部108、マーク検出部109および代替キューテーブル102bが新たに設けられている。タイムアウト検出部108は文書サーバ(以下ではWebサーバともいう)にアクセスしたときにリクエストのタイムアウトを検出し、タイムアウト検出時には、当該レコードのマークフィールド(例えば図12参照)をオンにする。
つぎに、この実施例2の文書の巡回収集の基本動作を図13および図14のフローチャートをも参照して説明する。
実施例2では、文書アクセス時にタイムアウト処理がなされた文書についてキューテーブルのレコードにマークを付ける(マークフィールドをオンにする)。次回の巡回時にこのマークのあるレコードを代替キューテーブル102bに移動させ(コピーし)、マークがないレコードのみ用いて文書の巡回を行なう(S50〜S58)。主たる巡回が終了した後に余裕があれば(S52)、代替キューテーブル102bを参照して、前にタイムアップした文書を巡回していく(S59〜S64)。
具体的にはキューテーブル(巡回文書キュー)102aに格納された文書アドレス(例えばURL)と付随する文書属性を読みだし、順次に文書を収集する。文書アクセスが、当該文書に対する初回の巡回であれば収集する。初回の巡回であるか否かは、例えば、文書属性のうち前回巡回時刻が特別な値(例えば0)か否かで判定する。初回の巡回でなければ、該当するWebサーバにアクセスして、指定した文書の更新判定を行うものとする。更新判定は、例えば、文書属性のうち、最終更新時刻と、WebサーバからHTTPプロトコルによって得られる「Last−Modified」の値を比較することで行う。文書の更新判定結果として、前回に収集した文書に対して、更新されていれば、文書を再度収集する。更新されていなければ、収集しない。いずれの場合も、巡回文書キューの所定のエントリに巡回時刻を記録する。
タイムアウト検出部108は、文書アクセスが、所定のタイムアウト時間の経過ののち、更新判定または収集が終了しない場合は、アクセスを中断し、かつ、キューテーブル102aの所定のエントリ(レコード)にタイムアウトのマークを付与する。タイムアウトのマークは、前回巡回時に更新判定または収集が完了しなかったことを表す。キューテーブル102aから順にURLを読み出す際に、タイムアウトのマークが付与されたエントリであれば、マーク検出部109がこれを判別して、該URLと付随する文書属性を代替キューに移動し、文書アクセスはせずに、次のURLを巡回文書キューから読み出す。このステップを繰り返す。所定数の文書アクセスを終えたら、終了する。
すべてのURLを読み出して、かつアクセス数が所定数(制限アクセス数)に達していなければ、キューテーブル102aに代えて、代替キューテーブル102bからURLを読み出す。読み出したURLは、前回巡回した際に、タイムアウトしたものであるため、アクセスしたら再度タイムアウトすることもある。タイムアウトをせず更新判定または文書の収集がなされた場合には、巡回文書キューの当該エントリのタイムアウトのマークを消す。
以上の動作によって、例えば、一時的なWebサーバーのサービス停止等の理由により、アクセス不能な文書のアドレスがキューテーブル102aに存在している場合に、キューテーブル102aにて定まるアクセスの順において、正常にアクセス可能な文書に対するアクセスが、前記アクセス不能な文書へのアクセスを追い越すことが可能となるため、正常にアクセス可能な文書の巡回性能が向上する。
例えば、図15(a)に示すように前回の巡回で10個の文書のレコード(エントリ)にタイムアウトがマークされているとする。状況が変わらなければ、実施例2を採用しない通常の処理では、20個の文書を順に読み出すのに、1001秒かかってしまう。ただし、タイムアウト時間を100秒とし、通常のアクセス時間を0.1秒とした。実施例2によれば、20個の文書を読みだすのに2秒しかかからない。タイムアウトした文書のエントリについては当初は巡回せずに図15(d)に示すように代替キューテーブル102bに移動させているので、当該20個の文書についても順調に読み出しが行なわれ、20×0.1秒=2秒しか時間がかからない。以降、同様に、制限アクセス回数に至るまで、マークのないエントリを用いて巡回を行い、こののち、制限アクセス回数にいたっていなければ、代替キューテーブル102bを参照して前にタイムアウトした文書について巡回を試みる。
この実施例の原理は、基本的には、実施例1と同様であり、所定の巡回を終了した後、文書収集に予定されている制限時間や制限アクセス数等が残っている場合等、巡回を継続できる場合には、基準を切り替えて収集を繰り返すことである。より具体的には、キューテーブル102aの以前の走査で巡回しなかったものを、代替キューテーブル102bに移し、代替キューテーブル102bを整列処理などすることで、巡回基準を切り替えることを実現する。すなわち、文書を巡回収集する際に、所定の基準で順序つけられたキューテーブル102a以外に、代替キューテーブル102bを持ち、キューテーブル102aを走査した際に、所定の条件で文書を代替キューテーブル102bに移動し、キューテーブル102aの走査が終了したのち、代替キューテーブル102bの走査をし、文書の収集の順序をキューテーブル102aに格納されたものと異なるアクセス順でアクセス(追い越し)することを可能とする。それによって、所定の基準で整列した文書収集の順序を、状況に応じて動的に変更できるので、より柔軟で効率的な巡回方式が実現できる。
実施例3においては、過去に、応答がなかった文書のエントリを、代替キューテーブル102bに移すことで、巡回できる(可能性の高い)文書の巡回を優先的に行うような制御をすることができる。
なお、どのような基準で、キューテーブル102aのエントリを代替キューテーブル102bに移すかは、実施例2のほかに種々なバリエーションが考えられる。
また、実施例1においては、とくに代替キューテーブル102bについては言及しなかったが、代替キューテーブル102bを用いることが可能なことは明らかである。この場合、巡回予定時刻に到達していない文書を、代替キューテーブル102bに移し、キューテーブル102aをすべて、走査し終えた次点で、予定した時間内に、予定した巡回数に到達しない場合は、代替キューテーブル102bに移動した文書にアクセスをすればよい。もちろん、代替キューテーブル102bを用いなくても良い
実施例2では、巡回終了条件を制限アクセス回数により判断したが、制限巡回時間により判断しても良いし、双方を巡回終了条件としても良い。
つぎに、同一のサーバないしホストに連続してアクセスすることを抑制して収集性能を向上させるようにした実施例3の文書収集装置について説明する。
図16は実施例3の文書収集装置10の構成を機能ブロック表現で示しており、図17は、その要部を相互の関係を中心に模式的に示している。図16および図17において、図2または図10と対応する箇所には対応する符号を付した。
図16および図17において、同一ホスト連続アドレス検出部110が新たに設けられている。同一ホスト連続アドレス検出部110は、同一のホストへのアクセスが所定数を越えて行なわれることを検出するものである。
つぎに、この実施例3の文書の巡回収集の基本動作を図18および図19のフローチャートをも参照して説明する。
この実施例では、キューテーブル102aから読み出されたURL列が、同一ホストへの連続したアクセスとなる場合に対処する。すなわち、基本的にはキューテーブル102aを参照して文書を巡回する(S70〜S78)。そして所定以上の連続する同一ホストへのアクセスが検出された場合に、第2の代替キューに移動する。指定された巡回間隔内に、第2の代替キューに移動したURL以外のURLの巡回が終了した場合に限り、第2の代替キューからURLを読み出して巡回を行う(S79〜S83)。
具体的には、キューテーブル102aに格納された文書アドレス(例えばURL)と付随する文書属性とを読みだす。初回の収集であれば収集し、初回の巡回でなければ、該当するWebサーバにアクセスして、指定した文書の更新判定を行う。文書の更新判定結果として、前回に収集した文書に対して、更新されていれば、文書を再度収集する。更新されていなければ、収集しない。
この実施例では、キューテーブル102aから順にURLを読み出す際に、同一のホストからの連続したアクセスが検出された場合、連続数を計数する。例えば、前回のアクセスしたホスト番号を記録しておき、今回のアクセスのホスト番号と同一であれば、連続数をインクリメントする。連続数が所定数(連続数の上限)を越えれば、該URLと付随する文書属性を代替キューテーブル(102b)に移動(コピー)し、該URLの文書にアクセスせずに、次のURLを読み出す。ホスト番号が前回アクセスしたホスト番号と異なれば、連続数に1を設定し、該URLにアクセスを行う。このステップを繰り返す。所定数の文書アクセスを終えたら、終了する。すべてのURLを読み出して、かつアクセス数が前記所定数に達していなければ、キューテーブル102aに代えて、代替キューテーブル102bからURLを読み出し、巡回または収集を続ける。この場合は、同一ホストへのアクセスが所定数を越えて連続して行われることもありうる。
以上の動作によって、例えば、2つのホストのURLが混在してキューテーブル102aに格納されており、第1のホストのURLが非常に多く存在し、第2のホストのURLが少なく、かつ、第1のホストのURL数と第2のホストのURL数の比で定まる割合で、キューテーブル102aから、第1のホストのURL数と第2のホストのURLが混在して読み出される場合において、少数しかない第2のホストのURLの巡回と収集が、先に終了するように制御することが、可能となる。例えば、連続数の上限を2と設定することで、第2のホストに巡回対象URLが存在する場合、少なくとも3URLにつき1URLは、第2のホストへのアクセスが行われることになる。
連続数の上限は、固定的な数値としてもよいし、同一ホストへ並行してアクセス可能なスレッド数の上限値など動的に定まる数値や、前記数値に一定値を加えたり、乗算して定まる数としてもよい。その場合は、コンピュータ資源をより有効に活用できるため、収集効率を上げることができる。とくにサーバのアクセス制限を解除して初期に文書情報を取得する場合にはスレッド数に対応させた連続数として効率よく文書情報を取得できる。
例えば、図20(a)に示すように同一ホストへのアクセスが連続する場合(host1、host2、host3へのアクセスがそれぞれ5回連続する)、連続した同一ホストへアクセスする際は間隔を1秒あけるような制御(アクセス間隔モデレーション)を行い、正味のアクセスに0.1秒かかるとすると、実施例3を採用しない通常の処理では、200個の文書を読みだすのに660秒かかる(図20(b))。実施例3では同一ホストへの連続アクセスをスキップするので、200個の文書を読みだすのに20秒しかかからない(図20(c))。以降、同様に、制限アクセス回数に至るまで、同一ホストへの連続アクセスをスキップしながら巡回を行い、こののち、制限アクセス回数にいたっていなければ、代替キューテーブル102bを参照して、連続アクセスのためにスキップした文書を巡回する(図20(d))。
実施例3によれば、連続するホストへのアクセスを避けることで、収集速度の向上や収集時間の短縮を図ることができる。すなわち、なるべく多くのホストを同時並行的に巡回、収集することで、収集処理の並列性を向上させ、結果として巡回収集速度をあげる。また、同一ホストに対してアクセス間隔モデレーションを行っていない場合でもは、Webサーバー側の負荷を考慮すれば同一ホストへのアクセスが連続しないほうが、収集時間が短縮できる可能性がある。
これと同等のことを実現するには、キューテーブル(巡回文書キュー)102aの文書アドレスを、状況に応じて、所望の順序や所望する制約を満たすように、整列しなおす方法もある。 整列操作は、単純にキーの値の昇順に並べ替えるとしても、個数Nに対して、計算複雑さのオーダとしてはO(N*logN)以上の計算時間が必要とされている。また、キューテーブル102aは、ファイルやデータベースに格納されていることが一般的であり、かつ、収集対象のWebサービスが大規模である場合には、格納文書数も多い。文書数が多いと、メモリ上で高速に整列しなおすことが出来ない場合は、2次記憶装置(磁気ディスク装置等)のアクセスが増え、さらに処理に時間がかかる。実施例3の文書収集装置は、このような問題を伴うことなく、効率よく文書を収集できる。
以上で実施例の説明を終了する。
なお、この発明は上述の実施例に限定されるものではなくその趣旨を逸脱しない範囲で種々変更が可能である。例えば、上述では、検索エンジンのクローラの例を挙げて文書収集装置を説明したが、他の用途で文書を収集する場合にも適用できることはもちろんである。また上述の例では更新履歴に基づいて巡回予定時刻等を算出し、もって巡回が必要かどうか判断したが、その他の要素、例えば、人気度を用いて優先度を決定して巡回を行う場合にも判定基準を切り換えて巡回を行うようにしてもよい。例えば、デフォルトでは人気度で一定の閾値を基準に巡回し、その後、時間があれば、巡回予定時刻、更新予定時刻、アドレス(ドメイン)等に基づいて再度巡回を試みるようにしてもよい。
また、上述実施例2および実施例3では単一の代替キューテーブルしか用いなかったが、図21に示すように、文書エントリをキューテーブル(巡回文書キュー)から代替キューテーブルに移す際に、代替キューテーブルを一つではなく、複数保持し、特定のカテゴリ(例えばURLのパターンのハッシュ値)によって複数の代替キューテーブルのうちの一つを選択して、移動するような構成を採用しても良い。
複数の代替キューテーブルを採用すると、巨大な代替キューテーブルを1個持つ場合に比して、代替キューテーブルに必要な処理を、分割統治アルゴリズムによって行うことができる。例えば、代替キューテーブルを選択するハッシュ関数を、うまく選ぶことで、統計的には均等な長さの代替キューに分割できる。代替キューがK個であったとすると、代替キューの文書数は、平均的には1/Kになることが期待できる。このとき、個々の代替キューが十分物理メモリ上で処理できる範囲の文書数である場合には、あるいは、CPUのキャッシュメモリに全部が格納できる場合には、高速に処理が可能となる。例えば所定のキーによる整列処理が高速に実施できる。代替キューから読み出す際には、よく知られたマージソートの手法を用い、すなわち、ソート済みのK個の代替キューの先頭をしらべて、キーの値がもっとも小さなものを選択して読み出すことで、分割前の大きなキューをソートするのと同じ順序で読み出すことができ、かつ、ソート整列処理にかかる時間は減ることが期待できる。
この発明の実施例1の文書収集装置を利用した文書検索システムを全体として示す図である。 この発明の実施例1の文書収集装置の構成例を示すブロック図である。 上述実施例1の文書収集装置で用いるキューテーブルのスキーマの例を説明する図である。 上述実施例1の文書収集装置の動作例を説明するフローチャートの一部を示す図である。 上述実施例1の文書収集装置の動作例を説明するフローチャートの残りの部分を示す図である。 上述実施例1の文書収集装置の他の動作例を説明するフローチャートの一部を示す図である。 上述実施例1の文書収集装置の他の動作例を説明するフローチャートの残りの部分を示す図である。 上述実施例1の文書収集装置の変形例を説明するブロック図である 上述実施例1の文書収集装置の他の変形例を説明するブロック図である。 この発明の実施例2の文書収集装置の構成例を示すブロック図である。 上述実施例2の要部の関係を模式的に示すブロック図である。 上述実施例2の文書収集装置で用いるキューテーブルのスキーマの例を説明する図である。 上述実施例2の文書収集装置の動作例を説明するフローチャートの一部を示す図である。 上述実施例2の文書収集装置の動作例を説明するフローチャートの残りの部分を示す図である。 上述実施例2の効果を説明する例である。 この発明の実施例3の文書収集装置の構成例を示すブロック図である。 上述実施例3の要部の関係を模式的に示すブロック図である。 上述実施例3の文書収集装置の動作例を説明するフローチャートの一部を示す図である。 上述実施例3の文書収集装置の動作例を説明するフローチャートの残りの部分を示す図である。 上述実施例3の効果を説明する例である。 上述実施例2および実施例3の変形例を説明する図である。
符号の説明
10 文書収集装置
11 インデクサ
12 検索装置
13、14 文書サーバ
15 ネットワーク
16 ユーザ端末
20 検索エンジン
101 文書情報取得部
102 収集情報格納部
102a キューテーブル
102b 代替キューテーブル
103 巡回判定部
104 判定規範情報設定部
105 リンク抽出部
106 収集範囲情報格納部
107 収集中断指示部
108 タイムアウト検出部
109 マーク検出部
110 同一ホスト連続アクセス検出部

Claims (4)

  1. ネットワークを介して接続された文書サーバ上の文書を上記文書サーバを巡回することにより収集する文書収集装置において、
    上記文書サーバ上の文書にアクセスした際にタイムアウト処理がなされた文書とタイムアウト処理がなされていない文書を区別して記録する記録手段と、
    上記記録手段で記録された内容に基づき、次回の巡回の際に、タイムアウト処理がなされていないと記録されている文書へのアクセスを、タイムアウト処理がなされたと記録されている文書より先にアクセスを行うことにより文書の収集を行い、該タイムアウト処理がなされていないと記録されている文書の収集が終了したときに、文書収集に予定されている制限時間が残っている場合は、前記タイムアウト処理がなされたと記録されている文書の収集を行う制御手段とを有することを特徴とする文書収集装置。
  2. 上記記録手段は、
    上記タイムアウト処理がなされたと記録されている文書の収集が行われた場合は、該文書をタイムアウトがなされていない文書として記録する請求項1記載の文書処理装置。
  3. 上記記録手段は、
    上記取得した文書の最終更新時刻も記録し、次回の該文書へのアクセス時に該文書の最終更新時刻が更新されていない場合は、該文書の取得は行わない請求項1または2記載の文書収集装置。
  4. コンピュータを、ネットワークを介して接続された文書サーバ上の文書を上記文書サーバを巡回することにより収集する文書収集装置として機能させるコンピュータプログラムであって、
    上記コンピュータを、
    上記文書サーバ上の文書にアクセスした際にタイムアウト処理がなされた文書とタイムアウト処理がなされていない文書を区別して記録する記録手段、
    上記記録手段で記録された内容に基づき、次回の巡回の際に、タイムアウト処理がなされていないと記録されている文書へのアクセスを、タイムアウト処理がなされたと記録されている文書より先にアクセスを行うことにより文書の収集を行い、該タイムアウト処理がなされていないと記録されている文書の収集が終了したときに、文書収集に予定されている制限時間が残っている場合は、前記タイムアウト処理がなされたと記録されている文書の収集を行う制御手段
    として機能させることを特徴とするコンピュータプログラム。
JP2004075221A 2003-03-19 2004-03-16 文書収集装置および文書収集用コンピュータプログラム Expired - Fee Related JP4380375B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004075221A JP4380375B2 (ja) 2003-03-19 2004-03-16 文書収集装置および文書収集用コンピュータプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003075725 2003-03-19
JP2004075221A JP4380375B2 (ja) 2003-03-19 2004-03-16 文書収集装置および文書収集用コンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2004303226A JP2004303226A (ja) 2004-10-28
JP2004303226A5 JP2004303226A5 (ja) 2007-04-05
JP4380375B2 true JP4380375B2 (ja) 2009-12-09

Family

ID=33421863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004075221A Expired - Fee Related JP4380375B2 (ja) 2003-03-19 2004-03-16 文書収集装置および文書収集用コンピュータプログラム

Country Status (1)

Country Link
JP (1) JP4380375B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4795258B2 (ja) * 2007-01-29 2011-10-19 三菱電機株式会社 Webページ再収集方式
JP5247192B2 (ja) * 2008-03-14 2013-07-24 三菱電機株式会社 周期更新データ管理システム
JP5321258B2 (ja) * 2009-06-09 2013-10-23 日本電気株式会社 情報収集システムおよび情報収集方法ならびにそのプログラム
JP5487854B2 (ja) * 2009-09-28 2014-05-14 日本電気株式会社 文書情報収集システム、文書情報収集方法、文書情報収集プログラム
JP6101056B2 (ja) * 2012-11-26 2017-03-22 株式会社日本総合研究所 情報処理装置、情報処理方法、及びプログラム
JP6011591B2 (ja) * 2013-11-29 2016-10-19 キヤノンマーケティングジャパン株式会社 サーバと文書管理システムとその処理方法及びプログラム

Also Published As

Publication number Publication date
JP2004303226A (ja) 2004-10-28

Similar Documents

Publication Publication Date Title
US7653623B2 (en) Information searching apparatus and method with mechanism of refining search results
KR102036419B1 (ko) 그래프 처리 성능 향상을 위한 복수 계층 캐싱 방법 및 복수 계층 캐싱 시스템
US9305091B2 (en) Anchor tag indexing in a web crawler system
US8266134B1 (en) Distributed crawling of hyperlinked documents
TWI519948B (zh) 記憶體使用掃描
US6807607B1 (en) Cache memory management system and method
US20060294311A1 (en) Dynamic bloom filter for caching query results
JP4371382B2 (ja) アクセス対象情報検索装置
KR19990064246A (ko) 월드 와이드 웹상에 페이지를 위치 설정하고 네트워크 컴퓨터로부터 문서를 위치 설정하는 시스템 및 그 방법
JP2006107506A5 (ja)
JP2003519834A (ja) メモリ管理によって参照の局所性を改善するための方法および装置
KR101744892B1 (ko) 시계열 계층 인덱싱을 이용한 데이터 검색 시스템 및 데이터 검색 방법
JP4380375B2 (ja) 文書収集装置および文書収集用コンピュータプログラム
CN107704507A (zh) 数据库处理方法和设备
CN109189343B (zh) 一种元数据落盘方法、装置、设备及计算机可读存储介质
EP1215590B1 (en) Method and system for scalable, high performance hierarchical storage management
US9087087B2 (en) Performing index scans in a database
CN115408342A (zh) 文件处理方法、装置及电子设备
US20060026187A1 (en) Apparatus, method, and program for processing data
JP5461215B2 (ja) データベースシステム
US7502773B1 (en) System and method facilitating page indexing employing reference information
KR20060075798A (ko) 해외 과학기술 전자원문 수집/색인/추출 시스템과 그 방법및 그 방법에 대한 컴퓨터 프로그램을 저장한 기록매체
US20020078133A1 (en) Information collection apparatus and method
JP2004303226A5 (ja)
JPH09244979A (ja) 双方向サービス資源配置制御方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070216

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090616

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: 20090901

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090914

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4380375

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees