(57)【特許請求の範囲】
【請求項１】
検索対象ファイルについて作成済みのインデクス情報を第１の記憶手段に記憶するステップと、前記第１の記憶手段に記憶されたインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定するステップと、決定された分割方針に従い検索対象ファイルのディレクトリを分割するステップと、走査対象ファイルの現在ディレクトリツリーのスナップショットを取得して第２の記憶手段に格納するステップと、前記現在ディレクトリツリーのスナップショットと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのディレクトリツリーのスナップショットについて前記分割方針を決定するステップで決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するステップと、当該分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力するステップとを備え、
前記分割方針を決定するステップは、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成方法。
【請求項２】
検索対象ファイルについて作成済みのインデクス情報を第１の記憶手段に記憶するステップと、検索対象ファイルの現在のディレクトリツリーをコピーしてバックアップディレクトリとして第２の記憶手段に格納するステップと、前記第１の記憶手段に記憶されたインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定するステップと、決定された分割方針に従い検索対象ファイルのバックアップディレクトリを分割するステップと、前記現在のディレクトリツリーのバックアップディレクトリと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのバックアップディレクトリツリーについて前記分割方針を決定するステップで決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するステップと、当該分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力するステップとを備え、
前記分割方針を決定するステップは、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成方法。
【請求項３】
検索対象ファイルについて作成済みのインデクス情報を記憶する第１の記憶手段と、この第１の記憶手段に記憶されたインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのディレクトリを分割し、走査対象ファイルの現在ディレクトリツリーのスナップショットを取得し、第２の記憶手段に格納する手段と、前記現在ディレクトリツリーのスナップショットと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのディレクトリツリーのスナップショットについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段とを備え、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成システム。
【請求項４】
検索対象ファイルについて作成済みのインデクス情報を記憶する第１の記憶手段と、検索対象ファイルの現在のディレクトリツリーをコピーしてバックアップディレクトリとして格納する第２の記憶手段と、前記第１の記憶手段に記憶されたインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのバックアップディレクトリを分割する手段と、前記第２の記憶手段に格納された現在のディレクトリツリーのバックアップディレクトリと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのバックアップディレクトリツリーについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段とを備え、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成システム。
【請求項５】
第１の記憶手段に記憶された検索対象ファイルについて作成済みのインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのディレクトリを分割し、走査対象ファイルの現在ディレクトリツリーのスナップショットを取得し、第２の記憶手段に格納する手段と、前記現在ディレクトリツリーのスナップショットと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのディレクトリツリーのスナップショットについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段とを備え、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成装置。
【請求項６】
検索対象ファイルについて作成済みのインデクス情報を記憶する第１の記憶手段と、検索対象ファイルの現在のディレクトリツリーをコピーしてバックアップディレクトリとして格納する第２の記憶手段と、前記第１の記憶手段に記憶されたインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのバックアップディレクトリを分割する手段と、前記第２の記憶手段に格納された現在のディレクトリツリーのバックアップディレクトリと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのバックアップディレクトリツリーについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段とを備え、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成装置。
【請求項７】
インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力するファイルリスト作成サーバで用いるプログラムであって、
前記ファイルリスト作成サーバを、
第１の記憶手段に記憶された検索対象ファイルについて作成済みのインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのディレクトリを分割し、現在ディレクトリツリーのスナップショットを取得し、第２の記憶手段に格納する手段と、前記現在ディレクトリツリーのスナップショットと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのディレクトリツリーのスナップショットについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段として機能させ、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成プログラム。
【請求項８】
インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力するファイルリスト作成サーバで用いるプログラムであって、
前記ファイルリスト作成サーバを、
検索対象ファイルの現在のディレクトリツリーのコピーをバックアップディレクトリとして第２の記憶手段に格納させる手段と、第１の記憶手段に記憶された検索対象ファイルについて作成済みのインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのバックアップディレクトリを分割する手段と、前記第２の記憶手段に格納された現在のディレクトリツリーのバックアップディレクトリと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのバックアップディレクトリツリーについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段として機能させ、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルサーバ内に保存された大量のファイルデータの階層を効率よく解析し、検索インデックスを更新すべきファイルリストを効率良く生成する方法、システム並びにプログラム、装置に関するものであり、特に、既に存在する、共通の命名規則に従って作成された２つのディレクトリ配下に置かれた、ファイル群についてファイルツリーを比較して追加、変更、削除されたファイルデータの一覧を効率的に作成する方法及びシステム並びにプログラム、装置に関するものである。
【背景技術】
【０００２】
近年、コンピュータ性能の高速化、ＨＤＤの大容量化に伴い、膨大な数の非定型文書が作られるようになっている。このため、膨大な数の文書の中から、必要とする文書を高速かつ的確に探し出すことの検索システムの必要性が高まっている。検索結果を的確なものとするためには、検索対象となる非定型文書が格納されたファイルサーバに対して検索インデクス作成後に行われたファイルデータの追加、変更、削除操作をタイムリーに検索インデクスに反映することが重要となる。これらを検索インデクスへと反映させる際、変更されていないファイルデータについても検索インデクスを更新すると多大な時間がかかってしまうため、一般的には追加、変更、削除のあったファイルデータのみに絞って検索インデクスを更新する。そのためには、追加、変更、削除されたファイルデータの一覧を作成する必要がある。
【０００３】
このような検索システムのニーズにこたえるため、ファイルサーバの中にはファイルデータの操作履歴を記憶し、外部からの要求に応じて追加、変更、削除されたファイルデータの一覧を提供するインタフェースを備えるものも存在している。あるいは、ある過去の状態のファイルツリーにアクセスできるようにするために、ある時点のファイルデータ状態を「スナップショット」として別ディレクトリに保持するためのインタフェースを提供するものも存在している。
なお、この種の先行技術として下記の特許文献１に開示された技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２６８４５６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
追加、変更、削除されたファイルデータの一覧を作成する際、ファイルサーバが一覧を提供している場合はそのインタフェースを利用すればよいが、そのようなインタフェースを備えていないファイルサーバの場合は、ファイルサーバ内に存在する検索インデクス作成対象範囲のファイルデータ全てを走査して、更新操作の有無を決定する必要がある。
ここで、追加、変更、削除されたファイルデータが少量である場合であっても、全てのファイルデータを走査する必要があるため、追加、変更、削除されたファイルデータの一覧の作成処理が、インデクス更新処理の長時間化の要因となってしまっている。
これに対して、ファイルサーバ内のファイルツリー構造を幾つかに分割し、それらのサブツリーに対する走査処理を並列に行うことにより、走査処理を高速化することが考えられる。
【０００６】
しかしながら、ファイルサーバ内のファイルツリーは環境によって様々であり未知であるため、効率的な分割方法を決定することは困難である。既に一度インデクスを作成したことのあるファイルサーバについては、自システム内にインデクス済みファイル一覧を持つことにより、追加、変更、削除されたファイルデータの一覧を高速に作成もできる。しかしながら、インデクス済みファイル一覧には、ファイルが更新されたのか否かを判別するためにファイルデータのハッシュ値を記憶させておく必要になるため、インデクス済みファイル一覧自体を記憶しておくために大容量のディスクが必要になり、検索対象のファイル数の増加に比例してシステムが大規模になってしまうという問題が生じる。
【０００７】
本発明の目的は、自システムにファイルデータのハッシュ値を含む大容量のインデクス済みファイル一覧を持つことなく、追加、変更、削除されたファイルデータの一覧を高速に作成し、検索インデクス更新処理を高速に行うことができるファイルリスト生成方法及びシステム並びにプログラム、装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係るファイルリスト生成方法は、検索対象ファイルについて作成済みのインデクス情報を第１の記憶手段に記憶するステップと、前記第１の記憶手段に記憶されたインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定するステップと、決定された分割方針に従い検索対象ファイルのディレクトリを分割するステップと、走査対象ファイルの現在ディレクトリツリーのスナップショットを取得して第２の記憶手段に格納するステップと、前記現在ディレクトリツリーのスナップショットと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのディレクトリツリーのスナップショットについて前記分割方針を決定するステップで決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するステップと、当該分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力するステップとを備え、
前記分割方針を決定するステップは、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
また、本発明に係るファイルリスト生成方法は、検索対象ファイルについて作成済みのインデクス情報を第１の記憶手段に記憶するステップと、検索対象ファイルの現在のディレクトリツリーをコピーしてバックアップディレクトリとして第２の記憶手段に格納するステップと、前記第１の記憶手段に記憶されたインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定するステップと、決定された分割方針に従い検索対象ファイルのバックアップディレクトリを分割するステップと、前記現在のディレクトリツリーのバックアップディレクトリと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのバックアップディレクトリツリーについて前記分割方針を決定するステップで決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するステップと、当該分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力するステップとを備え、
前記分割方針を決定するステップは、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
【０００９】
また、本発明に係るファイルリスト生成システムは、検索対象ファイルについて作成済みのインデクス情報を記憶する第１の記憶手段と、この第１の記憶手段に記憶されたインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのディレクトリを分割し、走査対象ファイルの現在ディレクトリツリーのスナップショットを取得し、第２の記憶手段に格納する手段と、前記現在ディレクトリツリーのスナップショットと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのディレクトリツリーのスナップショットについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段とを備え、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
また、本発明に係るファイルリスト生成システムは、検索対象ファイルについて作成済みのインデクス情報を記憶する第１の記憶手段と、検索対象ファイルの現在のディレクトリツリーをコピーしてバックアップディレクトリとして格納する第２の記憶手段と、前記第１の記憶手段に記憶されたインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのバックアップディレクトリを分割する手段と、前記第２の記憶手段に格納された現在のディレクトリツリーのバックアップディレクトリと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのバックアップディレクトリツリーについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段とを備え、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
【００１０】
本発明に係るファイルリスト生成装置は、第１の記憶手段に記憶された検索対象ファイルについて作成済みのインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのディレクトリを分割し、走査対象ファイルの現在ディレクトリツリーのスナップショットを取得し、第２の記憶手段に格納する手段と、前記現在ディレクトリツリーのスナップショットと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのディレクトリツリーのスナップショットについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段とを備え、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
また、本発明に係るファイルリスト生成装置は、検索対象ファイルについて作成済みのインデクス情報を記憶する第１の記憶手段と、検索対象ファイルの現在のディレクトリツリーをコピーしてバックアップディレクトリとして格納する第２の記憶手段と、前記第１の記憶手段に記憶されたインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのバックアップディレクトリを分割する手段と、前記第２の記憶手段に格納された現在のディレクトリツリーのバックアップディレクトリと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのバックアップディレクトリツリーについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段とを備え、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
【００１１】
本発明に係るファイルリスト生成プログラムは、インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力するファイルリスト作成サーバで用いるプログラムであって、
前記ファイルリスト作成サーバを、
第１の記憶手段に記憶された検索対象ファイルについて作成済みのインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのディレクトリを分割し、現在ディレクトリツリーのスナップショットを取得し、第２の記憶手段に格納する手段と、前記現在ディレクトリツリーのスナップショットと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのディレクトリツリーのスナップショットについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段として機能させ、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
また、本発明に係るファイルリスト生成プログラムは、インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力するファイルリスト作成サーバで用いるプログラムであって、
前記ファイルリスト作成サーバを、
検索対象ファイルの現在のディレクトリツリーのコピーをバックアップディレクトリとして第２の記憶手段に格納させる手段と、第１の記憶手段に記憶された検索対象ファイルについて作成済みのインデクス情報から検索対象ファイルのディレクトリＵＲＬを取得し、そのディレクトリＵＲＬを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分散サーバ群によって分割して行う分割方針を決定する分割方針決定手段と、決定された分割方針に従い検索対象ファイルのバックアップディレクトリを分割する手段と、前記第２の記憶手段に格納された現在のディレクトリツリーのバックアップディレクトリと前記分割方針を決定する前に取得して第３の記憶手段に格納しておいた検索対象ファイルのバックアップディレクトリツリーについて前記分割方針決定手段で決定した分割した単位で各ディレクトリ上の検索対象ファイルを前記分散サーバ群によって分散走査するファイル走査手段と、当該ファイル走査手段による分散走査結果を比較し、前記インデクス情報作成後に追加、削除、変更されたファイルの一覧を作成して出力する比較手段として機能させ、
前記分割方針を決定する手段は、検索対象ファイルのディレクトリの最上位階層から数えたディレクトリ数が所定数未満であれば検索対象ディレクトリの走査処理を行う分割数を１とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を１つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度１階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ストレージの持つスナップショット取得機能を利用し、前回インデクス時に取得したスナップショットディレクトリと今回インデクス時に取得するスナップショットディレクトリとを分散処理サーバ群を利用して分散して走査処理しながら両者を比較することにより、追加、変更、削除されたファイルのリストを作成する。
これにより、自システム内に検索対象ファイルのハッシュ値を含むデータを記憶する大容量のインデクス済みファイル一覧を持つことなく、既に一度検索インデクスを作成したことのあるファイルサーバに対して、ファイルサーバ上で追加、変更、削除されたファイルデータの一覧を高速に作成することが可能となる。これによって、検索インデクスの更新処理を高速に行うことが可能となり、結果として、検索システムによる検索結果を可能な限り的確なものとすることができる。
なお、スナップショットは追加、変更、削除されたファイルデータの一覧を作成することを主な目的とした新たなスナップショットを作成してもよいし、通常のバックアップ目的で作成したスナップショットを流用してもよい。また、スナップショットディレクトリの代わりに共通の命名規則に基づいた親ディレクトリに配置したバックアップディレクトリを作成し、前回と今回のバックアップディレクトリを、分散処理サーバ群を利用して分散して走査処理を行ってもよい。なお、以下の説明では自システムからの指令で追加、変更、削除されたファイルデータの一覧を作成することを主な目的とした新たなスナップショットを更新インデクス作成のたびに作成するものとして記述する。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る第一の実施形態におけるシステム構成図である。
【図２】検索インデクスに格納されるインデクス済みファイルのデータ構成例の図である。
【図３】ファイルサーバ内のディレクトリ構成の概念図である。
【図４】ファイルツリーを分析しファイルサーバ走査処理の分割方針を決定する処理のフローチャートである。
【図５】ファイルサーバを走査する処理のフローチャートである。
【図６】今回取得した検索対象ファイル群のスナップショットディレクトリと前回インデクス更新時に取得した検索対象ファイル群のスナップショットディレクトリの両スナップショットディレクトリ内のデータを、ファイルサーバ走査実行手段によって走査して得られたファイル一覧を用いて追加、変更、削除されたファイルデータの一覧を作成する処理のフローチャートである。
【図７】図６の続きを示すフローチャートである。
【図８】ＵＲＬリストの最終行処理のフローチャートである。
【図９】図８の続きを示すフローチャートである。
【図１０】ＵＲＬリストから取り出したファイルまたはディレクトリのＵＲＬの比較結果から、ファイルサーバ上のデータが追加または削除されたかどうかを決定して追加、変更、削除されたファイルデータの一覧に追加する処理のフローチャートである。
【図１１】ディレクトリまたはファイルに係るＵＲＬ組み合わせ決定処理のフローチャートである。
【図１２】前回取得または今回取得スナップショットディレクトリに係るＵＲＬ組み合わせ決定表である。
【図１３】ＵＲＬが示すディレクトリまたはファイルの追加、更新、削除ファイル一覧または次回走査範囲への追加処理判断表である。
【図１４】更新ファイル追加処理のフローチャートである。
【図１５】ファイルツリーの途中の階層で増加の割合が急激に大きくなるようなファイルツリーの概念図である。
【図１６】図１５のファイルツリーを例にした２階差分値を示す概念図である。
【図１７】反転文字列のソートによる追加、更新、削除ファイル発見方法の概念図である。
【図１８】本発明の他の実施形態を示すシステム構成図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施する場合の第一の実施形態について、図面に基づき詳細に説明する。
図１は、本発明に係る第一の実施形態におけるシステム構成図である。
図１において示したファイルリスト生成システムは、ファイルリスト作成サーバ１、分散処理サーバ群２およびファイルサーバ３（以下「サーバ等」という）を、ＬＡＮ（Local Area Network）４等の有線又は無線の通信回線により互いに通信可能に接続したシステムである。
【００１５】
図１においては、サーバ等はＬＡＮ４によって互いに通信可能に接続されているが、接続方法はＬＡＮに限定されるものではなく、例えばＷＡＮ（Wide Area Network）やインターネットによって接続されていてもよい。また、図１においては、サーバ等が同一ＬＡＮセグメント上で接続されているが、この構成は一例に過ぎず、どのような構成になっていてもよい。さらに、図１においては、ファイルリスト作成サーバ１、分散処理サーバ群２、およびファイルサーバ３はそれぞれ１台ずつ存在しているが、それぞれ２台以上存在しても構わない。また、ファイルリスト作成サーバ１、分散処理サーバ群２、およびファイルサーバ３はそれぞれ異なる装置である必要はなく、例えば、ファイルリスト作成サーバ１、分散処理サーバ群２、およびファイルサーバ３の機能を１台の装置によって実現することも可能である。
【００１６】
以上のような構成により、ファイルリスト作成サーバ１は分散処理サーバ群２を利用してファイルサーバ３上のファイルデータのうち、前回インデクスを作成した以降に追加、更新、削除されたファイルデータの一覧を作成する。
【００１７】
ファイルリスト作成サーバ１はＰＣ等の装置であり、記憶装置１６と通信可能に接続されている。記憶装置１６は磁気ディスク等の装置であり、ファイルリスト作成サーバ１に内蔵され又は外部接続される。記憶装置１６と、ファイルリスト作成サーバ１の主記憶装置等は、ファイルリスト作成サーバ１の記憶手段として機能する。
【００１８】
記憶装置１６には、検索インデクス１７が記憶されている。検索インデクス１７には、既に検索インデクスを作成したことのある、ファイルサーバ３上の検索対象ファイルのＵＲＬを含む属性情報が１以上記憶されている。サーバ等と通信可能に接続されている検索用インデクス作成サーバ５によって検索用インデクス１７は更新される。
ファイルリスト作成サーバ１はスケジューラ１１、ファイル走査処理分割方針決定手段１２、スナップショット作成処理実行手段１３、ファイル走査実行手段１４、およびファイルリスト比較手段１５を備えている。
【００１９】
また、ファイルリスト作成サーバ１はＣＰＵ、主記憶装置等を備えており、ＣＰＵは記憶装置１６に記憶されているファイルリスト比較手段１５等のプログラムを主記憶装置上にローディングし、その命令コードを実行することで各種の処理を実行する。
【００２０】
スケジューラ１１は追加、更新、削除されたファイルデータの一覧を定期的に作成するにあたり、記憶装置１６に記憶されている一覧作成処理実行間隔を参照してファイル走査処理分割方針決定手段１２を実行した後、スナップショット作成処理実行手段１３を実行してファイルサーバ３の記憶装置３１内にスナップショットを作成し、その後、ファイルサーバ走査実行手段１４、ファイルリスト比較手段１５を実行して、追加、更新、削除されたファイルデータの一覧を作成する。
【００２１】
ファイル走査処理分割方針決定手段１２は記憶装置１６に記憶されている検索インデクス１７を分析し、ファイル走査処理をどのように分割して並列分散実行させるかの方針を決定する。この動作については、ファイル走査処理分割方針決定処理（Ｓ４０１等）として後述する。
【００２２】
スナップショット作成処理実行手段１３はファイルサーバ３に対してスナップショット作成命令を発行し、ファイルサーバ３の記憶装置３１内に検索インデクス更新対象ファイル群のスナップショットを作成する。
ファイル走査実行手段１４はファイル走査処理分割方針決定手段１２によって決定されたファイルデータ走査処理の分割方針に基づいて、ファイルサーバ３上の前回インデクス更新時に取得した検索対象ファイル群のスナップショットディレクトリ、および今回のファイル走査で取得した検索対象ファイル群のスナップショットディレクトリ内にあるファイルデータを取得し、それぞれのスナップショットディレクトリにあるファイルデータの一覧を作成する。
【００２３】
ファイルリスト比較手段１５はファイル走査実行手段１４によって作成された前回インデクス更新時に取得した検索対象ファイル群のスナップショットディレクトリにあるファイルデータの一覧と、今回取得した検索対象ファイル群のスナップショットディレクトリ内にあるファイルの一覧を比較し、追加、更新、削除されたファイルデータの一覧を作成する。
この動作については、ファイルサーバ内データ走査処理（Ｓ５０１等）として後述する。
【００２４】
図２は検索インデクス１７の構成要素であるファイルレコード１７０のデータ構成図である。
検索インデクス１７は、１以上のインデクス済みファイルレコード１７０から構成される。インデクス済みファイルレコード１７０には、少なくともファイルのＵＲＬ１７１を含む、検索対象ファイルの属性情報（ファイル名、最終アクセス時刻、最終更新時刻、インデクス作成時刻等が記憶されている。
ファイルＵＲＬ１７１には、具体的にはファイルサーバ上のファイルを一意に識別するためのパスが設定される。例えばファイルサーバの識別名が”server1”であり、共有名がshare1である共有ディレクトリの直下にあるetcという名前のディレクトリにあるfile2.xmlを示すＵＲＬはhttp://server1/share1/etc/file2.xmlとなる。
【００２５】
図３はファイルサーバ内のディレクトリ構成を、具体例を用いて示した概念図である。
この概念図に示すファイルサーバ３のディレクトリ構成においては、あるファイルサーバ３の識別名が“server1”である。“server1”では２つのディレクトリが共有されており、それぞれ”share1”、”share2”という共有名により一意に識別可能である。“server1”の”share1”、”share2”には、図示したようなディレクトリおよびファイルが存在する。例えば、“server1”の“share1”には、“etc”、“doc”の２つのディレクトリが存在し、“etc”ディレクトリには“file1.doc”、“file2.xml”の２つのファイルが、“doc”ディレクトリには“file3.doc”の１つのファイルが存在する。同様に、“server1”の“share2”には、１つのディレクトリ“pjt”が存在し、“pjt”ディレクトリには“pjt1”、“pjt2”、“pjt3”の３つのディレクトリが存在し、そのうち“pjt1”ディレクトリには“file4.txt”、“file5.doc”の２つのファイルが存在する。
【００２６】
また、“share1”には、ファイルサーバ３の持つスナップショット作成インタフェースをファイルリスト作成サーバ１が持つスナップショット作成処理実行手段１３が呼び出すことによって作成されたスナップショットディレクトリが２つあり“~snapshot”というディレクトリの配下に存在している。
１つは“.IDX01”という名称で作成されており、もう１つは“.IDX02”という名称で作成されている。それぞれのスナップショットディレクトリの配下には、スナップショットを作成した時点の“share1”配下のディレクトリおよびファイル群が存在する。なお、追加、更新、削除されたファイルデータの一覧を作成することを主な目的として作成したスナップショットディレクトリの配下のファイルについては、原本ファイル群が上位ディレクトリに存在することもあり、検索インデクスを作成しなくともよい。以下の説明では、“~snapshot”配下については検索インデクスを作成しなかったものとして説明する。
なお、スナップショットにはファイルサイズの情報が付随しているので、これによりファイルが変更されているかどうかを検出することができる。
【００２７】
図４はファイル走査処理分割方針決定手段１２の動作を示すフローチャートである。
ファイル走査処理分割方針決定手段１２は、走査対象のファイルツリー構造を複数に分割して走査処理を並列に行うことで高速化するという本発明の目的に対し、分割された範囲があまりに小さかった場合には並列処理を行うことによるオーバーヘッドが並列処理による高速化のメリットを上回ってしまうことを避けるために、既にインデクス済みのファイルからディレクトリ構造を分析することにより、最初に行う走査処理の範囲が適切な大きさになるように判断する処理である。
このような判断処理は、走査対象のファイルツリー構造が、走査処理開始ディレクトリに近い上位階層ほどディレクトリ数が少なく、下位階層ほどディレクトリ数が多い三角形構造の場合に適している。三角形構造の中でも特に、階層間のディレクトリ数の増加の割合が一定ではなく途中の階層で増加の割合が急激に大きくなるような場合、最上位階層から増加割合が急激に大きくなる直前の階層までを最初の初回走査範囲に設定する。
【００２８】
図１５は途中の階層で増加の割合が急激に大きくなるようなファイルツリーの概念図である。図中の丸１５０６は１つのディレクトリを表す。なお、各ディレクトリの下にはファイルがある。また、下位階層のディレクトリは上位階層のいずれかのディレクトリに属している。
この概念図に示すファイルサーバ３のファイルツリーの構造においては、第一階層１５０１に１ディレクトリが属し、第二階層１５０２には３ディレクトリが属し、第三階層１５０３には６ディレクトリが属し、第四階層１５０４には１２ディレクトリが属し、第五階層１５０５には１００００ディレクトリが属している。このようなファイルツリー構造を持つファイルサーバとしては企業組織のヒエラルキーに即して構築された企業内ファイルサーバが考えられる。例えば第一階層１５０１を”本部”とし、第二階層１５０２を”部”、第三階層１５０３を”課”、第四階層１５０４を”各従業員”用のディレクトリとする場合、このようなディレクトリ数の比率を持つファイルツリー構造になる。
各階層間のディレクトリ数の増加の割合は階層間のディレクトリ数の２階差分値によって近似的に算出できる。
【００２９】
２階差分値とは図１６の説明図に示すように、各階層のディレクトリ数について上位階層と直下の下位階層のディレクトリ数の差を１階差分値としたとき、さらに下位階層のディレクトリ数と１階差分値との差を２階差分値とするものである。微分演算を近似したものに相当する。
【００３０】
図１６の説明図においては、第４階層と第５階層のディレクトリ数の２階差分値１６０３が急変しているために、第５階層でディレクトリ数が急変していることを近似的に検出することができる。
図１５の例においては、第一階層１５０１、第二階層１５０２、第三階層１５０３間の２階差分値は１となり、第二階層１５０２、第三階層１５０３、第四階層１５０４間の２階差分値は３となり、第三階層１５０３、第四階層１５０４、第五階層１５０５間の２階差分値は９９８２となる。これらの２階差分値の比較から第四階層１５０４と第五階層１５０５の間で増加の割合が急激に大きくなっていることが判断できる。ファイル走査処理分割方針決定手段１２はこの手法によって、最上位階層１５０１から第４階層１５０４までを１つの分割深度とする初回走査範囲として設定する。
【００３１】
初回走査範囲に設定した第４階層の以下の下位階層については、ディレクトリ数が多いため、その下位のディレクトリ階層を１深度単位として１階層単位で走査し、当該ディレクトリ上のファイルリストを作成する。
なお、ディレクトリ数が多い第５階層以下の階層においては、当該階層に属するディレクトリの走査を複数の分散処理サーバで分担して走査する。この場合、分担の仕方については任意である。
また、最下位階層までのディレクトリ数の集計結果が非常に少なく所定数未満であった場合には、分割して走査しても高速化の目的に反するので、分割数を１として走査する。
【００３２】
本実施形態では、検索対象ファイルについて現在のディレクトリ構造を反映したファイルサーバのディレクトリのスナップショットを記憶装置内に保持しておくことを前提とする。これは図４の処理でディレクトリの分割方針を決定した後、図５の処理を起動する前に、スナップショット取得命令を発行することにより実現されるものである。
【００３３】
そこでこのことを前提に、本実施形態では、まず、検索対象ファイルについて作成済みの検索インデクス情報により、インデクス作成直後の検索対象ファイルのディレクトリ構造を反映したディレクトリツリーを解明する。そして、その後、検索対象ファイルのリストから各をディレクトリのディレクトリ数を集計し、その集計結果からファイル走査を分散処理サーバ群で分散処理するためのディレクトリの分割方針を決定し、その決定した分割方針に従ってディレクトリを分割し、全てのディレクトリを走査（初回走査、次回走査、次々回走査・・・）しながらスナップショット取得命令をスナップショット作成処理実行手段１３宛に発行することにより、ファイルサーバ３の記憶装置３１内に、追加、削除されたファイルについての現在のファイルディレクトリ構造を反映したディレクトリツリーのスナップショットを取得する。そこで、ファイル走査の分割方針決定前に取得しておいたディレクトリツリーのスナップショットと、追加、削除されたファイルを反映したディレクトリーのスナップショットとを比較する。これにより、ディレクトリツリーの新規追加、または削除の状態により、追加されたファイル、削除されたファイルが判明する。また、ディレクトリは追加されていないが、内容が更新されたファイルがあればスナップショットに存在するファイルサイズ同士を比較することにより、更新されたファイルが判明する。
【００３４】
したがって、本実施形態においては、スナップショット同士の比較によりファイルの追加、削除、変更を検出するので、従来のように検索対象ファイルのハッシュ値を記憶しておく必要がなくなり、大規模容量の記憶手段を必要としない。
図４のＳ４０１に至るまでの処理は、前述のように、スケジューラ１１が、追加、更新、削除されたファイルデータの一覧を定期的に作成するにあたり、記憶装置１６に記憶されている一覧作成処理実行間隔を参照して、処理を開始させる。
【００３５】
まず、走査対象となるファイルサーバ３の共有ディレクトリに関わる全てのファイルのＵＲＬ１７１レコードを記憶装置１６に格納された検索インデクス１７から取得する（Ｓ４０１）。
次に取得した各ファイルＵＲＬ１７１を文字”/”でファイルパス上の各階層のディレクトリ名に分割する（Ｓ４０２）。例えば、前述の例でいうと、”http://server1/share1/etc/file2.xml”は、”http:”、””（空字列）、”server1”、”share1”、”etc”、“file2.xml”に分割される。末尾の要素はファイル名でありディレクトリ構造解析には用いないため破棄する。前述の例では“file2.xml”は用いずに破棄する。
【００３６】
次に、分割したディレクトリ名がそれぞれ、ファイルパス上の何階層目に所属しているか階層数を算出する（Ｓ４０３）。例えば前述の例で言うと、”http://server1/share1/etc/file2.xml”の”share1”は第一階層となり、“etc”は第二階層となる。
次に、階層ごとにディレクトリ数を集計する。例えば図３に示したファイルツリーの場合、共有ディレクトリ”share1”に係る第一階層は”share1”一つであると算出される。
同様に第二階層は”etc”と”doc”の二つであると算出される。ここで“~snapshot”配下のディレクトリは検索インデクスを作成していないため“~snapshot”は集計対象外となる。
【００３７】
Ｓ４０２とＳ４０３は分散処理サーバ群２において分散処理実行手段２１を利用して並列に分散処理する。例えば、ディレクトリＵＲＬ１７１を５０００行ずつ各分散処理サーバに分配し、各分散処理サーバは割り当てられたディレクトリＵＲＬ１７１一つずつに対して、Ｓ４０２とＳ４０３の処理を行う。
次に、階層ごとにユニークなディレクトリ名がいくつあるかを数えることにより、階層ごとのディレクトリ数を集計する（Ｓ４０４）。Ｓ４０４は分散処理サーバ群２において分散処理実行手段２１を利用して並列に分散処理する。Ｓ４０３で算出した階層数ごとに、ディレクトリ名を各分散処理サーバに分配し、各分散処理サーバは割り当てられた階層についてS４０４のユニークなディレクトリ数を集計する処理を行う。
【００３８】
次に、集計が完了した階層のうち、第一階層について処理を進める（Ｓ４０５）。
次に、第一階層の推定ファイル数を算出して、推定総ファイル数に加算する（Ｓ４０６）。なお、推定ファイル数は、Ｓ４０４で算出した第一階層のディレクトリ数に一定の数をかけることで算出する。一定の数とは例えば１００といった値である。この値はファイルリスト作成サーバ１上の設定ファイルなどに記憶している値を参照する。この値は、１ディレクトリが保持するファイルの平均の数に近い値を推定して設定することが望ましい。
【００３９】
次に推定総ファイル数が最高推定総ファイル数以上かどうかを決定する（Ｓ４０７）。
なお、最高推定総ファイル数はファイルリスト作成サーバ１上の設定ファイルなどに記憶している値を参照する。この値は、例えば２００００００といった値であり、一台のファイルリスト作成サーバ１が１度のファイル走査によって少なくとも数時間以内に走査完了できる数字を推定して設定することが望ましい。推定総ファイル数が最高推定総ファイル数以上だった場合は、最初の階層から今階層までをまとめて走査する対象として判断する（Ｓ４１２）。
【００４０】
すなわちこの場合は、第一階層のみを走査対象として判断する。最高推定総ファイル数は、まとめて走査する対象の範囲が際限なく拡大することを防ぐ目的で設定している。
推定総ファイル数が最高推定総ファイル数より少なかった場合は、次に、前々階層、前階層、今階層のディレクトリ数の２階差分値を計算する（Ｓ４０８）。第一階層の場合は、前々階層、前階層が無いため、第一階層のディレクトリ数そのものを２階差分値とする。
【００４１】
次に、２階差分値が階層数２階差分閾値以上かどうかを決定する（Ｓ４０９）。なお、階層数２階差分閾値はファイルリスト作成サーバ１上の設定ファイルなどに記憶している値を参照する。この値は階層間のディレクトリ数の増加の割合がどの程度急激であるかを近似的に示す値であり、例えば５０００といった値を設定する。
２階差分値が２階差分閾値以上である場合は、次に推定総ファイル数が最低推定総ファイル数以上であるかどうかを決定する（Ｓ４１０）。
【００４２】
なお、最低推定総ファイル数はファイルリスト作成サーバ１上の設定ファイルなどに記憶している値を参照する。この値は、例えば１００００００と言った値であり、一台のファイルリスト作成サーバ１が１度のファイル走査によって少なくとも数分以上走査にかけるファイル数を推定して、その数を設定することが望ましい。
【００４３】
推定総ファイル数が最低推定総ファイル数以上である場合は、最初の階層から今階層までをまとめて走査する対象として判断する（Ｓ４１２）。
Ｓ４１０の判断で推定総ファイル数が最低推定総ファイル数より少なかった場合は、次の階層に進む（Ｓ４１１）。
図４の処理はあまりに小さな範囲を走査範囲として設定しないようにするための処理であるため、一定数のファイルは走査範囲に含まれるようにＳ４１０の判断処理を加えている。
Ｓ４０９の判断で２階差分値が２階差分閾値より小さかった場合は、次の階層に進む（Ｓ４１１）。
Ｓ４１１で次の階層に進んだ後は、Ｓ４０６の処理に戻る。Ｓ４０７かＳ４０９とＳ４１０のどちらかの判断によって走査範囲が決まるまでＳ４０６からＳ４１１の処理を繰り返し実行する。
これらの処理により、ファイル走査実行手段１４が最初に行う走査処理の範囲として、適切な範囲が決定される。
【００４４】
図５はファイル走査実行手段１４とファイルリスト比較手段１５によって追加、更新、削除されたファイルデータの一覧を作成する処理の動作を示すフローチャートである。
図４のフローチャートに示した処理の終了後、スケジューラ１１はスナップショット作成処理実行手段１３を用いてファイルサーバ３の記憶装置３１内に検索対象ファイル群のスナップショットを作成し、その後に図５の処理を起動させる。このスナップショットが前述の前提となるスナップショットである。
図４のフローチャートで示された分割方針決定手段によって決定された範囲を走査範囲に設定する（Ｓ５０１）。
次に、今回取得した検索対象ファイル群のスナップショットディレクトリにおける走査範囲について走査し、ファイルとディレクトリのＵＲＬを列挙する（Ｓ５０２）。ファイルサーバ内の一部範囲を走査してファイルとディレクトリを列挙することは周知の技術であるため、ファイルサーバ走査実行手段１３がどのように走査を行うかについてはここでは詳細には記載しないが、例えばファイルリスト作成サーバ１がファイルサーバ３の記憶装置３１の検索対象ファイルのスナップショット３２を、ネットワークファイルシステムを通じてアクセス可能な状態にし、ファイルリスト作成サーバ１のローカルファイル用のファイルツリー探索プログラムを使用して各ファイルデータのファイルシステム上のファイルパスの一覧を出力するなどさせればよい。ファイルシステム上のファイルパスが求まれば、ファイルパスにファイルサーバ３の識別名などをファイルパスに付け加えることでＵＲＬを作成することができる。
【００４５】
次に、図５の処理を開始する直前または前回インデクス更新時に取得しておいた検索対象ファイルのスナップショット走査範囲について走査し、ファイルとディレクトリのＵＲＬを列挙する（Ｓ５０３）。
次に、ファイルリストを作成し、次回走査範囲を設定する（Ｓ５０４）。この次回走査範囲は、Ｓ５０２で走査された範囲の最下層のディレクトリが設定され、そのディレクトリの直下1階層分を走査範囲として設定する。すなわちＳ５０１で設定された初回の走査より後の走査では1階層ずつファイルツリーを走査する。この処理の詳細はファイルリスト作成と走査範囲設定処理（Ｓ６０１等）として後述する。
【００４６】
次に、次回走査範囲が空かどうかを判断する（Ｓ５０５）。
もし次回走査範囲が空であれば、ファイルツリーを全て探索し終えたので、処理を終了する。
次回走査範囲が空でなければ、Ｓ５０２に戻って次の走査範囲について走査し、ファイルとディレクトリのＵＲＬを列挙する。
【００４７】
図６はファイルリスト作成と走査範囲設定処理の動作を示すフローチャートである。これは図５のＳ５０４の処理の詳細なフローである。
最初に、Ｓ５０２とＳ５０３で列挙されたファイルとディレクトリのＵＲＬを合わせて反転文字列順にソートする（Ｓ６０１）。ここで反転文字列とは、文字列の表記順序を前後で反転（入れ替えた）させたものを言う。例えば「あいうえお」という文字列に対する反転文字列は「おえういあ」である。
【００４８】
Ｓ６０１で両スナップショットディレクトリから列挙されたファイルとディレクトリのＵＲＬを反転文字列順にソートした理由は、分散処理サーバ群２に追加、変更、削除されたファイルデータの一覧の作成を分散処理させるために、両スナップショットディレクトリに同一ファイルまたは同一ディレクトリが存在する場合、反転文字列順でソートすることによりファイルリスト内で両スナップショットディレクトリの同一ファイルまたは同一ディレクトリのＵＲＬを隣接させるためである。
【００４９】
図１７は図３で示したスナップショットディレクトリ３２とスナップショットディレクトリ３３の配下にあるファイルのＵＲＬを例にして、反転文字列順ソートの例を示したものである。
ファイルリスト１７０１では通常の文字列順に両スナップショットディレクトリ内のファイルＵＲＬをソートした場合を示している。ファイルリスト１７０２では反転文字列順にファイルＵＲＬをソートした場合を示している。ファイルリスト１７０３は見易さのためにファイルリスト１７０２を、並び順をそのままに文字列を再反転させたものである。
【００５０】
反転文字列順にソートすることにより１７０４で示すように、同一ファイルの両スナップショットのＵＲＬが隣接する。これは、同一ファイルのＵＲＬでは、スナップショットディレクトリ名の部分で初めて差異が生じるためである。
この特徴を利用することで、１７０５で示すような隣接する２行の比較によって前回更新インデクス時に取得したスナップショットディレクトリと、今回取得したスナップショットディレクトリにどのような差異があるかを判断することができる。
このようにＵＲＬリスト全体を意識せずに、隣接する２行のみを見れば追加、変更、削除されたファイルデータの一覧が作成できる状態にすることにより、追加、変更、削除されたファイルデータの一覧の作成処理を分散処理サーバ群２に分散させることが可能になる。
【００５１】
この反転文字列順にソートされたＵＲＬリストから追加、変更、削除されたファイルデータの一覧を作成する処理について、図６のＳ６０２以降で説明する。
Ｓ６０２でＵＲＬリストの先頭２行をとりだす。
次に、先頭２行のＵＲＬ同士を文字列として比較する（Ｓ６０３）。
次に、Ｓ６０３の比較の結果、ＵＲＬのスナップショットディレクトリ以下が文字列として一致しているかどうかを判断する（Ｓ６０４）。
【００５２】
もし一致していた場合は、前回更新インデクス時に取得したスナップショットディレクトリ配下にあるファイルまたはディレクトリと、今回取得したスナップショットディレクトリ配下のファイルまたはディレクトリのＵＲＬが一致しているということなので、このファイルまたはディレクトリは、新規にファイルサーバ３上に追加されたファイルまたはディレクトリや、前回インデクスされたファイルまたはディレクトリが削除されたものではなく、変更が無かった、または更新があったファイルまたはディレクトリだと判断できる。このファイルまたはディレクトリは更新の可能性があるファイルまたはディレクトリであるとして、追加、更新、削除されたファイルデータの一覧に追加する処理（Ｓ６０５）を行う。この処理の詳細は更新ファイル追加処理（Ｓ９０１等）として後述する。
【００５３】
次に、ＵＲＬリストに次の行があるかどうかを判断する（図７のＳ６０６）。
もしＵＲＬリストに次の行がある場合は、次に、ＵＲＬリストに更に次の行があるかを判断する（Ｓ６０７）。
もしＵＲＬリストに更に次の行がある場合、すなわちＵＲＬリストに次の２行がある場合は、次の２行を取り出す（Ｓ６０８）。
次に、図６のＳ６０３に戻り、次のＵＲＬ同士を比較する。ＵＲＬリストの全てのＵＲＬについて処理を終えるまで、これらの処理を繰り返し実行する。
【００５４】
もしＳ６０６の判断で、ＵＲＬリストに次の行が無かった場合は、ＵＲＬリストの全てのＵＲＬについて処理を終えたとして処理を終了する。
もしＳ６０７の判断でＵＲＬリストに更に次の行が無かった場合、すなわち、ＵＲＬリストに１行しか残っていなかった場合は、その最終行について追加、更新、削除ファイル一覧に追加する処理を行う（Ｓ６０９）。この処理の詳細はＵＲＬリストの最終行処理（Ｓ７０１等）として後述する。
【００５５】
もしＳ６０４の判断で、ＵＲＬのスナップショットディレクトリ以下が文字列として一致していなかった場合は、ファイルサーバ３上にファイルまたはディレクトリが追加された、または、前回インデクスされたファイルまたはディレクトリが削除されたと判断できるので、ファイルが新規に追加されたのか、あるいはファイルが削除されたのかを決定し、追加、更新、削除ファイル一覧に追加する処理を行う（Ｓ６１０）。この処理の詳細は追加削除ファイル追加処理（Ｓ８０１等）として後述する。
次にＵＲＬリストに次の行があるかどうかを判断する（Ｓ６１１）。
もしＵＲＬリストに次の行がある場合は、今取り出している１行目を判断済みの行として破棄し、今取り出している２行目を１行目にシフトし、次の行を取り出して２行目とする（Ｓ６１２）。
【００５６】
もしＵＲＬリストに次の行が無い場合は、今取り出している２行目を最終行としてＵＲＬリストの最終行処理（Ｓ６０９）をおこなう。
【００５７】
このような方法でＵＲＬリストのＵＲＬを先頭から最後尾まで比較していくことで、該当範囲について追加、更新、削除されたファイルを全て追加、更新、削除されたファイルデータの一覧に追加することができる。
これらの処理により、今回の走査範囲についての追加、更新、削除されたファイルデータの一覧が作成され、次回の走査範囲が決定される。
【００５８】
図８、図９はＵＲＬリストの最終行処理の動作を示すフローチャートである。これは図６のＳ６０９の処理の詳細なフローである。
最初に最終行のＵＲＬが今回取得したスナップショットディレクトリのものかどうかを判断する（Ｓ８０１）。
もし最終行のＵＲＬが今回取得したスナップショットディレクトリのものだった場合は次にＵＲＬがディレクトリのものかどうかを判断する（Ｓ８０２）。
もしＵＲＬがディレクトリのものだった場合は、走査範囲の最下層のディレクトリかどうかを判断する（Ｓ８０３）。例えば、図１５のファイルツリーで第一階層１５０１から第五階層１５０５までを走査範囲に設定した場合は、第五階層１５０５に属するディレクトリのＵＲＬが最下層のディレクトリと判断される。
【００５９】
もしＵＲＬが示すディレクトリが最下層のディレクトリだった場合は、そのディレクトリは次回走査範囲における起点ディレクトリの一つとして含まれるため、次回走査範囲に追加する（Ｓ８０４）。この次回走査範囲はファイルリスト作成サーバ１の主記憶装置上に保持してもよいし、次回走査範囲に追加されるディレクトリ数が多い場合は記憶装置１５に一時的に記憶して次回処理の際にロードするようにしてもよい。
【００６０】
もしＳ８０３の判断でＵＲＬが走査範囲の最下層のディレクトリではなかった場合は、そのディレクトリは次回走査範囲に追加する必要はないので、そのまま図８の処理を終了する。
もしＳ８０２の処理でＵＲＬがディレクトリではなく、ファイルのものだった場合は、そのファイルは前回インデクス更新時には存在していなかったが、今回インデクス時には存在しているファイル、すなわちファイルサーバ３に追加されたファイルと判断できるため、追加ファイルとして追加、更新、削除ファイル一覧に追加する（Ｓ８０５）。
【００６１】
もしＳ８０１の処理で、最終行のＵＲＬが今回取得したスナップショットディレクトリのものではなく、前回インデクス更新時に取得したスナップショットディレクトリのものだった場合は、次にＵＲＬがディレクトリのものかどうかを判断する（Ｓ８０６）。
【００６２】
もしＵＲＬがディレクトリのものだった場合、そのディレクトリは前回インデクス更新時には存在していたが、今回インデクス時には存在していなかったディレクトリ、すなわちファイルサーバ３から削除されたディレクトリと判断できる。この場合、検索インデクスにインデクスされている、そのディレクトリ以下のファイルを全て削除することが必要である。そのため、まず検索インデクスからディレクトリ以下のファイルの一覧を取得する（Ｓ８０７）。
【００６３】
次にＳ８０７で得られた一覧のファイル全てを削除ファイルとして追加、更新、削除ファイル一覧に追加する（Ｓ８０８）。
もしＳ８０６の処理でＵＲＬがディレクトリではなく、ファイルのものだった場合は、そのファイルは前回インデクス更新時には存在していたが、今回インデクス時には存在していなかったファイル、すなわちファイルサーバ３から削除されたファイルと判断できるため、削除ファイルとして追加、更新、削除ファイル一覧に追加する（Ｓ８０９）。
これらの処理により、ＵＲＬリストの最終行のＵＲＬが、追加、更新、削除ファイル一覧または次回走査範囲に追加される。
【００６４】
図１０は追加削除ファイルを追加、更新、削除ファイル一覧または次回走査範囲に追加する処理の動作を示すフローチャートである。
最初に取り出した２つのＵＲＬがディレクトリのものかファイルのものかを判断し、１行目のＵＲＬがファイル、２行目のＵＲＬがファイルの組み合わせか、１行目のＵＲＬがファイル、２行目のＵＲＬがディレクトリの組み合わせか、１行目のＵＲＬがディレクトリ、２行目のＵＲＬがファイルの組み合わせか、１行目のＵＲＬがディレクトリ、２行目のＵＲＬがディレクトリの組み合わせか、のいずれであるかを判断する（Ｓ１００１）。この処理の詳細は、ディレクトリまたはファイルに係るＵＲＬ組み合わせ決定処理（Ｓ１００１等）として後述する。
【００６５】
次に取り出した２つのＵＲＬについて、１行目と２行目のＵＲＬがそれぞれ前回インデクス更新時に取得したスナップショットディレクトリのものか、今回取得したスナップショットディレクトリのものかを判断し、組み合わせを求める（Ｓ１００２）。この組み合わせの詳細は、前回取得または今回取得スナップショットディレクトリに係るＵＲＬ組み合わせ決定表（１２０１等）として後述する。
【００６６】
次にＳ１００１、Ｓ１００２の判断結果から、取り出したＵＲＬが示すディレクトリまたはファイルについて追加、更新、削除ファイル一覧または次回走査範囲に追加する（Ｓ１００３）。この判断の詳細はＵＲＬが示すディレクトリまたはファイルの追加、更新、削除ファイル一覧または次回走査範囲への追加処理判断表（１３０１等）として後述する。
【００６７】
図１１は取り出した２つのＵＲＬそれぞれについて、ディレクトリまたはファイルＵＲＬかを判断し、組み合わせを決定する処理の動作を示すフローチャートである。
最初に１行目のＵＲＬがディレクトリのものかどうかを判断する（Ｓ１１０１）。
もしＳ１１０１の判断で、１行目のＵＲＬがディレクトリのものではなく、ファイルだった場合は、次に２行目のＵＲＬがディレクトリのものかどうかを判断する（Ｓ１１０２）。
もしＳ１１０２の判断で、２行目のＵＲＬがディレクトリのものではなく、ファイルだった場合は、この２行のＵＲＬはファイル、ファイルの組み合わせと判断される。図１０のＳ１００３の決定処理の説明の便宜上、この組み合わせをＡ（１１０４）と名づける。
もしＳ１１０２の判断で、２行目のＵＲＬがディレクトリのものだった場合は、この２行のＵＲＬはファイル、ディレクトリの組み合わせと判断される。この組み合わせも同様に便宜上Ｂ（１１０５）と名づける。
【００６８】
もしＳ１１０１の判断で、１行目のＵＲＬがディレクトリのものだった場合は、次に２行目のＵＲＬがディレクトリのものかどうかを判断する（Ｓ１１０３）。
もしＳ１１０３の判断で、２行目のＵＲＬがディレクトリのものではなく、ファイルだった場合は、この２行のＵＲＬはディレクトリ、ファイルの組み合わせと判断される。この組み合わせも同様に便宜上Ｃ（１１０６）と名づける。
【００６９】
もしＳ１１０３の判断で、２行目のＵＲＬがディレクトリのものだった場合は、この２行のＵＲＬはディレクトリ、ディレクトリの組み合わせと判断される。この組み合わせも同様に便宜上Ｄ（１１０７）と名づける。
【００７０】
図１０のＳ１００３において、取り出した２つのＵＲＬそれぞれについて、前回インデクス更新時に取得したスナップショットディレクトリ配下のものか、今回取得したスナップショットディレクトリ配下のものかを判断する処理があった。この判断自体は周知の技術を用いることで容易に実現可能であるため詳細はここでは記述しないが、例えば文字列中に前回インデクス更新時に取得したスナップショットディレクトリを示す文字列が含まれているか否かを決定するなどの手法が考えられる。
【００７１】
図１２は２つのＵＲＬそれぞれを判断した結果を表１２０１として示したものである。
ここでＵＲＬの前半部分の「http://server1/share1/」は見易さのため省略してある。また、＜Ａ＞や＜Ｂ＞はスナップショットディレクトリ以下の適当なファイルパスを示す記号として用いている。すなわち表で「.IDX01/<A>」と表記しているものは例えば「http://server1/share1/.IDX01/etc/file1.doc」というファイルＵＲＬを示している。
表１２０１において、１２０７のような「（※１）」が記述されている組み合わせは同一ＵＲＬが２行並んでいる場合を示しており、今まで述べてきた方法でＵＲＬリストを作成した場合、決して現れない。
【００７２】
同様に、１２０８のような「（※２）」が記述されている組み合わせは、図６のＳ６０１で反転文字列ソート処理を行っているため、これも現れない。
出現しうるＵＲＬの組み合わせは表の１２０２から１２０７に示す６種類である。これらの組み合わせに説明の便宜上１から６という名をつける。
【００７３】
組み合わせ１から６のうち、５（１２０６）と６（１２０７）については取り出した２行が同一ＵＲＬの場合であり、図６のＳ６０４の判断処理によってＳ６０５に進む場合である。よって、Ｓ６１０の処理について述べている図１２、および次の図１３では無視できるケースである。
【００７４】
図１０のＳ１００３において、Ｓ１００１とＳ１００２の判断結果から取り出したＵＲＬを追加、更新、削除ファイル一覧または次回走査範囲に追加する処理があった。Ｓ１００１の判断結果ＡからＤとＳ１００２の判断結果のうち取り扱うべきケース１から４の組み合わせによって、取り出したＵＲＬをどのように扱うべきかを表１３０１として図１３に示す。
例えばＳ１００１の判断結果がＡ（１１０４）であり、Ｓ１００２の判断結果が１（１２０２）だった場合は、取り出したＵＲＬの１行目のＵＲＬが示すファイルを削除ファイルとして追加、更新、削除ファイル一覧に追加する（１３０２）。
【００７５】
なお、１００３では全て取り出したＵＲＬの１行目のみを追加、更新、削除ファイル一覧または次回走査範囲に追加する。表１３０１で１３０３、１３０４として示したＳ１００２の判断結果が２だった場合、および４だった場合は、もし次の行があった場合、その２行の判断結果はＳ１００２の判断結果が３だった場合もしくは４だった場合にしかなりえない。更に、これらの処理は図８に示した次の行が最終行だった場合のフローチャートで行われる処理と同一の結果になる。よって１３０３、１３０４の場合については、この時点で２行目のＵＲＬが示すディレクトリもしくはファイルもどのように処理すればよいか決定可能である。この実施形態では１行目のＵＲＬについてのみ処理し、２行目のＵＲＬについては図６の繰り返し処理の次の回で処理するものとして説明を続ける。
【００７６】
図１４は更新ファイル追加処理の動作を示すフローチャートである。これは図６のＳ６０５の処理の詳細なフローである。
最初に、ＵＲＬがディレクトリのものであるかどうか判断する（Ｓ１４０１）。スナップショットディレクトリ以下のＵＲＬは同一であるため、判断に使用するＵＲＬは１行目でもよいし、２行目でもよい。
【００７７】
もしＵＲＬがディレクトリのものである場合は、次に走査範囲の最下層のディレクトリであるかどうかを判断する（Ｓ１４０２）。走査範囲については今回取得したスナップショットディレクトリに係るＵＲＬを用いて判断する。
もしＵＲＬが示すディレクトリが走査範囲の最下層のディレクトリだった場合は、そのディレクトリは次回走査範囲における起点ディレクトリの一つとして含まれるため、次回走査範囲に追加する（Ｓ１４０３）。
【００７８】
もしＳ１４０２の判断で走査範囲の最下層のディレクトリではなかった場合は、現走査範囲に下位のディレクトリが含まれているため、そのディレクトリは次回走査範囲に含める必要は無い。また、ディレクトリについての検索インデクスは作成する必要がないため、追加、更新、削除ファイル一覧に追加する処理も必要ない。よって処理を終了する。
もしＳ１４０１の判断で、ＵＲＬがディレクトリのものではなくファイルのものだった場合は、取り出した２行のＵＲＬが表すファイルについて、ファイルの更新時刻やサイズなどのメタデータからファイル情報ハッシュ値を算出し、２つのハッシュ値を比較する（Ｓ１４０４）。
【００７９】
次に、比較したハッシュ値に差があるかどうかを判断する（Ｓ１４０５）。
Ｓ１４０５の判断でハッシュ値に差がある場合は、そのファイルが更新されていることを示すので、次にそのＵＲＬを更新ファイルとして追加、更新、削除ファイル一覧にＵＲＬを追加する（Ｓ１４０６）。
Ｓ１４０５の判断でハッシュ値に差が無い場合は、そのファイルが更新されていないことを示すので、そのファイルについては追加、更新、削除ファイル一覧に追加する必要は無い。そのため、これで処理を終了する。
【００８０】
これらの処理により、ＵＲＬがファイルであり、かつ更新されていた場合は、更新ファイルであるとして追加、更新、削除されたファイルデータの一覧に追加され、また、走査範囲の最下層のディレクトリの場合は次回走査範囲に追加される。
【００８１】
図１８は、本発明の他の実施形態を示すシステム構成図である。この実施形態は、通常のバックアップ目的で作成したスナップショットを流用して追加、更新、削除されたファイルデータの一覧を生成するものである。
すなわち、スナップショットは、ストレージ管理者が“簡単”に(ボタン1クリックで)「すばやく」「少ない容量で」対象とするファイルの「バックアップを取得する」機能である。ストレージ管理者が手動のコピー＆ペーストで取得したバックアップディレクトリと、スナップショットディレクトリは、ほぼ同じのものである。
本実施形態では、ファイルサーバ３の記憶装置１８３１に、２つのバックアップディレクトリを格納し、これらのバックアップディレクトリに格納した今回インデクス対象とする検索対象ファイル群のバックアップディレクトリ１８３２と、前記インデクス更新時に対象とした検索対象ファイル群のバックアップディレクトリ１８３３とを、図１の今回取得した検索対象ファイル群のスナップショット３２と前回インデクス更新時に取得した検索対象ファイル群のスナップショットとの代わりに使用し、前回インデクス更新時（作成時）より新たに追加、更新、削除されたファイルデータの一覧を生成するものである。
ファイルリスト作成サーバ１は、ファイル走査処理分割方針決定手段１２、スナップショット作成処理手段１２、ファイル走査実行手段１４、ファイルリスト比較手段１５、分散処理サーバ群２を図１の実施形態と同様に用い、前回インデクス更新時（作成時）より新たに追加、更新、削除されたファイルデータの一覧を生成する。
したがって、詳細な説明は省略する。
なお、本実施形態においては、スナップショット作成処理手段に代えて、ストレージ管理者が検索対象ファイルの現在のディレクトリツリーを手動でコピー＆ペーストしてバックアップディレクトリとして記憶手段に記憶させる点が前述の実施形態の動作と異なる。
【符号の説明】
【００８２】
１    ファイルリスト作成サーバ
２    分散処理サーバ群
３    ファイルサーバ
４    ネットワーク
１１    スケジューラ
１２    ファイル走査処理分割方針決定手段
１３    スナップショット作成処理実行手段
１４    ファイル走査実行手段
１５    ファイルリスト比較手段
１６    ファイルリスト作成サーバ１に接続された記憶装置
１７    検索インデクス
２１    分散処理実行手段
３１    ファイルサーバ３に接続された記憶装置
３２    今回取得した検索対象ファイル群のスナップショット
３３    前回インデクス更新時に取得した検索対象ファイル群のスナップショット
１６０  検索インデクス１６のファイルレコード
１６１  ファイルＵＲＬ
【図１】
0005759915.tif 000002
【図２】
0005759915.tif 000003
【図３】
0005759915.tif 000004
【図４】
0005759915.tif 000005
【図５】
0005759915.tif 000006
【図６】
0005759915.tif 000007
【図７】
0005759915.tif 000008
【図８】
0005759915.tif 000009
【図９】
0005759915.tif 000010
【図１０】
0005759915.tif 000011
【図１１】
0005759915.tif 000012
【図１２】
0005759915.tif 000013
【図１３】
0005759915.tif 000014
【図１４】
0005759915.tif 000015
【図１５】
0005759915.tif 000016
【図１６】
0005759915.tif 000017
【図１７】
0005759915.tif 000018
【図１８】
0005759915.tif 000019