(57)【要約】  【課題】  一定の巡回期間内になるべく多くの文書について文書情報を取得できるようにする。  【解決手段】  文書情報取得部１０１は、収集情報格納部１０２の文書アドレス情報を用いて対象の文書サーバ１３、１４等から文書情報を取得する。収集情報格納部１０２は、収集対象文書の文書アドレスや、その文書の巡回履歴情報、取得履歴情報、更新履歴情報などを保持する。巡回判定部１０３は、収集情報格納部１０２に格納されている履歴情報にもとづいて、文書を巡回するか否かを決定し、巡回することが決定した文書の文書アドレス情報を出力する。判定規範情報設定部１０４は、収集情報格納部１０２に格納された情報を使って判定規範を決定し、巡回判定部１０３に判定規範情報を設定する。例えば、一定時間に巡回した累計文書数や、更新予測時刻の度数分布に基づいて判定規範を最適化する。【選択図】  図２
2004303226.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された文書サーバ上の文書を収集する文書収集装置において、
上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する巡回決定要素属性記憶手段と、
複数の基準のうちの１つを選択する手段と、
選択された基準に基づいて上記巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定手段と、
巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得手段とを有することを特徴とする文書収集装置。
【請求項２】
上記巡回決定要素属性は、上記文書に対する巡回予定時刻である請求項１記載の文書収集装置。
【請求項３】
上記巡回決定要素属性は、上記文書の更新予測時刻である請求項１記載の文書収集装置。
【請求項４】
上記文書のすべてについて巡回すべきかどうかを判断し終え、必要な巡回を終了した後、文書収集の終了条件が満たされていない場合には、上記基準を切り換えて文書収集動作を繰り返す請求項１、２または３記載の文書収集装置。
【請求項５】
上記文書収集の終了条件の１つは、文書収集の経過時間が所定の制限時間になることである請求項４記載の文書収集装置。
【請求項６】
上記文書収集の終了条件の１つは、文書収集に伴う文書アクセス回数が所定の制限回数になることである請求項４または５記載の文書収集装置。
【請求項７】
タイムアウトの可能性が高い文書であるかどうかに基づいて文書を巡回すべきかどうかを判断してタイムアウトの可能性が高い文書の巡回をスキップし、必要な巡回を終了した後、文書収集の終了条件が満たされていない場合には、スキップした文書について巡回を行なう請求項４、５または６記載の文書収集装置。
【請求項８】
同一ホストへのアクセスの連続回数に基づいて文書を巡回すべきかどうかを判断して所定数を越えて同一ホストにアクセスする場合には文書の巡回をスキップし、必要な巡回を終了した後、文書収集の終了条件が満たされていない場合には、スキップした文書について巡回を行なう請求項４、５または６記載の文書収集装置。
【請求項９】
上記複数の基準のうちの１つは、文書収集の開始時刻ｘ、対象文書の巡回予定時刻ｙおよびマージンｃとしたときに（ｘ−ｙ＋ｃ）が負であれば巡回を行わず、そうでなければ巡回を行うという基準である請求項１記載の文書収集装置。
【請求項１０】
上記複数の基準のうちの２以上の基準は上記ｃの値を異ならせたものとする請求項９記載の文書収集装置。
【請求項１１】
上記複数の基準のうちの少なくとも１つの基準は巡回予定時刻の頻度分布に基づいて決定される請求項１記載の文書収集装置。
【請求項１２】
上記文書はウェブ文書であり、上記ウェブ文書のアンカー情報をなすアドレスの文書を巡回対象の文書として巡回決定要素属性記憶手段に登録する請求項１〜１１のいずれかに記載の文書収集装置。
【請求項１３】
所定の範囲のアドレスに該当する場合にのみ文書を巡回対象の文書として巡回決定要素属性記憶手段に登録する請求項１２記載の文書収集装置。
【請求項１４】
文書収集に予定されている時間の経過に応じて文書収集動作を終了する請求項１〜１３のいずれかに記載の文書収集装置。
【請求項１５】
ネットワークを介して接続された文書サーバ上の文書を収集する文書収集装置において、
上記文書のアドレスに関連づけて巡回優先度情報を記憶する巡回優先度情報記憶手段と、
複数の基準のうちの１つを選択する手段と、
選択された基準に基づいて上記巡回優先度情報記憶手段の文書の巡回優先度情報に基づいて各文書を巡回すべきかどうかを決定する巡回決定手段と、
巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得手段とを有することを特徴とする文書収集装置。
【請求項１６】
ネットワークを介して接続された文書サーバ上の文書を収集する文書収集方法において、
複数の基準のうちの１つを選択するステップと、
上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する巡回決定要素属性記憶ステップと、
選択された基準に基づいて上記巡回決定要素属性記憶ステップにより記憶された文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定ステップと、
巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得ステップとを有することを特徴とする文書収集方法。
【請求項１７】
ネットワークを介して接続された文書サーバ上の文書を収集する文書収集方法において、
上記文書のアドレスに関連づけて巡回優先度情報を記憶する巡回優先度情報記憶ステップと、
複数の基準のうちの１つを選択するステップと、
選択された基準に基づいて上記巡回優先度情報記憶ステップにより記憶された文書の巡回優先度情報に基づいて各文書を巡回すべきかどうかを決定する巡回決定ステップと、
巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得ステップとを有することを特徴とする文書収集方法。
【請求項１８】
ネットワークを介して接続された文書サーバ上の文書を収集するためにコンピュータで実行される文書収集用コンピュータプログラムにおいて、
複数の基準のうちの１つを選択するステップと、
上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する巡回決定要素属性記憶ステップと、
選択された基準に基づいて上記巡回決定要素属性記憶ステップにより記憶された文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定ステップと、
巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得ステップとをコンピュータに実行させるために用いられることを特徴とする文書収集方法。
【請求項１９】
ネットワークを介して接続された文書サーバ上の文書を収集するためにコンピュータで実行される文書収集用コンピュータプログラムにおいて、
上記文書のアドレスに関連づけて巡回優先度情報を記憶する巡回優先度情報記憶ステップと、
複数の基準のうちの１つを選択するステップと、
選択された基準に基づいて上記巡回優先度情報記憶ステップにより記憶された文書の巡回優先度情報に基づいて各文書を巡回すべきかどうかを決定する巡回決定ステップと、
巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得ステップとをコンピュータに実行させるために用いられることを特徴とする文書収集用コンピュータプログラム。
【請求項２０】
ネットワークを介して接続された文書サーバ上の文書を検索する文書検索装置において、
文書収集装置と、
上記文書収集装置により収集された文書からインデックスを生成する装置と、
上記インデックスを用いて検索を行う検索装置本体とを有し、
上記文書収集装置は、
上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する巡回決定要素属性記憶手段と、
複数の基準のうちの１つを選択する手段と、
選択された基準に基づいて上記巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定手段と、
巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得手段とを有することを特徴とする文書検索装置。
【請求項２１】
ネットワークを介して接続された文書サーバ上の文書を収集する文書収集装置において、
上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する第１巡回決定要素属性記憶手段と、
所定の基準に基づいて上記第１巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定手段と、
上記巡回決定手段により巡回すべき文書として選択されなかった文書の巡回決定要素属性を受け取って記憶する第２巡回決定要素属性記憶手段と、
巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得手段と、
巡回を終了すべきかどうかを判別する巡回終了判別手段とを有し、
上記第１巡回決定要素属性記憶手段のすべて文書について巡回すべきかどうかを判別し終え、かつ、巡回すべき文書を取得し終えたときに、上記については巡回終了判別手段が巡回を終了すべきと判別していない場合には、上記第２巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定し、巡回すべき文書について文書を取得することを特徴とする文書収集装置。
【請求項２２】
巡回決定手段は、文書のアクセスのタイムアウトの可能性に当該文書を巡回すべきかどうかを決定する請求項２１記載の文書収集装置。
【請求項２３】
巡回決定手段は、同一ホストへの連続アクセス数に基づいて文書を巡回すべきかどうかを決定する請求項２１記載の文書収集装置。
【請求項２４】
ネットワークを介して接続された文書サーバ上の文書を収集する文書収集方法において、
上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を第１巡回決定要素属性記憶手段に記憶するステップと、
所定の基準に基づいて上記第１巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定ステップと、
上記巡回決定手ステップにより巡回すべき文書として選択されなかった文書の巡回決定要素属性を受け取って第２巡回決定要素属性記憶手段に記憶するステップと、
巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得ステップと、
巡回を終了すべきかどうかを判別する巡回終了判別ステップとを有し、
上記第１巡回決定要素属性記憶手段のすべて文書について巡回すべきかどうかを判別し終え、かつ、巡回すべき文書を取得し終えたときに、巡回終了判別ステップにより巡回を終了すべきと判別されていない場合には、上記第２巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定し、巡回すべき文書について文書を取得することを特徴とする文書収集方法。
【請求項２５】
ネットワークを介して接続された文書サーバ上の文書を収集する文書収集用コンピュータプログラムにおいて、
上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を第１巡回決定要素属性記憶手段に記憶するステップと、
所定の基準に基づいて上記第１巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定ステップと、
上記巡回決定手ステップにより巡回すべき文書として選択されなかった文書の巡回決定要素属性を受け取って第２巡回決定要素属性記憶手段に記憶するステップと、
巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得ステップと、
巡回を終了すべきかどうかを判別する巡回終了判別ステップとをコンピュータに実行させるために用いられ、さらに、
上記第１巡回決定要素属性記憶手段のすべて文書について巡回すべきかどうかを判別し終え、かつ、巡回すべき文書を取得し終えたときに、巡回終了判別ステップにより巡回を終了すべきと判別されていない場合には、上記第２巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定し、巡回すべき文書について文書を取得することを特徴とする文書収集用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、文書サーバ例えばウェブサーバを巡回して当該文書サーバに保管されている文書を収集する文書収集技術に関し、とくに、一定の巡回期間内になるべく多くの文書について文書情報を巡回できるようにするようにしたものである。
【背景技術】
【０００２】
ネットワークで接続された種々の文書サーバ上の文書の情報を収集して、検索サービスなどのインデックスを提供する場合、収集対象となる全ての文書が、一定の時間内に最低１回は巡回されることがのぞましい。しかし、ＨＴＭＬ文書のようにハイパーリンク構造を有した文書からリンクを抽出し、それらを収集対象のリストに追加するという方法で収集対象を増やしながら収集を行う文書収集装置の場合、収集規模を予め知ることはできない。そのため、従来技術のように巡回優先度決定を行って、優先度の高い文書を巡回するという手法が適用されることが多い。なお、以上のように文書の情報を収集して検索サービスを提供するシステムを以下では収集型サーチエンジンと呼ぶこともある。
【０００３】
特許文献１は、収集対象文書の更新状況を監視し、更新履歴をもとに巡回間隔を決めるようにしている（更新履歴情報から次回更新予測時刻を決め、現在時刻が更新予測時刻を過ぎているＵＲＬの全部または一部を巡回する）。しかしながら、特許文献１の手法では、過去の更新情報をもとに次回更新予測時刻を算出し、収集時刻が更新予測時刻を過ぎている文書の一部または全部を収集対象とするだけであり、頻繁に更新される文書は一定時間内に何度も収集され、更新頻度の低い文書はその間に全く収集されない、ということが起こる。
【０００４】
特許文献２は、人気度（例えば他のドキュメントからリファレンスされている）をもとに収集対象文書の優先度を決めて文書を収集するようにしている。この場合、人気度が低い文書はなかなか巡回を受ける機会に恵まれない。
【０００５】
また、具体的な問題としてはつぎのようなことがある。
【０００６】
収集型サーチエンジンにおいて、複数のＷｅｂサーバから文書を自動的に収集する場合、高速かつ効率的に文書を収集することが望まれる。しかしながら、例えば、メンテナンスで、応答しないサーバが存在し、当該サーバから文書を収集すると、サービス接続がタイムアウトするまで収集が停止するため、収集性能が低下する。
【０００７】
Ｗｅｂサーバ等のホストに過剰な負荷をかけないように、同時アクセス数やアクセス最短間隔を制限する場合がある。このようなホストを収集対象にして、連続して同一ホストへアクセスすると、収集性能が低下する。
【特許文献１】特開平１０−４９５５３「情報収集方法」
【特許文献２】米国特許明細書第５７４８９５４号「Ｍｅｔｈｏｄ  ｆｏｒ  ｓｅａｒｃｈｉｎｇ  ａ  ｑｕｅｕｅｄ  ａｎｄ  ｒａｎｋｅｄ  ｃｏｎｓｔｒｕｃｔｅｄ  ｃａｔａｌｏｇ  ｏｆ  ｆｉｌｅｓ  ｓｔｏｒｅｄ  ｏｎ  ａ  ｎｅｔｗｏｒｋ」
【発明の開示】
【発明が解決しようとする課題】
【０００８】
この発明は、以上の事情を考慮してなされたものであり、一定時間内になるべく多くの文書が巡回されるようにする文書収集技術を提供することを目的としている。また、この発明の具体的な目的は、収集対象のホストの不応答やアクセス制限による収集性能の低下を解消することにある。
【課題を解決するための手段】
【０００９】
この発明によれば、上述の目的を達成するために、特許請求の範囲に記載のとおりの構成を採用している。ここでは、発明を詳細に説明するのに先だって、特許請求の範囲の記載について補充的に説明を行なっておく。
【００１０】
この発明の原理的な構成においては、一定時間内の巡回文書割合を高くするため、収集対象の文書のうちで実際に巡回を行う文書を決定する際、文書の更新履歴情報だけではなく、巡回履歴情報や基準時刻を使う。そして、巡回優先度の判定基準を複数用意して、動的に変更できるようにする。
【００１１】
具体的には、ネットワークを介して接続された文書サーバ上の文書情報を収集し、各文書の特性・属性情報を算出、管理することによりユーザが要求する種類の文書の情報、または、文書の位置情報を提供する文書情報提供サーバにおいて文書サーバ上の文書の巡回優先度、または巡回すべきかどうかを決定し、優先度が高い文書を先に巡回して、あるいは巡回すべき文書のみを巡回し、文書の収集を行う。このとき、巡回優先度を決定する際に使用する関数や定数の情報を複数用意して、それらを動的に変えながら収集を行うことによって、収集時間に余裕があれば次の基準で優先度が高いと判定されたものを巡回する。これにより、文書サーバ上の文書に対して、一定の収集時間中に実際に巡回できる文書の割合がなるべく高くなるようにする。
【００１２】
より具体的な構成では、収集した文書がハイパーリンク構造を有しており、文書から抽出したリンクを巡回対象の文書リストに追加する手段をもった前述の文書情報提供サーバにおいて、サーバのドメイン名やサーバ内のディレクトリ名でリンクの種類を区別して、除外されていないリンクだけを巡回対象の文書リストに追加する。このようにすると、リンク先が分散している場合であっても、収集対象を企業内のウェブ文書に限定できる。
【００１３】
また、巡回開始時刻からの経過時間が所定の時間に達したら収集を打ち切るようにすることも好ましい。
【００１４】
さらにこの発明を説明する。
【００１５】
この発明の一側面によれば、上述の目的を達成するために、ネットワークを介して接続された文書サーバ上の文書を収集する文書収集装置に：上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する巡回決定要素属性記憶手段と；複数の基準のうちの１つを選択する手段と；選択された基準に基づいて上記巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定手段と；巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得手段とを設けるようにしている。
【００１６】
この構成においては、基準を切り換えて、もって、所定の巡回時間内に実際に巡回できる文書の割合を高くすることが可能になる。
【００１７】
文書収集装置は、いわゆるクローラとして用いることができ、この文書装置とインデクサと検索装置本体とを用いていわゆるロボット巡回型の検索エンジンを構成できが、この発明はこれに限定されず、ひろく文書収集に適用できる。
【００１８】
この構成において、上記巡回決定要素属性は、例えば、上記文書に対する巡回予定時刻、あるいは、上記文書の更新予測時刻である
【００１９】
また、上記文書のすべてについて巡回すべきかどうかを判断し終え、必要な巡回を終了した後、文書収集の終了条件が満たされていない場合には、上記基準を切り換えて文書収集動作を繰り返してもよい。上記文書収集の終了条件の１つは、文書収集の経過時間が所定の制限時間になる。また他の文書収集の終了条件は、文書収集に伴う文書アクセス回数が所定の制限回数になることである
【００２０】
また、上記文書について文書取得の効率を低下させるかどうかに基づいて巡回すべきかどうかを判断してもよい。例えば、上記文書についてタイムアウトの可能性に基づいて巡回すべきかどうかを判断してタイムアウトの可能性が高い文書の巡回をスキップし、必要な巡回を終了した後、文書収集の終了条件が満たされていない場合には、スキップした文書について巡回を行なうようにしてもよい。また、同一ホストへのアクセスの連続回数に基づいて文書を巡回すべきかどうかを判断して所定数を越えて同一ホストにアクセスする場合には文書の巡回をスキップし、必要な巡回を終了した後、文書収集の終了条件が満たされていない場合には、スキップした文書について巡回を行なうようにしてもよい。
【００２１】
この発明の他の側面によれば、上述の目的を達成するために、ネットワークを介して接続された文書サーバ上の文書を収集する文書収集装置に：上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する第１巡回決定要素属性記憶手段と；所定の基準に基づいて上記第１巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定手段と；上記巡回決定手段により巡回すべき文書として選択されなかった文書の巡回決定要素属性を受け取って記憶する第２巡回決定要素属性記憶手段と；巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得手段と；巡回を終了すべきかどうかを判別する巡回終了判別手段とを設け；上記第１巡回決定要素属性記憶手段のすべて文書について巡回すべきかどうかを判別し終え、かつ、巡回すべき文書を取得し終えたときに、上記については巡回終了判別手段が巡回を終了すべきと判別していない場合には、上記第２巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定し、巡回すべき文書について文書を取得するようにしている。
【００２２】
ネットワークを介して接続された文書サーバ上の文書を収集する文書収集装置に：上記文書のアドレスに関連づけて巡回すべきかどうかを決定するための当該文書の巡回決定要素属性を記憶する巡回決定要素属性記憶手段と；複数の基準のうちの１つを選択する手段と；選択された基準に基づいて上記巡回決定要素属性記憶手段の文書の巡回決定要素属性に基づいて各文書を巡回すべきかどうかを決定する巡回決定手段と；巡回すべきと決定されたときに当該文書にアクセスして新たに更新されたかどうかを判別し新たに更新されているときに当該文書を取得する文書取得手段とを設けるようにしている。
【００２３】
巡回すべきでないと判別された文書、典型的には、前回タイムアウトを伴ったり、同一ホストへの連続アクセスとなる文書については巡回をスキップし、効率よく収集可能と予測される文書のみ収集し、その後、余裕があるときには第２巡回決定要素属性記憶手段を算用してスキップした文書の巡回を行なうので、効率よく文書を収集できる。第２巡回決定要素属性記憶手段のレコードは任意のキーに基づいてソートして文書収集基準を切り替えることもできる。第２巡回決定要素属性記憶手段を複数の記憶部（キューテーブル）から構成し、ハッシュ値に基づいて振り分けて、上記ソート操作等を効率よく行なうようにしても良い。
【００２４】
なお、この発明は装置またはシステムとして実現できるのみでなく、方法としても実現可能である。また、そのような発明の一部をソフトウェアとして構成することができることはもちろんである。またそのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品もこの発明の技術的な範囲に含まれることも当然である。
【００２５】
この発明の上述の側面および他の側面は特許請求の範囲に記載され以下実施例を用いて詳述される。
【発明の効果】
【００２６】
この発明によれば、所定の基準に基づいて適切に文書を巡回収集できる上に基準を適宜変更して予定期間内により多くの文書を巡回収集するようにできる。たとえば、同一の文書が必要以上に巡回されるのを防ぎ、収集対象の文書のうち巡回できる割合を高くすることができる。
【発明を実施するための最良の形態】
【００２７】
以下、この発明の実施例について説明する。
【実施例１】
【００２８】
まずこの発明を原理的な構成を実装する実施例１について説明する。
【００２９】
図１は、この発明の実施例１の文書収集技術を利用した文書検索システムを示しており、この図において、検索エンジン２０、文書サーバ１３、１４、ユーザ端末１６がネットワーク１５に接続されている。文書サーバ１３、１４は例えばウェブサーバである。検索エンジン２０は、文書収集装置（クローラ）１０、インデクサ１１、検索装置１２等を含んで構成されている。検索エンジン２０の文書収集装置１０は、巡回対象の文書のアドレスの情報（図２のキューテーブル１０２ａ）を予め有しており、例えば予め定められた時刻に巡回を開始し、文書サーバ１３、１４等の対象文書をアクセスする。例えば、ＨＴＴＰのＨＥＡＤメソッドにより更新情報を受取り、新たに更新が行われていることが判明したならば、当該文書をＧＥＴメソッドにより収集して処理を行う。文書収集処理は、後述するように巡回開始後所定時間例えば１時間経過したときに打ち切られるようにすることが好ましい。文書収集に際しては、後述するように、更新時刻、前回巡回時刻等を記録保持する。
【００３０】
文書収集装置１０は収集した文書のアンカータグ等を参照してリンク先の文書のアドレスを取得し、新たに巡回対象（キューテーブル１０２ａ）に含める。文書のリンク先を重み付け加算等して人気度を計算し、巡回の優先順位を設けるようにしてもよい。この優先順位は検索結果のランキングにも用いることができる。
【００３１】
インデクサ１１は、文書収集装置１０が収集した文書について形態素解析等を行い、インデックスを生成し、検索装置１２に供給する。
【００３２】
ユーザはユーザ端末１６を用いて検索エンジンにキーワード検索要求を行い、その検索結果に基づいて文書サーバ１３、１４等の文書にアクセスする。
【００３３】
図２は、上述実施例の文書収集装置１０の構成を機能ブロック表現で示しており、この図において、文書収集装置１０は、文書情報取得部１０１、収集情報格納部１０２、巡回判定部１０３、判定規範情報設定部１０４、リンク抽出部１０５等を有している。
【００３４】
文書情報取得部１０１は、収集情報格納部１０２（より具体的にはキューテーブル１０２ａ）の文書アドレス情報を用いて対象の文書サーバ１３、１４等から文書情報（属性情報やコンテンツ）を取得する。リンク抽出部１０５は、文書情報取得部１０１が文書サーバ１３、１４等から取得した文書情報のうち、ハイパーリンク構造を持つものからリンク情報を文書アドレスの形式で抽出する。抽出されたリンク情報は収集情報格納部１０２（キューテーブル１０２ａ）に格納される。収集情報格納部１０２は、収集対象文書の文書アドレスや、その文書の巡回履歴情報、取得履歴情報、更新履歴情報などを保持する。これらの情報は図３に示すようなスキーマでキューテーブル１０２ａに保持される。これら情報は以下のようなものである。
【００３５】
（１）文書アドレス情報には、例えば、ＵＲＬ文字列がある。（２）巡回履歴情報には、例えば、前回巡回時刻がある。（３）取得履歴情報には、例えば、前回取得時刻がある。（４）更新履歴情報には、例えば、過去の更新時刻（有限個）、過去の更新間隔（有限個）、次回更新予測時刻などがある。次回更新予測時刻は格納せずに、必要になった都度計算するようにしてもよい。
【００３６】
その他、リンク数等に基づいて付与される人気度等が保持されていてもよい。これにより優先度を規定してもよい。
【００３７】
巡回判定部１０３は、収集情報格納部１０２に格納されている履歴情報にもとづいて、文書を巡回するか否かを決定し、巡回することが決定した文書の文書アドレス情報を出力する。
【００３８】
巡回判定方法として、例えば、つぎのようなものがある。
【００３９】
（ａ）まず、次回更新予測時刻を以下のようにして決定する。更新間隔が短いものは、次回巡回予定時刻を早めに設定する。最終更新時刻と取得時刻の差が少ないものは、早めに次回巡回予定時刻を設定する。
【００４０】
（ｂ）つぎに、次回更新予測時刻と、前回巡回時刻と、巡回時に指定される基準時刻とクライテリア関数から文書を巡回するか否かを決定する。
【００４１】
詳細については図４〜図７を参照して後述する。
【００４２】
判定規範情報設定部１０４は、収集情報格納部１０２に格納された情報を使って判定規範を決定し、巡回判定部１０３に判定規範情報を設定する。
【００４３】
判定規範情報の決め方には、例えば、一定時間に巡回した累計文書数で決めたり、更新予測時刻の度数分布（ヒストグラム）に基づいて決めたりするものがある。
【００４４】
判定規範情報設定部１０４によるクライテリア関数の切り替え例について説明する。
【００４５】
巡回判定部１０３が１つのクライテリア関数を使って収集情報格納部１０２に格納された文書アドレス情報を判定しながら巡回・収集を行う処理において、以下の条件［Ａ］を満たした場合には、クライテリア関数を別のものに変えて処理を継続する。
【００４６】
条件［Ａ］
・文書アドレス情報を一通りチェックし尽くした。
・所定の時間に達していない。
【００４７】
［例１］
１つの文書アドレスを１日に１回だけ巡回するように設定されている場合に、翌日するはずの文書が今日、巡回されるようにする。例えば、クライテリア関数を以下のように変更する。
クライテリア関数：ｆｃ（ｘ，ｙ）＝ｘ−ｙ＋ｃ  …［関数１］
（ただしｘは巡回を開始した基準時刻、ｙは巡回予定時刻、ｃはマージン（単位は時間である）
旧  ｆ０（ｘ，ｙ）＝ｘ−ｙ
新  ｆ２４（ｘ，ｙ）＝ｘ−ｙ＋２４
【００４８】
クライテリア関数を変更するには、例えば、関数ポインタへの配列を用意し、配列のインデクスをパラメータとして用いる方法がある。他に、ｃの値を直接パラメータとして受け渡す方法もある。
【００４９】
［例２］
クライテリア関数を選択するためのヒント情報として収集情報格納部に格納された巡回予定時刻の度数分布を使用する。
【００５０】
ステップ（ｉ）：基準時刻に対して所定の時間幅ごとに度数を集計する整数配列を用意する。
【００５１】
ステップ（ｉｉ）：巡回処理を開始する。
【００５２】
ステップ（ｉｉｉ）：収集情報格納部から読み出した文書アドレス情報のうち、巡回判定部が巡回しない、と決めた文書アドレス情報に対して基準時刻と巡回予定時刻との差分の値を求め、ステップ（ｉ）で用意した度数集計用配列に反映させる。
【００５３】
ステップ（ｉｖ）：条件［Ａ］を満たしたら、度数集計用配列に記録された度数値を先頭のインデクスから順に加算し、合計値が所定の値（＊）を超過するインデクスを記憶する。所定の値（＊）はタイムアウト時間に対する残り時間に基づいて決定してもよい。
【００５４】
ステップ（ｖ）：ステップ（ｉｖ）で記憶したインデクス値とステップ（ｉ）で設定した時間幅の値とを掛け合わせその結果の値に基づいてクライテリア関数を決める。（例えば、［関数１］のｃの値として適用するのでもよい。）
【００５５】
図４および図５を組み合わせてなるフローチャートは、上述の［関数１］により巡回判定を行うフローを示しており、さらに、全文書を巡回しても時間（巡回制限時間）が余っているときには［関数１］（ｆｃ）を変更してより多くの文書が巡回対象になるようにするものである。これは上述の（例１）に対応する。図４および図５の処理は以下のとおりである。
【００５６】
［ステップＳ１０］：巡回開始時刻を記録する。
［ステップＳ１１］：キューテーブル１０２ａをオープンする。
［ステップＳ１２］：キューテーブル１０２ａから次のレコードを取り出す。
［ステップＳ１３］：キューテーブル１０２ａを最後まで参照したかどうかを判別し、最後まで参照した場合にはステップＳ２４に進み、そうでない場合にはステップＳ１４へ進む。
［ステップＳ１４］：「基準時刻−前回巡回時刻＜巡回閾値時間」が満たされるかどうか判別し、満たされる場合には、巡回をスキップするためにステップＳ２３に進み、満たされない場合にはステップＳ１５へ進む。
［ステップＳ１５］：［関数１］（ｆｃ）で巡回判定を行なう。巡回すべきと判定された場合にはステップＳ１６へ進み、そうでない場合には巡回をスキップするためにステップＳ２３に進む。
［ステップＳ１６］：文書アドレス情報を取り出す。
［ステップＳ１７］：ＨＴＴＰリクエスト（ＨＥＡＤメソッド）により文書の更新時刻情報を取得する。
［ステップＳ１８］：レコードの更新時刻情報と、取得した更新時刻情報とを比較する。
［ステップＳ１９］：比較結果に基づいて、文書が前回取得時から更新されている場合（レコードの更新時刻情報が古い場合）にはステップＳ２０に進み、そうでない場合には、ステップＳ２２に進む。
［ステップＳ２０］：文書を取得してインデクサ１１に渡し、インデックス情報を更新する。次回巡回予定時刻を計算し、レコードの巡回予定時刻に書き込み、現在時刻を前回巡回時刻フィールドに書き込む。ステップＳ２１へ進む。
［ステップＳ２１］：前回更新時刻を前前回更新時刻フィールドに書き込み、更新時刻を前回更新時刻フィールドの書き込む。ステップＳ２３へ進む。
［ステップＳ２２］：次回巡回予定時刻を計算して巡回予定時刻フィールドに書き込み、現在時刻を前回巡回時刻フィールドに書き込む。ステップＳ２３へ進む。
［ステップＳ２３］：巡回経過時間が巡回制限時刻を上回っていたら巡回を終了し、そうでない場合にはステップＳ１２へ戻り処理を繰り返す。
［ステップＳ２４］：全文書が巡回されたら、すべきことがないので、巡回を終了し、そうでない場合にはステップＳ２５へ進む。
［ステップＳ２５］：［関数１］（ｆｃ）を変更してステップＳ１１へ戻り処理を繰り返す。
【００５７】
図６および図７を組み合わせてなるフローチャートも、上述の［関数１］を用いるものであるが、巡回予測時刻の度数分布を用いてマージンとなる時間を最適化している。これは上述の（例２）に対応するものである。図６および図７の処理は以下のとおりである。
【００５８】
［ステップＳ３０］：巡回開始時刻を記録する。
［ステップＳ３１］：キューテーブル１０２ａをオープンする。
［ステップＳ３２］：キューテーブル１０２ａから次のレコードを取り出す。
［ステップＳ３３］：キューテーブル１０２ａを最後まで参照したかどうかを判別し、最後まで参照した場合にはステップＳ３４に進み、そうでない場合にはステップＳ４５へ進む。
［ステップＳ３４］：「基準時刻−前回巡回時刻＜巡回閾値時間」が満たされるかどうか判別し、満たされる場合には、巡回をスキップするためにステップＳ４４に進み、満たされない場合にはステップＳ３５へ進む。
［ステップＳ３５］：［関数１］（ｆｃ）で巡回判定を行なう。巡回すべきと判定された場合にはステップＳ３６へ進み、そうでない場合には巡回をスキップするためにステップＳ４３に進む。
［ステップＳ３６］：文書アドレス情報を取り出す。
［ステップＳ３７］：ＨＴＴＰリクエスト（ＨＥＡＤメソッド）により文書の更新時刻情報を取得する。
［ステップＳ３８］：レコードの更新時刻情報と、取得した更新時刻情報とを比較する。
［ステップＳ３９］：比較結果に基づいて、文書が前回取得時から更新されている場合（レコードの更新時刻情報が古い場合）にはステップＳ４０に進み、そうでない場合には、ステップＳ４２に進む。
［ステップＳ４０］：文書を取得してインデクサ１１に渡し、インデックス情報を更新する。次回巡回予定時刻を計算し、レコードの巡回予定時刻に書き込み、現在時刻を前回巡回時刻フィールドに書き込む。ステップＳ４１へ進む。
［ステップＳ４１］：前回更新時刻を前前回更新時刻フィールドに書き込み、更新時刻を前回更新時刻フィールドの書き込む。ステップＳ４３へ進む。
［ステップＳ４２］：次回巡回予定時刻を計算して巡回予定時刻フィールドに書き込み、現在時刻を前回巡回時刻フィールドに書き込む。ステップＳ４３へ進む。
［ステップＳ４３］：基準時刻と巡回時刻との差を度数集計用配列に記録する。ステップＳ４４へ進む。
［ステップＳ４４］：巡回経過時間が巡回制限時刻を上回っていたら巡回を終了し、そうでない場合にはステップＳ３２へ戻り処理を繰り返す。
［ステップＳ４５］：全文書が巡回されたら、すべきことがないので、巡回を終了し、そうでない場合にはステップＳ４６へ進む。
［ステップＳ４６］：度数集計結果を用いて［関数１］（ｆｃ）を変更してステップＳ３１へ戻り処理を繰り返す。
【００５９】
つぎに実施例１の変形例について説明する。
【００６０】
図８は第１の変形例を示している。図８において、図２と対応する箇所には対応する符号を付す。この変形例では、収集範囲情報格納部１０６を設けている。この収集範囲情報格納部１０６は、文書収集装置１０が巡回する文書アドレスの範囲を定める情報を保持する。リンク抽出部１０５は、収集範囲情報格納部１０６に格納された情報をもとに収集対象に該当するリンク情報だけを収集情報格納部１０２に出力する。アドレス範囲情報には、例えば、サーバのドメイン名やサーバ内のディレクトリ名などがある。これにより、情報収集対象外のアドレスをアンカー情報として含む文書を巡回しても、そのアドレスを巡回対象から排除でき、例えば、企業内の文書検索システムに適用する場合に最適である。
【００６１】
図９は第２の変形例を示している。図９においても図２と対応する箇所には対応する符号を付して詳細な説明を省略する。この変形例では、収集中断指示部１０７を設けている。この収集中断指示部１０７は、所定の条件に達したら巡回判定部へ収集を中断する指示を出力する。収集を中断する条件には、例えば、巡回開始時刻からの経過時間などがある。この構成は、例えば、ユーザのアクセスが少ない時間帯にかぎって文書情報を収集する場合に最適である。
【実施例２】
【００６２】
つぎに、サーバないしホストが応答しない場合でも収集性能を低下させないようにした実施例２の文書収集装置について説明する。
【００６３】
図１０は実施例２の文書収集装置１０の構成を機能ブロック表現で示しており、図１１は、その要部を相互の関係を中心に模式的に示している。図１０および図１１において、図２と対応する箇所には対応する符号を付した。
【００６４】
図１０および図１１において、タイムアウト検出部１０８、マーク検出部１０９および代替キューテーブル１０２ｂが新たに設けられている。タイムアウト検出部１０８は文書サーバ（以下ではＷｅｂサーバともいう）にアクセスしたときにリクエストのタイムアウトを検出し、タイムアウト検出時には、当該レコードのマークフィールド（例えば図１２参照）をオンにする。
【００６５】
つぎに、この実施例２の文書の巡回収集の基本動作を図１３および図１４のフローチャートをも参照して説明する。
【００６６】
実施例２では、文書アクセス時にタイムアウト処理がなされた文書についてキューテーブルのレコードにマークを付ける（マークフィールドをオンにする）。次回の巡回時にこのマークのあるレコードを代替キューテーブル１０２ｂに移動させ（コピーし）、マークがないレコードのみ用いて文書の巡回を行なう（Ｓ５０〜Ｓ５８）。主たる巡回が終了した後に余裕があれば（Ｓ５２）、代替キューテーブル１０２ｂを参照して、前にタイムアップした文書を巡回していく（Ｓ５９〜Ｓ６４）。
【００６７】
具体的にはキューテーブル（巡回文書キュー）１０２ａに格納された文書アドレス（例えばＵＲＬ）と付随する文書属性を読みだし、順次に文書を収集する。文書アクセスが、当該文書に対する初回の巡回であれば収集する。初回の巡回であるか否かは、例えば、文書属性のうち前回巡回時刻が特別な値（例えば０）か否かで判定する。初回の巡回でなければ、該当するＷｅｂサーバにアクセスして、指定した文書の更新判定を行うものとする。更新判定は、例えば、文書属性のうち、最終更新時刻と、ＷｅｂサーバからＨＴＴＰプロトコルによって得られる「Ｌａｓｔ−Ｍｏｄｉｆｉｅｄ」の値を比較することで行う。文書の更新判定結果として、前回に収集した文書に対して、更新されていれば、文書を再度収集する。更新されていなければ、収集しない。いずれの場合も、巡回文書キューの所定のエントリに巡回時刻を記録する。
【００６８】
タイムアウト検出部１０８は、文書アクセスが、所定のタイムアウト時間の経過ののち、更新判定または収集が終了しない場合は、アクセスを中断し、かつ、キューテーブル１０２ａの所定のエントリ（レコード）にタイムアウトのマークを付与する。タイムアウトのマークは、前回巡回時に更新判定または収集が完了しなかったことを表す。キューテーブル１０２ａから順にＵＲＬを読み出す際に、タイムアウトのマークが付与されたエントリであれば、マーク検出部１０９がこれを判別して、該ＵＲＬと付随する文書属性を代替キューに移動し、文書アクセスはせずに、次のＵＲＬを巡回文書キューから読み出す。このステップを繰り返す。所定数の文書アクセスを終えたら、終了する。
【００６９】
すべてのＵＲＬを読み出して、かつアクセス数が所定数（制限アクセス数）に達していなければ、キューテーブル１０２ａに代えて、代替キューテーブル１０２ｂからＵＲＬを読み出す。読み出したＵＲＬは、前回巡回した際に、タイムアウトしたものであるため、アクセスしたら再度タイムアウトすることもある。タイムアウトをせず更新判定または文書の収集がなされた場合には、巡回文書キューの当該エントリのタイムアウトのマークを消す。
【００７０】
以上の動作によって、例えば、一時的なＷｅｂサーバーのサービス停止等の理由により、アクセス不能な文書のアドレスがキューテーブル１０２ａに存在している場合に、キューテーブル１０２ａにて定まるアクセスの順において、正常にアクセス可能な文書に対するアクセスが、前記アクセス不能な文書へのアクセスを追い越すことが可能となるため、正常にアクセス可能な文書の巡回性能が向上する。
【００７１】
例えば、図１５（ａ）に示すように前回の巡回で１０個の文書のレコード（エントリ）にタイムアウトがマークされているとする。状況が変わらなければ、実施例２を採用しない通常の処理では、２０個の文書を順に読み出すのに、１００１秒かかってしまう。ただし、タイムアウト時間を１００秒とし、通常のアクセス時間を０．１秒とした。実施例２によれば、２０個の文書を読みだすのに２秒しかかからない。タイムアウトした文書のエントリについては当初は巡回せずに図１５（ｄ）に示すように代替キューテーブル１０２ｂに移動させているので、当該２０個の文書についても順調に読み出しが行なわれ、２０×０．１秒＝２秒しか時間がかからない。以降、同様に、制限アクセス回数に至るまで、マークのないエントリを用いて巡回を行い、こののち、制限アクセス回数にいたっていなければ、代替キューテーブル１０２ｂを参照して前にタイムアウトした文書について巡回を試みる。
【００７２】
この実施例の原理は、基本的には、実施例１と同様であり、所定の巡回を終了した後、文書収集に予定されている制限時間や制限アクセス数等が残っている場合等、巡回を継続できる場合には、基準を切り替えて収集を繰り返すことである。より具体的には、キューテーブル１０２ａの以前の走査で巡回しなかったものを、代替キューテーブル１０２ｂに移し、代替キューテーブル１０２ｂを整列処理などすることで、巡回基準を切り替えることを実現する。すなわち、文書を巡回収集する際に、所定の基準で順序つけられたキューテーブル１０２ａ以外に、代替キューテーブル１０２ｂを持ち、キューテーブル１０２ａを走査した際に、所定の条件で文書を代替キューテーブル１０２ｂに移動し、キューテーブル１０２ａの走査が終了したのち、代替キューテーブル１０２ｂの走査をし、文書の収集の順序をキューテーブル１０２ａに格納されたものと異なるアクセス順でアクセス（追い越し）することを可能とする。それによって、所定の基準で整列した文書収集の順序を、状況に応じて動的に変更できるので、より柔軟で効率的な巡回方式が実現できる。
【００７３】
実施例３においては、過去に、応答がなかった文書のエントリを、代替キューテーブル１０２ｂに移すことで、巡回できる（可能性の高い）文書の巡回を優先的に行うような制御をすることができる。
【００７４】
なお、どのような基準で、キューテーブル１０２ａのエントリを代替キューテーブル１０２ｂに移すかは、実施例２のほかに種々なバリエーションが考えられる。
【００７５】
また、実施例１においては、とくに代替キューテーブル１０２ｂについては言及しなかったが、代替キューテーブル１０２ｂを用いることが可能なことは明らかである。この場合、巡回予定時刻に到達していない文書を、代替キューテーブル１０２ｂに移し、キューテーブル１０２ａをすべて、走査し終えた次点で、予定した時間内に、予定した巡回数に到達しない場合は、代替キューテーブル１０２ｂに移動した文書にアクセスをすればよい。もちろん、代替キューテーブル１０２ｂを用いなくても良い
【００７６】
実施例２では、巡回終了条件を制限アクセス回数により判断したが、制限巡回時間により判断しても良いし、双方を巡回終了条件としても良い。
【実施例３】
【００７７】
つぎに、同一のサーバないしホストに連続してアクセスすることを抑制して収集性能を向上させるようにした実施例３の文書収集装置について説明する。
【００７８】
図１６は実施例３の文書収集装置１０の構成を機能ブロック表現で示しており、図１７は、その要部を相互の関係を中心に模式的に示している。図１６および図１７において、図２または図１０と対応する箇所には対応する符号を付した。
【００７９】
図１６および図１７において、同一ホスト連続アドレス検出部１１０が新たに設けられている。同一ホスト連続アドレス検出部１１０は、同一のホストへのアクセスが所定数を越えて行なわれることを検出するものである。
【００８０】
つぎに、この実施例３の文書の巡回収集の基本動作を図１８および図１９のフローチャートをも参照して説明する。
【００８１】
この実施例では、キューテーブル１０２ａから読み出されたＵＲＬ列が、同一ホストへの連続したアクセスとなる場合に対処する。すなわち、基本的にはキューテーブル１０２ａを参照して文書を巡回する（Ｓ７０〜Ｓ７８）。そして所定以上の連続する同一ホストへのアクセスが検出された場合に、第２の代替キューに移動する。指定された巡回間隔内に、第２の代替キューに移動したＵＲＬ以外のＵＲＬの巡回が終了した場合に限り、第２の代替キューからＵＲＬを読み出して巡回を行う（Ｓ７９〜Ｓ８３）。
【００８２】
具体的には、キューテーブル１０２ａに格納された文書アドレス（例えばＵＲＬ）と付随する文書属性とを読みだす。初回の収集であれば収集し、初回の巡回でなければ、該当するＷｅｂサーバにアクセスして、指定した文書の更新判定を行う。文書の更新判定結果として、前回に収集した文書に対して、更新されていれば、文書を再度収集する。更新されていなければ、収集しない。
【００８３】
この実施例では、キューテーブル１０２ａから順にＵＲＬを読み出す際に、同一のホストからの連続したアクセスが検出された場合、連続数を計数する。例えば、前回のアクセスしたホスト番号を記録しておき、今回のアクセスのホスト番号と同一であれば、連続数をインクリメントする。連続数が所定数（連続数の上限）を越えれば、該ＵＲＬと付随する文書属性を代替キューテーブル（１０２ｂ）に移動（コピー）し、該ＵＲＬの文書にアクセスせずに、次のＵＲＬを読み出す。ホスト番号が前回アクセスしたホスト番号と異なれば、連続数に１を設定し、該ＵＲＬにアクセスを行う。このステップを繰り返す。所定数の文書アクセスを終えたら、終了する。すべてのＵＲＬを読み出して、かつアクセス数が前記所定数に達していなければ、キューテーブル１０２ａに代えて、代替キューテーブル１０２ｂからＵＲＬを読み出し、巡回または収集を続ける。この場合は、同一ホストへのアクセスが所定数を越えて連続して行われることもありうる。
【００８４】
以上の動作によって、例えば、２つのホストのＵＲＬが混在してキューテーブル１０２ａに格納されており、第１のホストのＵＲＬが非常に多く存在し、第２のホストのＵＲＬが少なく、かつ、第１のホストのＵＲＬ数と第２のホストのＵＲＬ数の比で定まる割合で、キューテーブル１０２ａから、第１のホストのＵＲＬ数と第２のホストのＵＲＬが混在して読み出される場合において、少数しかない第２のホストのＵＲＬの巡回と収集が、先に終了するように制御することが、可能となる。例えば、連続数の上限を２と設定することで、第２のホストに巡回対象ＵＲＬが存在する場合、少なくとも３ＵＲＬにつき１ＵＲＬは、第２のホストへのアクセスが行われることになる。
【００８５】
連続数の上限は、固定的な数値としてもよいし、同一ホストへ並行してアクセス可能なスレッド数の上限値など動的に定まる数値や、前記数値に一定値を加えたり、乗算して定まる数としてもよい。その場合は、コンピュータ資源をより有効に活用できるため、収集効率を上げることができる。とくにサーバのアクセス制限を解除して初期に文書情報を取得する場合にはスレッド数に対応させた連続数として効率よく文書情報を取得できる。
【００８６】
例えば、図２０（ａ）に示すように同一ホストへのアクセスが連続する場合（ｈｏｓｔ１、ｈｏｓｔ２、ｈｏｓｔ３へのアクセスがそれぞれ５回連続する）、連続した同一ホストへアクセスする際は間隔を１秒あけるような制御（アクセス間隔モデレーション）を行い、正味のアクセスに０．１秒かかるとすると、実施例３を採用しない通常の処理では、２００個の文書を読みだすのに６６０秒かかる（図２０（ｂ））。実施例３では同一ホストへの連続アクセスをスキップするので、２００個の文書を読みだすのに２０秒しかかからない（図２０（ｃ））。以降、同様に、制限アクセス回数に至るまで、同一ホストへの連続アクセスをスキップしながら巡回を行い、こののち、制限アクセス回数にいたっていなければ、代替キューテーブル１０２ｂを参照して、連続アクセスのためにスキップした文書を巡回する（図２０（ｄ））。
【００８７】
実施例３によれば、連続するホストへのアクセスを避けることで、収集速度の向上や収集時間の短縮を図ることができる。すなわち、なるべく多くのホストを同時並行的に巡回、収集することで、収集処理の並列性を向上させ、結果として巡回収集速度をあげる。また、同一ホストに対してアクセス間隔モデレーションを行っていない場合でもは、Ｗｅｂサーバー側の負荷を考慮すれば同一ホストへのアクセスが連続しないほうが、収集時間が短縮できる可能性がある。
【００８８】
これと同等のことを実現するには、キューテーブル（巡回文書キュー）１０２ａの文書アドレスを、状況に応じて、所望の順序や所望する制約を満たすように、整列しなおす方法もある。  整列操作は、単純にキーの値の昇順に並べ替えるとしても、個数Ｎに対して、計算複雑さのオーダとしてはＯ（Ｎ＊ｌｏｇＮ）以上の計算時間が必要とされている。また、キューテーブル１０２ａは、ファイルやデータベースに格納されていることが一般的であり、かつ、収集対象のＷｅｂサービスが大規模である場合には、格納文書数も多い。文書数が多いと、メモリ上で高速に整列しなおすことが出来ない場合は、２次記憶装置（磁気ディスク装置等）のアクセスが増え、さらに処理に時間がかかる。実施例３の文書収集装置は、このような問題を伴うことなく、効率よく文書を収集できる。
【００８９】
以上で実施例の説明を終了する。
【００９０】
なお、この発明は上述の実施例に限定されるものではなくその趣旨を逸脱しない範囲で種々変更が可能である。例えば、上述では、検索エンジンのクローラの例を挙げて文書収集装置を説明したが、他の用途で文書を収集する場合にも適用できることはもちろんである。また上述の例では更新履歴に基づいて巡回予定時刻等を算出し、もって巡回が必要かどうか判断したが、その他の要素、例えば、人気度を用いて優先度を決定して巡回を行う場合にも判定基準を切り換えて巡回を行うようにしてもよい。例えば、デフォルトでは人気度で一定の閾値を基準に巡回し、その後、時間があれば、巡回予定時刻、更新予定時刻、アドレス（ドメイン）等に基づいて再度巡回を試みるようにしてもよい。
【００９１】
また、上述実施例２および実施例３では単一の代替キューテーブルしか用いなかったが、図２１に示すように、文書エントリをキューテーブル（巡回文書キュー）から代替キューテーブルに移す際に、代替キューテーブルを一つではなく、複数保持し、特定のカテゴリ（例えばＵＲＬのパターンのハッシュ値）によって複数の代替キューテーブルのうちの一つを選択して、移動するような構成を採用しても良い。
【００９２】
複数の代替キューテーブルを採用すると、巨大な代替キューテーブルを１個持つ場合に比して、代替キューテーブルに必要な処理を、分割統治アルゴリズムによって行うことができる。例えば、代替キューテーブルを選択するハッシュ関数を、うまく選ぶことで、統計的には均等な長さの代替キューに分割できる。代替キューがＫ個であったとすると、代替キューの文書数は、平均的には１／Ｋになることが期待できる。このとき、個々の代替キューが十分物理メモリ上で処理できる範囲の文書数である場合には、あるいは、ＣＰＵのキャッシュメモリに全部が格納できる場合には、高速に処理が可能となる。例えば所定のキーによる整列処理が高速に実施できる。代替キューから読み出す際には、よく知られたマージソートの手法を用い、すなわち、ソート済みのＫ個の代替キューの先頭をしらべて、キーの値がもっとも小さなものを選択して読み出すことで、分割前の大きなキューをソートするのと同じ順序で読み出すことができ、かつ、ソート整列処理にかかる時間は減ることが期待できる。
【図面の簡単な説明】
【００９３】
【図１】この発明の実施例１の文書収集装置を利用した文書検索システムを全体として示す図である。
【図２】この発明の実施例１の文書収集装置の構成例を示すブロック図である。
【図３】上述実施例１の文書収集装置で用いるキューテーブルのスキーマの例を説明する図である。
【図４】上述実施例１の文書収集装置の動作例を説明するフローチャートの一部を示す図である。
【図５】上述実施例１の文書収集装置の動作例を説明するフローチャートの残りの部分を示す図である。
【図６】上述実施例１の文書収集装置の他の動作例を説明するフローチャートの一部を示す図である。
【図７】上述実施例１の文書収集装置の他の動作例を説明するフローチャートの残りの部分を示す図である。
【図８】上述実施例１の文書収集装置の変形例を説明するブロック図である
【図９】上述実施例１の文書収集装置の他の変形例を説明するブロック図である。
【図１０】この発明の実施例２の文書収集装置の構成例を示すブロック図である。
【図１１】上述実施例２の要部の関係を模式的に示すブロック図である。
【図１２】上述実施例２の文書収集装置で用いるキューテーブルのスキーマの例を説明する図である。
【図１３】上述実施例２の文書収集装置の動作例を説明するフローチャートの一部を示す図である。
【図１４】上述実施例２の文書収集装置の動作例を説明するフローチャートの残りの部分を示す図である。
【図１５】上述実施例２の効果を説明する例である。
【図１６】この発明の実施例３の文書収集装置の構成例を示すブロック図である。
【図１７】上述実施例３の要部の関係を模式的に示すブロック図である。
【図１８】上述実施例３の文書収集装置の動作例を説明するフローチャートの一部を示す図である。
【図１９】上述実施例３の文書収集装置の動作例を説明するフローチャートの残りの部分を示す図である。
【図２０】上述実施例３の効果を説明する例である。
【図２１】上述実施例２および実施例３の変形例を説明する図である。
【符号の説明】
【００９４】
１０      文書収集装置
１１      インデクサ
１２      検索装置
１３、１４      文書サーバ
１５      ネットワーク
１６      ユーザ端末
２０      検索エンジン
１０１      文書情報取得部
１０２      収集情報格納部
１０２ａ      キューテーブル
１０２ｂ      代替キューテーブル
１０３      巡回判定部
１０４      判定規範情報設定部
１０５      リンク抽出部
１０６      収集範囲情報格納部
１０７      収集中断指示部
１０８      タイムアウト検出部
１０９      マーク検出部
１１０      同一ホスト連続アクセス検出部
【図１】
2004303226.tif 000003
【図２】
2004303226.tif 000004
【図３】
2004303226.tif 000005
【図４】
2004303226.tif 000006
【図５】
2004303226.tif 000007
【図６】
2004303226.tif 000008
【図７】
2004303226.tif 000009
【図８】
2004303226.tif 000010
【図９】
2004303226.tif 000011
【図１０】
2004303226.tif 000012
【図１１】
2004303226.tif 000013
【図１２】
2004303226.tif 000014
【図１３】
2004303226.tif 000015
【図１４】
2004303226.tif 000016
【図１５】
2004303226.tif 000017
【図１６】
2004303226.tif 000018
【図１７】
2004303226.tif 000019
【図１８】
2004303226.tif 000020
【図１９】
2004303226.tif 000021
【図２０】
2004303226.tif 000022
【図２１】
2004303226.tif 000023