(57)【特許請求の範囲】
【請求項１】
検索対象ファイルを管理するファイルサーバから前回の検索インデクス作成処理以降に検索対象ファイルに対して実施されたファイルデータの追加、変更、削除の操作履歴リストを取得する第１のステップと、取得した操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他のファイルの操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力する第２のステップとを備え、
前記第２のステップにおいて、前記第１のステップで取得した操作履歴件数が所定件数以上である場合は、取得した操作履歴リストをファイルパス名でソートし、同一のファイルパスに関する操作履歴リストについては同一の分散処理サーバが割り当たるように操作履歴リストを分割し、前記分割した夫々について複数の分散処理サーバで生成した差分リストを集約して出力することを特徴とするファイルリスト生成方法。
【請求項２】
前回の検索インデクス作成処理以降から現在までの期間を複数の期間に分割し、その分割期間毎に各期間の操作履歴リストを前記第１のステップで取得し、その取得した操作履歴リストの処理を複数の分散処理サーバに割当て、前記第２のステップにおいて各分散処理サーバに割当てた操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他の分散処理サーバが分散処理した操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力することを特徴とする請求項１に記載のファイルリスト生成方法。
【請求項３】
検索対象ファイルを管理するファイルサーバから前回の検索インデクス作成処理以降に検索対象ファイルに対して実施されたファイルデータの追加、変更、削除の操作履歴リストを取得する第１の手段と、取得した操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他のファイルの操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力する第２の手段とを備え、
前記第２の手段は、前記第１の手段が取得した操作履歴件数が所定件数以上である場合は、取得した操作履歴リストをファイルパス名でソートし、同一のファイルパスに関する操作履歴リストについては同一の分散処理サーバが割り当たるように操作履歴リストを分割し、前記分割した夫々について複数の分散処理サーバで生成した差分リストを集約して出力することを特徴とするファイルリスト生成システム。
【請求項４】
前回の検索インデクス作成処理以降から現在までの期間を複数の期間に分割し、その分割期間毎に各期間の操作履歴リストを前記第１の手段で取得し、その取得した操作履歴リストの処理を複数の分散処理サーバに割当て、各分散処理サーバに割当てた操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他の分散処理サーバが分散処理した操作履歴と共に前記第２の手段が集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力することを特徴とする請求項３に記載のファイルリスト生成システム。
【請求項５】
ファイルリスト作成サーバで使用するプログラムであって、
前記ファイルリスト作成サーバを、
検索対象ファイルを管理するファイルサーバから前回の検索インデクス作成処理以降に検索対象ファイルに対して実施されたファイルデータの追加、変更、削除の操作履歴リストを取得する第１の手段と、取得した操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他のファイルの操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力する第２の手段として機能させ、
前記第２の手段は、前記第１の手段が取得した操作履歴件数が所定件数以上である場合は、取得した操作履歴リストをファイルパス名でソートし、同一のファイルパスに関する操作履歴リストについては同一の分散処理サーバが割り当たるように操作履歴リストを分割し、前記分割した夫々について複数の分散処理サーバで生成した差分リストを集約して出力することを特徴とするファイルリスト生成プログラム。
【請求項６】
前回の検索インデクス作成処理以降から現在までの期間を複数の期間に分割し、その分割期間毎に各期間の操作履歴リストを前記第１の手段で取得し、その取得した操作履歴リストの処理を複数の分散処理サーバに割当て、各分散処理サーバに割当てた操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他の分散処理サーバが分散処理した操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力する第２の手段として機能させることを特徴とする請求項５に記載のファイルリスト生成プログラム。
【請求項７】
検索対象ファイルを管理するファイルサーバから前回の検索インデクス作成処理以降に検索対象ファイルに対して実施されたファイルデータの追加、変更、削除の操作履歴リストを取得する第１の手段と、取得した操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他のファイルの操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力する第２の手段とを備え、
前記第２の手段は、前記第１の手段が取得した操作履歴件数が所定件数以上である場合は、取得した操作履歴リストをファイルパス名でソートし、同一のファイルパスに関する操作履歴リストについては同一の分散処理サーバが割り当たるように操作履歴リストを分割し、前記分割した夫々について複数の分散処理サーバで生成した差分リストを集約して出力することを特徴とするファイルリスト生成装置。
【請求項８】
前回の検索インデクス作成処理以降から現在までの期間を複数の期間に分割し、その分割期間毎に各期間の操作履歴リストを前記第１の手段で取得し、その取得した操作履歴リストの処理を複数の分散処理サーバに割当て、各分散処理サーバに割当てた操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他の分散処理サーバが分散処理した操作履歴と共に前記第２の手段が集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力することを特徴とする請求項７に記載のファイルリスト生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索システムにおいて検索インデクスを更新すべきファイルデータについて、そのリストを生成する方法及びシステム並びにプログラム、装置に係るものであり、特に、検索インデクス作成対象のファイルサーバが、ファイルサーバに対して行われたファイルサーバ内データの操作履歴を取得するインタフェースを備えている場合について、そのインタフェースを用いて取得した操作履歴から、ファイルサーバ内データのうち、追加、更新、削除されたファイルの一覧を高速に作成する方法、システム、プログラム及び装置に関するものである。
【背景技術】
【０００２】
近年、コンピュータ性能の高速化、ＨＤＤの大容量化に伴い、膨大な数の非定型文書が作られるようになっている。このため、膨大な数の文書の中から、必要とする文書を高速かつ的確に探し出すことの可能な検索システムの必要性が高まっている。検索結果を的確なものとするためには、検索対象となる非定型文書が格納されたファイルサーバに対して検索インデクス作成後に行われたファイルデータの追加、変更、削除操作をタイムリーに検索インデクスに反映することが重要となる。これらを検索インデクスへと反映させる際、変更されていないファイルデータについても検索インデクスを更新すると多大な時間がかかってしまうため、一般的には追加、変更、削除のあったファイルデータのみに絞って検索インデクスを更新する。そのためには、追加、変更、削除されたファイルデータの一覧を作成する必要がある。
【０００３】
このような検索システムのニーズにこたえるため、ファイルサーバの中にはファイルデータの操作履歴を記憶し、外部からの要求に応じて操作履歴を提供するインタフェースを備えるものも存在している。
先行技術として下記の特許文献１に開示されたものが知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２６８４５６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ファイルデータの追加、変更、削除操作をタイムリーに検索インデクスに反映するために、ファイルサーバ内の検索対象ファイルについての検索インデクスの新規作成処理や、追加、変更、削除されたファイルの検索インデクス更新処理を、多数のサーバを用いて分散処理させることで高速に実施する方法が考えられる。
インデクス作成、更新対象ファイルデータの一覧を作成する際、ファイルサーバが更新ファイルの一覧を返すインタフェースを提供している場合は、そのインタフェースを利用すればよいが、そのようなインタフェースを備えていないファイルサーバの場合は、一般的にファイルサーバ内に存在する検索インデクス作成対象範囲のファイルデータ全てを走査して、対象ファイルの列挙や、更新操作の有無を判定する必要がある。
特にインデクス更新の際は、追加、変更、削除されたファイルデータが少量である場合であっても、全てのファイルデータを走査する必要があるため、追加、変更、削除されたファイルデータの一覧の作成処理が、インデクス更新処理の長時間化の要因となってしまっている。
【０００６】
一方でファイルサーバがファイル操作の履歴リストを返すインタフェースを備えている場合、そのインタフェースを用いて操作履歴リストを取得し、操作履歴リストに従って検索インデクスに追加、変更、削除を反映する方法が考えられる。しかし、操作履歴リストには同一のファイルに関する複数の操作履歴が含まれている場合がある。この場合、操作履歴リストの時系列に沿って検索インデクスを更新しなければ正しく検索インデクスを更新することができない。このような逐次的な処理が必要な場合、例えば操作履歴リストを分割して多数のサーバを用いて分散処理を行い、検索インデクスを更新する場合、検索インデクス更新前に分散処理結果を操作履歴リストの時系列順に並べて適用する必要があり、仮に操作履歴リストの後半部分の処理が高速に完了したとしても操作履歴リストの前半部分の処理が完了するまで待たなければならない。操作履歴リスト中に同一ファイルに関して複数の操作履歴が含まれていることが逐次処理が必要な原因である。
【０００７】
本発明の目的は、操作履歴リストを解析し、同一ファイルについて最新の操作のみが含まれるリスト、すなわちファイルサーバ内で追加、変更、削除されたファイルデータの最新の一覧（以下、差分リストと称する）を作成することであり、かつ、この履歴リストから差分リストへの変換処理を、分散処理サーバ群を利用して分散実行することにより、大容量ストレージが返す大きな操作履歴リストを高速に差分リストに変換することで、検索インデクスの新規作成、更新処理の分散実行を容易に実行できるようにし、検索インデクスを高速に最新の状態にすることである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明に係るファイルリスト生成方法は、検索対象ファイルを管理するファイルサーバから前回の検索インデクス作成処理以降に検索対象ファイルに対して実施されたファイルデータの追加、変更、削除の操作履歴リストを取得する第１のステップと、取得した操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他のファイルの操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力する第２のステップとを備え、
前記第２のステップにおいて、前記第１のステップで取得した操作履歴件数が所定件数以上である場合は、取得した操作履歴リストをファイルパス名でソートし、同一のファイルパスに関する操作履歴リストについては同一の分散処理サーバが割り当たるように操作履歴リストを分割し、前記分割した夫々について複数の分散処理サーバで生成した差分リストを集約して出力することを特徴とする。
また、前回の検索インデクス作成処理以降から現在までの期間を複数の期間に分割し、その分割期間毎に各期間の操作履歴リストを前記第１のステップで取得し、その取得した操作履歴リストの処理を複数の分散処理サーバに割当て、前記第２のステップにおいて各分散処理サーバに割当てた操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他の分散処理サーバが分散処理した操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力することを特徴とする。
【０００９】
また、本発明に係るファイルリスト生成システムは、検索対象ファイルを管理するファイルサーバから前回の検索インデクス作成処理以降に検索対象ファイルに対して実施されたファイルデータの追加、変更、削除の操作履歴リストを取得する第１の手段と、取得した操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他のファイルの操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力する第２の手段とを備え、
前記第２の手段は、前記第１の手段が取得した操作履歴件数が所定件数以上である場合は、取得した操作履歴リストをファイルパス名でソートし、同一のファイルパスに関する操作履歴リストについては同一の分散処理サーバが割り当たるように操作履歴リストを分割し、前記分割した夫々について複数の分散処理サーバで生成した差分リストを集約して出力することを特徴とする。
また、前回の検索インデクス作成処理以降から現在までの期間を複数の期間に分割し、その分割期間毎に各期間の操作履歴リストを前記第１の手段で取得し、その取得した操作履歴リストの処理を複数の分散処理サーバに割当て、各分散処理サーバに割当てた操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他の分散処理サーバが分散処理した操作履歴と共に前記第２の手段が集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力することを特徴とする。
【００１０】
本発明に係るファイルリスト生成プログラムは、ファイルリスト作成サーバで使用するプログラムであって、
前記ファイルリスト作成サーバを、
検索対象ファイルを管理するファイルサーバから前回の検索インデクス作成処理以降に検索対象ファイルに対して実施されたファイルデータの追加、変更、削除の操作履歴リストを取得する第１の手段と、取得した操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他のファイルの操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力する第２の手段として機能させ、
前記第２の手段は、前記第１の手段が取得した操作履歴件数が所定件数以上である場合は、取得した操作履歴リストをファイルパス名でソートし、同一のファイルパスに関する操作履歴リストについては同一の分散処理サーバが割り当たるように操作履歴リストを分割し、前記分割した夫々について複数の分散処理サーバで生成した差分リストを集約して出力することを特徴とする。
また、前回の検索インデクス作成処理以降から現在までの期間を複数の期間に分割し、その分割期間毎に各期間の操作履歴リストを前記第１の手段で取得し、その取得した操作履歴リストの処理を複数の分散処理サーバに割当て、各分散処理サーバに割当てた操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他の分散処理サーバが分散処理した操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力する第２の手段として機能させることを特徴とする。
【００１１】
本発明に係るファイルリスト生成装置は、検索対象ファイルを管理するファイルサーバから前回の検索インデクス作成処理以降に検索対象ファイルに対して実施されたファイルデータの追加、変更、削除の操作履歴リストを取得する第１の手段と、取得した操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他のファイルの操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力する第２の手段とを備え、
前記第２の手段は、前記第１の手段が取得した操作履歴件数が所定件数以上である場合は、取得した操作履歴リストをファイルパス名でソートし、同一のファイルパスに関する操作履歴リストについては同一の分散処理サーバが割り当たるように操作履歴リストを分割し、前記分割した夫々について複数の分散処理サーバで生成した差分リストを集約して出力することを特徴とする。
また、前回の検索インデクス作成処理以降から現在までの期間を複数の期間に分割し、その分割期間毎に各期間の操作履歴リストを前記第１の手段で取得し、その取得した操作履歴リストの処理を複数の分散処理サーバに割当て、各分散処理サーバに割当てた操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他の分散処理サーバが分散処理した操作履歴と共に前記第２の手段が集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ファイルサーバ内のデータに対する操作の履歴を保管し、要求に応じて履歴リストを返すインタフェースを備えたファイルサーバにおいて、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施されたファイルデータの追加、変更、削除の操作履歴リストを取得し、その取得した操作履歴リスト中に同一ファイルについて複数の操作履歴が含まれていた場合には最新の操作履歴のみを取得した後、当該操作履歴を他のファイルの操作履歴と共に集約し、前回の検索インデクス作成処理以降に検索対象ファイルに対して実施された操作履歴リストとの差分リストとして出力するようにしているため、ファイルサーバ上で追加、変更、削除されたファイルの一覧を高速に作成することが可能となる。
これによって、検索インデクスの新規作成、更新処理の分散実行を容易に実行できるようになり、検索インデクスの新規作成、更新処理を高速に行うことが可能となり、結果として、検索システムによる検索結果を可能な限り的確なものとすることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る第一の実施形態におけるシステム構成図である。
【図２】ファイルサーバ内のインデクス対象ファイルのデータ構成図である。
【図３】ファイルサーバから返される履歴リストのデータ構成図である。
【図４】分散処理サーバ群を用いて履歴リストを分散して取得し、各ファイルの最新の履歴項目を取得して差分リストに変換する処理のフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を実施する場合の第一の実施形態について、図面に基づき詳細に説明する。
図１は、本発明に係る第一の実施形態におけるシステム構成図である。
図１において示したファイルリスト生成システムは、ファイルリスト作成サーバ１、分散処理サーバ群２、およびファイルサーバ３（以下「サーバ等」という）を、ＬＡＮ（Local Area Network）４等の有線又は無線の通信回線により互いに通信可能に接続したシステムである。
【００１５】
図１においては、サーバ等はＬＡＮ４によって互いに通信可能に接続されているが、接続方法はＬＡＮに限定されるものではなく、例えばＷＡＮ（Wide Area Network）やインターネットによって接続されていてもよい。また、図１においては、サーバ等が同一ＬＡＮセグメント上で接続されているが、この構成は一例に過ぎず、どのような構成になっていてもよい。さらに、図１においては、ファイルリスト作成サーバ１、分散処理サーバ群２、およびファイルサーバ３はそれぞれ１台ずつ存在しているが、それぞれ２台以上存在しても構わない。また、ファイルリスト作成サーバ１、分散処理サーバ群２、およびファイルサーバ３はそれぞれ異なる装置である必要はなく、例えば、ファイルリスト作成サーバ１、分散処理サーバ群２、およびファイルサーバ３の機能を１台の装置によって実現することも可能である。
【００１６】
ファイルサーバ３にはファイル操作履歴記録手段３１が備わっており、ファイルサーバ３に接続された記憶装置３２に格納された検索対象ファイル３３に対して行われた追加、変更、削除などの操作の履歴を記録し、ＨＴＴＰ（Hypertext Transfer Protocol）などを用いたクライアントからの要求に応じて履歴リストを返すようになっている。この履歴リストの詳細は図３で説明する。
【００１７】
以上のような構成により、ファイルリスト作成サーバ１は分散処理サーバ群２を利用してファイルサーバ３から履歴リストの取得と前回インデクスを更新したとき以降からの差分リスト変換処理を行う。
【００１８】
ファイルリスト作成サーバ１はＰＣ等の装置であり、記憶装置１５と通信可能に接続されている。記憶装置１５は磁気ディスク等の装置であり、ファイルリスト作成サーバ１に内蔵され又は外部接続される。記憶装置１５と、ファイルリスト作成サーバ１の主記憶装置等は、ファイルリスト作成サーバ１の記憶手段として機能する。
【００１９】
ファイルリスト作成サーバ１はスケジューラ１１、履歴リスト件数取得処理実行手段１２、履歴リスト取得処理実行手段１３、最新履歴項目取得手段１４を備えている。また、ファイルリスト作成サーバ１はＣＰＵ、主記憶装置等を備えており、ＣＰＵは記憶装置１５に記憶されている履歴リスト件数取得処理実行手段１２等のプログラムを主記憶装置上にローディングし、その命令コードを実行することで各種の処理を実行する。
【００２０】
スケジューラ１１は、差分リストを定期的に作成して検索インデクスを更新するにあたり、記憶装置１５に記憶されている一覧作成処理実行間隔を参照して履歴リスト件数取得処理実行手段１２を実行した後、履歴リスト取得処理実行手段１３を実行して、ファイルサーバ３から履歴リストを取得し、その後、最新履歴項目取得手段１４を実行して履歴リストに含まれる同一ファイルに関する操作履歴のうち最新のもののみを取得して差分リストへと変換する。この一連の動作については履歴リストから差分リストへの変換処理（Ｓ４０１等）として後述する。
【００２１】
図２は、ファイルサーバ３の検索対象ファイル３３の構成の具体例を示した概念図である。
この概念図に示すファイルサーバ３内の検索対象ファイル３３の構成においては、あるファイルサーバ３の識別名が“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”の２つのファイルが存在する。
【００２２】
図３はファイルサーバ３のファイル操作履歴記録手段３１が返す履歴リストについて、図２の例を用いて具体的に示した概念図である。
履歴リスト３００には、まず、どのサーバについての履歴リストかを示すデータ３０１が含まれている。この例ではＸＭＬの“objectlogs”という要素に“rootURI”という名の属性を設けて“http://server1/”というデータを入れて、図２で示した“server1”を表すようにしている。
次にどの共有ディレクトリに関する履歴リストかを示すデータ３０２が含まれている。この例ではＸＭＬの“container”という要素に“name”という名の属性を設けて“share1”というデータを入れて、図２で示した“share1”という共有フォルダを表すようにしている。
【００２３】
各操作履歴には、どのファイルについての操作であるか、ファイルを識別するためのデータ３０３が含まれている。この例ではＸＭＬの“object”という要素に“uri”という名の属性を設けて“etc/file1.doc”というデータを入れて、図２で示した“share1”という共有フォルダ配下にある“etc”というフォルダの中の“file.doc”というファイルを表すようにしている。
同時に、操作履歴には、どのような操作が行われたかを示すためのデータ３０４が含まれており、この例では“action”という属性を設けて“create”というデータを入れて、そのファイルが作成されたことを表すようにしている。
“action”属性に含まれる可能性のある値としては検索対象ファイルに新たなファイルやディレクトリが追加されたことを示す“create”のほかに、既存のファイル、ディレクトリの内容、またはメタデータが変更されたことを示す“modify”、既存のファイル、ディレクトリが削除されたことを示す“delete”が考えられる。
更に、操作履歴には、その操作がいつ行われたかを示すデータ３０５が含まれている。この例では“timestamp”という属性を設けて操作が行われた日時を１９７０年１月１日０時０分からのミリ秒で表すようにしている。
操作履歴の中には同一ファイルに対して行われた操作が時系列順に記録されている。データ３０６はデータ３０３が示すファイルと同一のファイルに関して別の操作が、データ３０５が示す時刻よりも後に行われていることを示す。
【００２４】
このように、あるサーバ３０１の共有フォルダ３０２の配下に対して行われたファイルまたはディレクトリの追加、更新、削除操作の順序を、ＸＭＬの“object”要素の出現順で表すことによって、図３のＸＭＬはあるサーバ３０１の共有フォルダ３０２配下に対して行われた操作の履歴を表す履歴リストとなっている。
【００２５】
図３において履歴リスト３００はＸＭＬ（Extensible Markup Language）形式で記述しているが、必ずしもＸＭＬ形式である必要はなく、例えばＪＳＯＮ（Java Script Object Notation:Java＝登録商標）形式やＣＳＶ（Comma Separated Values）形式など他の形式でもよい。
図４は、分散処理サーバ２群を用いて履歴リスト３００を分散して取得し、各ファイルの最新の履歴項目を取得して差分リストに変換する処理のフローチャートである。
図４のＳ４０１に至るまでの処理は、前述のように、スケジューラ１１が、検索インデクスを定期的に更新するにあたり、記憶装置１５に記憶されている一覧作成処理実行間隔を参照して、差分リストを作成するために処理を開始させる。
【００２６】
なお、検索インデクスは検索用インデクス作成サーバ５が作成し、記憶装置５１に格納している。検索インデクスの更新はスケジューラ１１が指示する。
【００２７】
ファイルリスト作成サーバ１の履歴リスト件数取得処理手段１２は、ファイルサーバ３に対してＨＴＴＰ等の通信手段を用いて前回インデクス更新時から、現時刻の間の履歴リストに含まれる履歴の件数を問い合わせて取得する（Ｓ４０１）。
【００２８】
次に、取得した件数が最低件数以上かどうかを判断する（Ｓ４０２）。これは履歴リストに含まれる同一ファイルの履歴から最新の操作履歴項目を取得し差分リストへと変換する処理を並列に行うことで高速化するという本発明の目的に対して、履歴リストの件数があまりに少なかった場合に、並列処理を行うことによるオーバーヘッドが並列処理による高速化のメリットを上回ってしまうことを避けるために行うものである。なお、最低件数はファイルリスト作成サーバ１上の設定ファイルなどに記憶している値を参照する。この値は、例えば５００００といった値であり、一台のファイルリスト作成サーバ１または分散処理サーバ群２のうちの１台が少なくとも数分以内に履歴リストに含まれる同一ファイルの履歴から最新の操作履歴項目を取得し差分リストへと変換する処理を完了できる件数を推定して設定することが望ましい。
【００２９】
Ｓ４０２の判断で取得した履歴リストの件数が最低件数以上だった場合は、履歴リスト取得要求を、分散処理サーバ群２で並列に要求するために、分割する（Ｓ４０２）。
例えば履歴リスト件数が１００００００件だった場合は、１台あたりの履歴リスト件数が最低件数と等しくなるように、１台目のサーバは１件目から５００００件目、２台目のサーバは５０００１件目から１０００００件目というように分割していく。なお、この実施形態では履歴リスト件数取得処理実行手段１２を用いて件数を元に履歴リスト取得要求を分割しているが、件数のほかに期間で分割する方式も考えられる。すなわち、例えば前回のインデクス更新が３週間前だった場合は１台目のサーバが３週間前から２週間前までの１週間分の履歴リストを要求し、２台目のサーバが２週間前から１週間前までの１週間分の履歴リストを要求し、３台目のサーバが１週間前から現時刻までの１週間分の履歴リストを要求するような分割手法が考えられる。本発明は、このように前回インデクス作成処理日以降から現在までの期間を複数の期間に分割し、各期間毎の操作履歴リストを取得し、各期間の操作履歴リストを複数の分散処理サーバに割当て、各分散処理サーバが抽出した最新の操作履歴リストを集約して出力するように構成することが可能である。
【００３０】
次に、ファイルサーバ３に対してＨＴＴＰ等の通信手段を用いて履歴リストを要求し、取得する（Ｓ４０４）。このとき、Ｓ４０２の判断で履歴リストの件数が最低件数以上だった場合はＳ４０３の分割処理に従って分散処理サーバ群２で並列に要求を行う。
Ｓ４０２の判断で履歴リストの件数が最低件数に満たなかった場合は１台のサーバで履歴リストの要求を行い、取得する。
【００３１】
次に、取得した履歴リストからファイルパス、操作種別、操作時刻からなる操作履歴を取得する（Ｓ４０５）。ファイルパスは図３のサーバを表すデータ３０１、共有フォルダを表すデータ３０２、ファイルを表すデータ３０３を繋げることによって作成できる。
次に、同一のファイルパスについての操作履歴を集計する（Ｓ４０６）。
次に、それぞれのファイルパスについて、操作時刻を参照し、最も現時刻に近い操作の操作履歴のみを残して、他の履歴を捨てる（Ｓ４０７）。
Ｓ４０５、Ｓ４０６、Ｓ４０７の処理はＳ４０２の判断結果に関わらず分散処理サーバ群２によって、並列に処理する。
【００３２】
次に全てのファイルパスの操作履歴を集約する（Ｓ４０８）。集約された操作履歴からなるリストは、分散処理サーバ群２によって並列処理で同一ファイルの履歴から最新の操作履歴項目を取得し終えた差分リストであり、この時点で履歴リストから差分リストへの変換処理が完了する。
【００３３】
なお、分割する件数や期間をまたいで操作履歴の重複が発生した場合に、集約し切れずにファイル重複が発生してしまうことが懸念される。しかし、このような場合には次のようにして解決することが可能である。すなわち、操作履歴件数が所定の件数以上であった場合に複数の分散処理サーバでファイルパスごとに差分リストの生成を件数で区切って分担して行うが、同一ファイルパスに関する操作履歴は必ず一つのサーバで差分リスト生成を行う。
これは、まず取得した履歴をファイルパスの辞書順でソートし、ソート済みの履歴を各分散処理サーバで交換し、同一のファイルパスについては同一の分散処理サーバが処理を担当するように分担量を決定することにより実現可能である。
期間によって分割された場合も、同様の分担方法によって、期間の分割値をまたいで操作履歴が存在した場合も重複排除漏れを起こすことなく、最新の履歴のみを残した差分リストを生成することが可能である。
【符号の説明】
【００３４】
１    ファイルリスト作成サーバ
２    分散処理サーバ群
３    ファイルサーバ
４    ネットワーク
１１    スケジューラ
１２    履歴リスト件数取得処理実行手段
１３    履歴リスト取得処理実行手段
１４    最新履歴項目取得手段
１５    ファイルリスト作成サーバ１に接続された記憶装置
２１    分散処理実行手段
３１    ファイル操作履歴記録手段
３２    ファイルサーバ３に接続された記憶装置
３３    検索対象ファイル
２０１  検索対象ファイルの具体例
３００  操作履歴リスト
３０１  操作履歴リストにおいてサーバを表すデータ
３０２  操作履歴リストにおいて共有フォルダを表すデータ
３０３  操作履歴リストにおいてファイルを表すデータ
３０４  操作履歴リストにおいて操作種別を表すデータ
３０５…操作履歴リストにおいて操作時刻を表すデータ
【図１】
0005774513.tif 000002
【図２】
0005774513.tif 000003
【図３】
0005774513.tif 000004
【図４】
0005774513.tif 000005