(57)【要約】【課題】  特定の時点におけるインデックスを用いて検索処理を実行し、特定の時点におけるルールを用いて検索結果を表示する技術が求められている。【解決手段】  ストレージシステムは、インデックスを格納する第一の論理ユニットと、検索結果の出力方法を定めたルールを格納する第二の論理ユニットと、所定の時刻を基準に作成されたインデックスのスナップショットを格納する第三の論理ユニットと、所定の時刻を基準に作成されたルールのスナップショットを格納する第四の論理ユニットとを有する。検索エンジン・サーバは、検索要求に含まれるキーワードと第三の論理ユニットに格納されているインデックスを用いて、インデックスレコードを検索し、抽出されたインデックスレコードに含まれているデータオブジェクトの格納位置情報を、第四の論理ユニットに格納されているルールに従った順番で出力する。【選択図】  図２
2009064120.tif 000002
【特許請求の範囲】
【請求項１】
ストレージシステムと、
当該ストレージシステムに接続され、検索要求に従って複数のデータオブジェクトの中から検索条件を満たすデータオブジェクトを検索する検索エンジンサーバとを有する検索システムであって、
前記ストレージシステムは、
複数のインデックスレコードを有するインデックスを格納する第一の論理ユニットと、
検索結果の出力方法を定めたルールを格納する第二の論理ユニットと、
前記インデックスのスナップショットを格納する第三の論理ユニットと、
前記ルールのスナップショットを格納する第四の論理ユニットとを有し、
前記複数のインデックスレコード各々は、前記複数のデータオブジェクトのいずれかについて作成され、当該データオブジェクトの格納位置情報と当該データオブジェクトに含まれる一以上のキーワードのリストとを含んでおり、
前記検索エンジンサーバは検索要求を受信した場合に、
前記検索要求に従って、前記第三の論理ユニット及び前記第四の論理ユニットを選択し、
前記検索要求に含まれるキーワードと選択された前記第三の論理ユニットに格納されているインデックスを用いて、当該キーワードがキーワードリストに含まれているインデックスレコードを検索し、
抽出された一以上のインデックスレコードについて、当該インデックスレコードに含まれているデータオブジェクトの格納位置情報を、選択された前記第四の論理ユニットに格納されているルールに従った順番で、出力することを特徴とする検索システム。
【請求項２】
請求項１記載の検索システムであって、
前記ストレージシステムは、
各々異なる時刻を基準に作成された前記インデックスのスナップショットを格納する複数の第三の論理ユニットと、
各々異なる時刻を基準に作成された前記ルールのスナップショットを格納する複数の第四の論理ユニットを有し、
前記検索エンジンサーバは、前記インデックスのスナップショット及び前記ルールのスナップショット各々について、当該スナップショットの作成の基準となった時刻と当該スナップショットが格納されている論理ユニットの識別情報とを対応付けて管理しており、
前記検索エンジンサーバは前記検索要求を受信した場合に、
当該検索要求に含まれている前記インデックス及び前記ルールに関する時刻情報を参照し、
前記インデックス及び前記ルールの各々について、前記時刻情報によって定まる時刻以前であって当該時刻に最も近い時刻を基準として作成されたインデックスのスナップショットが格納されている第三の論理ユニットと、前記時刻情報によって定まる時刻以前であって当該時刻に最も近い時刻を基準として作成されたルールのスナップショットが格納されている第四の論理ユニットとを選択することを特徴とする検索システム。
【請求項３】
請求項２記載の検索システムであって、
前記検索エンジンサーバは、前記検索要求に前記時刻情報が含まれていない場合には、
前記検索要求に含まれるキーワードと前記第一の論理ユニットに格納されているインデックスを用いて、前記キーワードがキーワードリストに含まれているインデックスレコードを検索し、
抽出された一以上のインデックスレコードについて、当該インデックスレコードに含まれているデータオブジェクトの格納位置情報を、前記第二の論理ユニットに格納されているルールに従った順番で、出力することを特徴とする検索システム。
【請求項４】
請求項１記載の検索システムであって、
前記ストレージシステムは、
前記複数のデータオブジェクトを格納する第五の論理ユニットと、
前記複数のデータオブジェクトのスナップショットを格納する第六の論理ユニットとを有し、
前記検索エンジンサーバは前記検索要求を受信した場合に、
前記検索要求に従って、更に、前記第四の論理ユニットに格納されているルールに従った順番で出力されるデータオブジェクトの格納位置情報が、前記第六の論理ユニット内のデータオブジェクトの格納位置に対応するよう前記第六の論理ユニットをマウントすることを特徴とする検索システム。
【請求項５】
請求項１記載の検索システムであって、
前記ストレージシステムは、
前記検索エンジンサーバが検索を実行する際に利用する検索プログラムを格納する第七の論理ユニットと、
前記検索プログラムのスナップショットを格納する第八の論理ユニットを有し、
前記検査エンジンサーバは前記検索要求を受信した場合には、
前記検索要求に従って、更に前記第八の論理ユニットを選択し、
選択された前記第八の論理ユニットに格納されている検索プログラムを用いて、検索処理を実行することを特徴とする検索システム。
【請求項６】
請求項１記載の検索システムであって、
前記ストレージシステムには、複数の未使用論理ユニットが存在し、
前記検索エンジンサーバは、前記複数の未使用論理ユニットから第九の論理ユニットを選択し、前記第一の論理ユニットから前記第九の論理ユニットへデータをコピーすることによって、前記第九の論理ユニットに前記インデックスのスナップショットを格納するよう制御し、前記複数の未使用論理ユニットから第十の論理ユニットを選択し、前記第二の論理ユニットから前記第十の論理ユニットへデータをコピーすることによって、前記第十の論理ユニットに前記ルールのスナップショットを格納するよう制御することを特徴とする検索システム。
【請求項７】
請求項６記載の検索システムであって、
前記検索エンジンサーバは、
前記インデックスが更新される際に、前記第一の論理ユニットに格納されている更新前の前記インデックスのスナップショットを前記第九の論理ユニットに格納するよう制御し、
前記ルールが更新される際には、前記第二の論理ユニットに格納されている更新前の前記ルールのスナップショットを前記第十の論理ユニットに格納するよう制御することを特徴とする検索システム。
【請求項８】
複数のデータオブジェクトの中から検索条件を満たすデータオブジェクトを検索する検索エンジンサーバであって、
プロセッサと記録媒体とを有しており、
前記記録媒体には、複数のインデックスレコードを有するインデックスと、検索結果の出力方法を定めたルールと、前記インデックスの所定時刻のデータイメージと、前記ルールの所定時刻のデータイメージの格納場所を示す情報が記録されており、
前記複数のインデックスレコード各々は、前記複数のデータオブジェクトのいずれかについて作成され、当該データオブジェクトの格納位置情報と当該データオブジェクトに含まれる一以上のキーワードのリストとを含んでおり、
前記プロセッサは検索要求を受信した場合に、
前記記録媒体に記録されている前記情報を参照して、前記検索要求に基づき前記インデックスの所定時刻のデータイメージを選択してアクセスし、前記検索要求に含まれるキーワードと前記インデックスの所定時刻のデータイメージを用いて、当該キーワードがキーワードリストに含まれているインデックスレコードを検索し、
前記記録媒体に記録されている前記情報を参照して、前記検索要求に基づき前記ルールの所定時刻のデータイメージを選択してアクセスし、抽出された一以上のインデックスレコードについて、当該インデックスレコードに含まれているデータオブジェクトの格納位置情報を、前記ルールの所定時刻のデータイメージに従った順番で、出力することを特徴とする検索エンジンサーバ。
【請求項９】
請求項８記載の検索エンジンサーバであって、
前記記録媒体に格納されている前記情報には、
各々異なる時刻を基準に取得された前記インデックスの複数のデータイメージと、各々異なる時刻を基準に取得された前記ルールの複数のデータイメージの格納場所を示す情報が含まれており、
前記プロセッサは前記検索要求を受信した場合には、
前記記録媒体に記録されている前記情報を参照し、当該検索要求に含まれている前記インデックス及び前記ルールに関する時刻情報に基づいて、前記時刻情報によって定まる時刻以前であって当該時刻に最も近い時刻を基準として取得されたインデックスのデータイメージと、前記時刻情報によって定まる時刻以前であって当該時刻に最も近い時刻を基準として取得されたルールのデータイメージとを特定し、特定された前記インデックスのデータイメージを用いて検索処理を実行し、特定された前記ルールのデータイメージに従った順序で前記データオブジェクトの格納位置情報を出力することを特徴とする検索エンジンサーバ。
【請求項１０】
請求項９記載の検索システムであって、
前記検索エンジンサーバは、前記検索要求に前記時刻情報が含まれていない場合には、
前記検索要求に含まれるキーワードと前記インデックスを用いて、前記キーワードがキーワードリストに含まれているインデックスレコードを検索し、
抽出された一以上のインデックスレコードについて、当該インデックスレコードに含まれているデータオブジェクトの格納位置情報を、前記ルールに従った順番で、出力することを特徴とする検索エンジンサーバ。
【請求項１１】
請求項８記載の検索エンジンサーバであって、
前記記録媒体に記録されている情報には更に、前記複数のデータオブジェクトと、前記複数のデータオブジェクトの所定時刻のデータイメージの格納場所を示す情報が含まれており、
前記プロセッサは前記検索要求を受信した場合に、
前記記録媒体に記録されている前記情報を参照して、前記検索要求に基づき、更に、前記ルールの所定時刻のデータイメージに従った順番で出力されるデータオブジェクトの格納位置情報と、前記データオブジェクトの所定時刻のデータイメージの格納位置とが対応するよう設定することを特徴とする検索エンジンサーバ。
【請求項１２】
請求項８記載の検索エンジンサーバであって、
前記記録媒体に記録されている情報には更に、
前記検索エンジンサーバが検索を実行する際に利用する検索プログラムと、前記検索プログラムの所定時刻のデータイメージの格納場所を示す情報が含まれており、
前記プロセッサは検索要求を受信した場合には、
前記記録媒体に記録されている前記情報を参照して、前記検索要求基づき、更に前記検索プログラムの所定時刻のデータイメージを選択してアクセスし、当該検索プログラムの所定時刻のデータイメージを用いて、検索処理を実行することを特徴とする検索エンジンサーバ。
【請求項１３】
請求項８記載の検索エンジンサーバであって、
前記プロセッサは、
前記インデックスが更新される際に、更新前の前記インデックスのデータイメージを取得するよう制御し、
前記ルールが更新される際には、更新前の前記ルールのデータイメージを取得するよう制御することを特徴とする検索エンジンサーバ。
【請求項１４】
検索エンジンサーバが複数のデータオブジェクトの中から検索条件を満たすデータオブジェクトを検索する方法であって、
検索要求には、検索キーワードと、インデックスレコードを複数有するインデックスと検索結果の出力方法を定めたルールを特定するための時刻情報が含まれており、
前記複数のインデックスレコード各々は、前記複数のデータオブジェクトのいずれかについて作成され、当該データオブジェクトの格納位置情報と当該データオブジェクトに含まれる一以上のキーワードのリストとを含んでおり、
前記検索エンジンサーバは前記検索要求を受信し、前記検索要求に含まれるキーワードと、前記時刻情報に基づいて特定されるインデックスのデータイメージを用いて、当該キーワードがキーワードリストに含まれているインデックスレコードを検索し、
抽出された一以上のインデックスレコードについて、当該インデックスレコードに含まれているデータオブジェクトの格納位置情報を、前記時刻情報に基づいて特定されるルールのデータイメージに従った順番で、出力することを特徴とする方法。
【請求項１５】
請求項１４記載の方法であって、
前記検索エンジンサーバは、前記検索要求に含まれる前記時刻情報に基づいて、インデックスの複数のデータイメージの中から、前記時刻情報によって定まる時刻以前であって当該時刻に最も近い時刻を基準として取得されたインデックスのデータイメージを選択して検索に用い、ルールの複数のデータイメージの中から前記時刻情報によって定まる時刻以前であって当該時刻に最も近い時刻を基準として取得されたルールのデータイメージを選択して前記データオブジェクトの格納位置情報を当該ルールのデータイメージに従った順序で出力することを特徴とする方法。
【請求項１６】
請求項１４記載の方法であって、
前記検索エンジンサーバは、前記検索要求に前記時刻情報が含まれていない場合には、
前記検索要求に含まれるキーワードと最新のインデックスを用いて、前記キーワードがキーワードリストに含まれているインデックスレコードを検索し、
抽出された一以上のインデックスレコードについて、当該インデックスレコードに含まれているデータオブジェクトの格納位置情報を、最新のルールに従った順番で、出力することを特徴とする方法。
【請求項１７】
請求項１４記載の方法であって、
前記検索エンジンサーバは前記検索要求を受信した場合に更に、
前記ルールのデータイメージに従った順番で出力されるデータオブジェクトの格納位置情報が、前記時刻情報に基づいて特定される前記複数のデータオブジェクトのデータイメージの格納位置に対応するよう設定することを特徴とする方法。
【請求項１８】
請求項１４記載の方法であって、
前記検索エンジンサーバは前記検索要求を受信した場合に更に、
前記時刻情報に基づいて特定される検索プログラムのデータイメージを用いて検索処理を実行することを特徴とする方法。
【請求項１９】
請求項１４記載の方法であって、
前記検索エンジンサーバは、
インデックスが更新される際に、更新前の前記インデックスのデータイメージを取得するよう制御し、
ルールが更新される際には、更新前の前記ルールのデータイメージを取得するよう制御することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
データの検索処理を実行する検索システムに関する。
【背景技術】
【０００２】
特許文献1は、情報検索方法およびこれに用いるインデックスに関し、操作者が事前に登録した予約検索実行時間に、操作者が事前に登録した検索条件内のキーワードとインデックス内のキーワードとを所定の理論式に従って比較して、この所定の理論式を満たすキーワードを持つ更新データで、しかも、検索を行っている検索条件での前回の検索以降に更新された更新データを検索する技術が記載されている。
【０００３】
特許文献１では、更新データのキーワード及びデータ更新時刻を登録するインデックスを設けて、データ更新時に更新データをインデックス内のキーワード及びデータ更新時刻と対応付け、検索実行時にはインデックスを参照して、検索対象期間内に更新された更新データを得る。
【０００４】
【特許文献１】特開昭63−80325号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
検索システムにおいては、インデックスを用いて検索が実行され、検索結果の出力方法を定めたスコアリング・ルールに基づいて検索結果が出力される。インデックスやスコアリング・ルールは、新しく追加されたり、変更されたりする。インデックスやルールに変更が生じると検索者に提供される検索結果や検索結果の出力順序にも変更が生じる。したがってある特定の時点におけるインデックスを用いて検索処理を実行し、ある特定の時点におけるスコアリング・ルールを用いて検索結果を表示する技術が求められている。
【課題を解決するための手段】
【０００６】
検索システムは、複数のデータオブジェクトを格納するストレージシステムと検索エンジン・サーバを有する。検索エンジン・サーバはストレージシステムに接続され、検索要求に従って複数のデータオブジェクトの中から所定のデータオブジェクトを検索する。ストレージシステムは、各データオブジェクトについて作成された、データオブジェクトの格納位置情報と当該データオブジェクトに含まれる一以上のキーワードのリストとを含むインデックスレコードを有するインデックスを格納する第一の論理ユニットと、検索結果の出力方法を定めたルールを格納する第二の論理ユニットと、所定の時刻を基準に作成されたインデックスのスナップショットを格納する第三の論理ユニットと、所定の時刻を基準に作成されたルールのスナップショットを格納する第四の論理ユニットとを有する。検索エンジン・サーバは検索要求を受信した場合に、検索要求に従って、第三の論理ユニット及び第四の論理ユニットをマウントする。その後、検索要求に含まれるキーワードとマウントされた第三の論理ユニットに格納されているインデックスを用いて、キーワードがキーワードリストに含まれているインデックスレコードを検索する。さらに検索エンジン・サーバは、抽出された一以上のインデックスレコードについて、インデックスレコードに含まれているデータオブジェクトの格納位置情報を、マウントされた第四の論理ユニットに格納されているルールに従った順番で出力する。
【発明の効果】
【０００７】
過去のインデックスを用いて検索処理を実行し、過去のルールに基づいて検索結果を出力することができる。
【発明を実施するための最良の形態】
【０００８】
以下に本発明の実施形態の一例を説明する。なお、本発明は以下に記載する実施形態のみに限定されるものではない。
【０００９】
図１は検索システムのシステム構成の一例と検索システムを構成している各システム構成要素のハード構成の一例を示している。
【００１０】
本検索システムは、クライアント計算機0101、検索エンジン・サーバ0103、ストレージシステム0111、管理端末0123、及び、ネットワーク・スイッチ0901から構成される。
【００１１】
クライアント計算機0101は、ユーザがデータ検索時に利用する端末である。クライアント計算機のハード構成は一般的な計算機と同様である。すなわちクライアント計算機は、CPU（Central Processing Unit）0601、メモリ0602、HDD（Hard Disk Drive）0603、ネットワーク・インタフェース0605を有し、それらが内部バス0604で接続されている。さらにユーザ・インタフェースとして、クライアント計算機には、ディスプレイ0607、キーボード0608、マウス0609が接続する。
【００１２】
検索エンジン・サーバ0103は、クライアント計算機から受信したデータ検索要求を処理するサーバである。検索エンジン・サーバのハード構成は一般的な計算機と同様である。すなわち検索エンジン・サーバは、CPU0701、メモリ0702、HDD0703、ネットワーク・インタフェース0705を有し、それらが内部バス0704で接続されている。
【００１３】
ストレージシステム0801は、検索対象のデータを格納する。またストレージシステムは、検索エンジン・サーバが使用するインデックス、スコアリング・ルール、検索エンジン・プログラムをそれぞれ論理ユニット（以下LU：Logical Unitと呼ぶ）に格納する。ストレージシステムは、ネットワーク・インタフェース0801、メモリとCPUから構成されるコントローラ0802、キャッシュメモリ0803、ディスク・インタフェース0805、複数のHDD0806、0807、0808から構成され、HDD以外は内部バス0804で接続されている。HDDはディスク・インタフェース0805に接続する。
【００１４】
管理端末0123は、検索エンジン・サーバの管理を行う管理者によって使用される一般的な計算機である。管理端末のハード構成はクライアント計算機と同様のため説明は省略する。
【００１５】
クライアント計算機、検索エンジン・サーバ、ストレージシステム、及び、管理端末は先述の通り各々ネットワーク・インタフェースを有しており、これらのネットワーク・インタフェースとネットワーク・スイッチとはネットワーク・ケーブルによって接続されているため、互いに通信が可能である。例えば、クライアント計算機0101、検索エンジン・サーバ0103、ストレージシステム0111、管理端末0123間のネットワークとしてEthernet（登録商標）を使い、通信プロトコルとしてTCP/IPを利用することができる。
【００１６】
図２は、検索システムの論理的なシステム構成の一例と各システム構成要素が提供する機能の一例を示している。以下、各構成要素の機能について説明する。
【００１７】
ストレージシステム0111は、ストレージ制御部0112、及び、I/O処理部0113を機能として提供する。なお、これらストレージシステム0111が有する機能は、コントローラ0802中のメモリもしくはHDD（0806、0807、0808）内に格納されたプログラムがコントローラ0802中のCPUによって実行されることによって提供される。
【００１８】
またストレージシステム0111は複数のLUを有する。複数のLUとしては、検索対象のデータを格納するデータ用LU0115、検索エンジン・サーバ0103が作成し検索の際に利用するインデックスを格納するインデックス用LU0116、検索エンジン・サーバが検索結果をクライアント計算機に提供する際に利用するスコアリング・ルールを格納するスコアリング・ルール用LU0117、検索エンジン・サーバが検索処理を実行する際に利用する検索プログラムを格納する検索プログラム用LU0120等が含まれる。LUとは、ハードディスク・ドライブ等記録メディアから構成される論理的な記憶空間であり、LUN（Logical Unit Number）を用いて識別される。なお先述のデータ用LU0115、インデックス用LU0116、スコアリング・ルール用LU0117、検索プログラム用LU0120は、検索エンジン・サーバにマウントされており、検索エンジン・サーバからの指示に基づいてこれらのLU内のデータは更新される。
【００１９】
ストレージシステムはさらにデータ用LU0115に格納されているデータのある時刻におけるデータイメージであるスナップショットを格納している一以上のデータ用スナップショットLU群0122、インデックス用LU0116に格納されているデータのスナップショットを格納している一以上のインデックス用スナップショットLU群0118、スコアリング・ルール用LU0117に格納されているデータのスナップショットを格納している一以上のスコアリング・ルール用スナップショットLU群0119、検索プログラム用LU0120に格納されているデータのスナップショットを格納している一以上の検索プログラム用スナップショットLU群0121を有する。また、ストレージシステムは、一以上の未使用LUからなる未使用LU群0114も有する。
【００２０】
ストレージ制御部は、検索エンジン・サーバ上のストレージシステム制御部から各種要求を受領し、要求に従って後述する未使用LUリストの応答や、ペアの作成・削除、スナップショットの作成・削除などを実行する。
【００２１】
I/O処理部は、検索エンジン・サーバや他のサーバからのLU内データへのI/O要求を処理する。
【００２２】
クライアント計算機0101は、検索用インタフェース0102を機能として提供する。検索用インタフェースは、ユーザに対して、検索要求を入力するための入力画面と、検索エンジン・サーバ0103から受信した検索結果を表示する出力画面を提供する。またクライアント計算機は、検索要求を検索エンジン・サーバに発行し、その結果を得る機能を有する。なお、これらクライアント計算機0101が有する機能は、メモリ0602もしくはHDD0603内に格納されたプログラムがCPU0601によって実行されることによって提供される。
【００２３】
クライアント計算機0101が検索エンジン・サーバ0103に発行する検索要求の一例を図３に示す。
【００２４】
検索要求0401は、検索キーワード0402、インデックス時刻0403、スコアリング・ルール時刻0404、検索対象データ時刻0405を含む。インデックス時刻、スコアリング・ルール時刻及び検索対象データ時刻は省略することができる。検索キーワード0402としては、検索に利用されるキーワードが指定される。インデックス時刻0403としては、検索に利用されるインデックスの時刻が指定される。スコアリング・ルール時刻0404としては、検索に利用したいスコアリング・ルールの時刻が指定される。検索対象データ時刻としては、クライアント計算機に参照させる検索対象データの時刻が指定される。検索結果として出力されるアドレス情報は、検索対象データ時刻0405に基づいて選択された検索対象データとリンクされる。
【００２５】
図２に戻って管理端末0123は、管理GUI（Graphical User Interface）0124を提供する。管理GUIは管理者から指示を受けると、検索エンジン・サーバ0103に対して、スコアリング・ルールの変更指示、検索プログラムの更新指示、スナップショットの作成指示、スナップショットのリスト表示指示、及び、スナップショットの削除指示等をネットワークを介して行う。
【００２６】
検索エンジン・サーバに対しスコアリング・ルールの変更指示を行う際、管理GUIは、新しいスコアリング・ルールを検索エンジン・サーバに送信する。また、検索エンジン・サーバに対し検索プログラムの更新指示を行う際、管理GUIは新しい検索プログラムを検索エンジン・サーバに送信する。
【００２７】
図４は管理端末0123が検索エンジン・サーバ0103に対してスナップショットの作成指示、スナップショットのリスト表示指示、スナップショットの削除指示を行う際に検索エンジン・サーバ0103に対して発行するスナップショット作成要求1101、スナップショットリスト表示要求1108、スナップショット削除要求1110の一例を示す図である。以降これら３つの要求をまとめてスナップショット管理要求と呼ぶ。
【００２８】
スナップショット作成要求1101では、管理GUIを用いた管理者からの指示に従って、図４(a)に示すように、要求種別1106、スナップショット時刻1107、インデックスに対するスナップショット作成要否1102、スコアリング・ルールに対するスナップショット作成要否1103、検索プログラムに対するスナップショット作成要否1104、及び検索対象のデータに対するスナップショット作成要否1105が指定される。要求種別1106には、「作成」が指定される。スナップショット時刻1107には、スナップショット作成の基準となる時刻が指定される。なお、スナップショット時刻が指定されない場合には、あらかじめ検索エンジン・サーバで定められている任意のタイミングを基準としてスナップショットが作成される。インデックス、スコアリング・ルール、検索プログラム、検索対象データ各々についてのスナップショット作成要否（1102、1103、1104、1105）については、スナップショットの作成が必要な場合に「要」が、不要な場合に「不要」が指定される。検索エンジン・サーバは、スナップショット作成要否に「要」が指定されたデータについてのみスナップショットを取得するよう制御し、取得したスナップショットの格納場所を後述の図５に示すスナップショット管理テーブル0109に登録する。
【００２９】
スナップショットリスト表示要求1108には、図４(b)に示すように要求種別として「リスト表示」1109が指定される。スナップショットリスト表示要求1108の応答として、管理端末は、検索エンジン・サーバから後述するスナップショット管理テーブル0109に登録されているスナップショットのリストを入手し、管理GUIに表示する。
【００３０】
スナップショットの削除要求1110には図４(c)に示すように、要求種別1111、ID1112、インデックスに対するスナップショット削除要否1113、スコアリング・ルールに対するスナップショット削除要否1114、検索プログラムに対するスナップショット削除要否1115、及び、検索対象のデータに対するスナップショット削除要否1116が指定される。要求種別1111には、「削除」が指定される。ID1112には、削除されるスナップショットが属するスナップショット群を識別するIDが指定される。ここでIDとは、同時刻を基準に取得された一以上のスナップショット、すなわちスナップショット群を示すユニークな識別子である。インデックス、スコアリング・ルール、検索プログラム、検索対象データ各々についてのスナップショット削除要否（1113、1114、1115、1116）については、スナップショットの削除が必要な場合に「要」が、不要な場合に「不要」が指定される。検索エンジン・サーバは、スナップショット削除要否に「要」が指定されたデータについてのみスナップショットを削除するよう制御し、後述の図５に示すスナップショット管理テーブル0109から削除されたスナップショットのLUNを消去する。
【００３１】
図２に戻って検索エンジン・サーバ0103は、インデックス更新部0104、スコアリング・ルール変更部0105、検索処理部0106、スナップショット管理部0107、検索プログラム更新部0108、ストレージシステム制御部0110を機能として提供する。また検索エンジン・サーバは、スナップショット管理テーブル0109と検索プログラム・バージョン管理テーブル0301を有し、検索エンジン・サーバが先述の機能を提供するために用いる。なお、これら検索エンジン・サーバ0103が有する機能は、メモリ0702もしくはHDD0703内に格納されたプログラムがCPU0701によって実行されることによって提供される。
【００３２】
図５に、スナップショット管理テーブルの一例を示す。スナップショット管理テーブルは、ID列0207、スナップショット時刻列0202、インデックス列0203、スコアリング・ルール列0204、検索プログラム列0205、検索対象データ列0206、コンシステンシ・グループ列0208から成る。ID列0207には、同時刻を基準に作成された一以上のスナップショットから構成されるスナップショット群に対して割り当てたIDが登録される。スナップショット時刻列0202には、スナップショット作成の基準となった時刻が登録される。インデックス列0203には、インデックス用LU0116内のデータのスナップショットが格納されているストレージシステム0111内のLUのLUNが登録される。スコアリング・ルール列0204には、スコアリング・ルール用LU0117内のデータのスナップショットが格納されているストレージシステム0111内のLUのLUNが登録される。検索プログラム列0205には、検索プログラム用LU0120内のデータのスナップショットが格納されているストレージシステム0111内のLUのLUNが登録される。検索対象データ列0206には、検索対象データ用LU0115内のデータのスナップショットが格納されているストレージシステム0111内のLUのLUNが登録される。コンシステンシ・グループ列0208には、同時刻を基準に取得された一以上のスナップショットが格納されたLUの集合を示す識別子が登録される。
【００３３】
図６に、検索プログラム・バージョン管理テーブル0301の一例を示す。検索プログラム・バージョン管理テーブルは、検索プログラムのバージョン列0302、更新時刻列0303、サポートフォーマット0304から成る。検索プログラムをバージョンアップし、新しいバージョンの検索プログラムがストレージシステム0111の検索プログラム用LU0120に格納された際に検索プログラム・バージョン管理テーブルは更新される。検索プログラムのバージョン列0302には、検索プログラムのバージョン情報が登録される。更新時刻列0303には、検索プログラムが更新された時刻、すなわち新しいバージョンの検索プログラムがストレージシステム0111の検索プログラム用LU0120に格納された時刻を示す情報が登録される。サポートフォーマット列0304には、新たにインストールされた検索プログラムがサポートしているインデックスやスコアリング・ルールの記録形式、すなわちフォーマットを示す情報が登録される。例えば、検索プログラムのバージョン列0302がVer002の場合、サポートフォーマットはVer001、Ver002となっている。これはVer002の検索プログラムが、自身が解釈できるVer002のフォーマットと、Ver001の検索プログラムが解釈できる最新バージョンのフォーマットであるVer001のフォーマットをサポートしていることを表している。同様に、検索プログラムのバージョン列0302がVer004の場合、サポートフォーマットはVer002、Ver003、Ver004となっている。これはVer004の検索プログラムが、自身が解釈できるVer004のフォーマットと、Ver003の検索プログラムが解釈できる最新バージョンのフォーマットであるVer003のフォーマットと、Ver002の検索プログラムが解釈できる最新バージョンのフォーマットであるVer002のフォーマットをサポートしており、Ver001のフォーマットはサポートしていないことを表している。
【００３４】
図２に戻ってストレージシステム制御部0110は、検索エンジン・サーバ0103がストレージシステム0111の制御を行うための機能であり、ストレージシステム0111内の未使用LUの検索や、ペアの作成・削除、スナップショットの作成・削除、などを実行する。ペアとは、あるLUの中のデータを他のLUにコピーする際のコピー元とコピー先のLUの組合せを決めるものである。
【００３５】
インデックス更新部0104は、検索エンジン・サーバの運用者が事前に設定したスケジュールに基づき、ストレージシステムのデータ用LU0115に格納されている検索対象データをクローリング（すなわち、全検索対象データのタイムスタンプを読み取り、更新されているかどうかをチェック）し、新しいインデックスを作成する。作成されたインデックスは、ストレージシステムのインデックス用LU0116に格納され、これによって、インデックスの更新が行われる。
【００３６】
インデックス0501の例を図７に示す。インデックス0501は、複数のインデックス・レコード0505から構成される。インデックス・レコードは検索対象データ中に含まれる複数のデータオブジェクト各々に対して存在する。ここで、データオブジェクトの一例としては、ファイルシステムにおけるファイルが該当する。インデックス・レコードは、データオブジェクトを一意に識別するデータ識別子0502、データオブジェクトの格納位置を示す位置情報0503、及び、データオブジェクトの中に含まれるキーワードのリスト0504から構成される。データ識別子は、インデックス更新部0104が検索対象データをクロールしたときに各データオブジェクトに付与する。データオブジェクトの位置情報（すなわちアドレス情報）は、データオブジェクトにアクセスする際のアドレス情報であり、例えばファイル・サーバ名とファイル・サーバ内の共有フォルダ名、共有フォルダ内のパス名、及び、ファイル名によって記述することができる。またインデックス更新部0104は、データをクロールした際に各データオブジェクトの内容を参照し、その中から一定のルールに従ってキーワードを抽出することでキーワードのリスト0504を作成する。
【００３７】
図２に戻ってスコアリング・ルール変更部0105は、管理端末0123からの要求に基づき、ストレージシステムのスコアリング・ルール用LU0117に格納されているスコアリング・ルールを新しいスコアリング・ルールに更新する。スコアリング・ルールの例としては、「データオブジェクト内に含まれる検索キーワード数をスコアとしてカウントし、スコアが高い順に検索結果を並び替える」、などのルールが存在する。
【００３８】
検索処理部0106は、クライアント計算機からの検索要求0401に基づいて検索を行い、データオブジェクトの位置情報0503が含まれる検索結果を作成して、クライアント計算機に検索結果を返す。
【００３９】
スナップショット管理部0107は、管理端末0123からスナップショット管理要求を受領して、それぞれの要求種別に応じてスナップショットの作成、リスト表示、削除を行う。
【００４０】
検索プログラム更新部0108は、管理端末0123からの検索プログラム更新指示に基づき、新しい検索プログラムを検索エンジン・サーバ0103にインストールして、検索プログラムをバージョンアップする。
【００４１】
検索処理部0106の処理フローの一例を図８に示す。
【００４２】
ステップ1001にて、検索処理部はクライアント計算機0101から図３に示す検索要求0401を受領する。
【００４３】
ステップ1002にて、検索処理部は検索要求のインデックス時刻0403の内容を確認し、インデックス時刻が指定されているかどうかをチェックする。もしインデックス時刻が指定されていなければ、ステップ1005に進み、検索処理部は最新のインデックスを検索に用いるためにストレージシステムのインデックス用LU0116を選択する。なお、最新のインデックスが格納されているストレージシステムのインデックス用LU0116は、先述の通り既に検索エンジン・サーバ0103にマウントされている。
【００４４】
もしインデックス時刻0403が指定されていた場合、ステップ1003にて、検索処理部はスナップショット管理テーブル0109を参照し、指定された時刻以前で指定された時刻に最も近いインデックスのスナップショット0203が存在するかを検索する。
【００４５】
もしスナップショットが存在しなければ、ステップ1005にて検索処理部は最新のインデックスを検索に用いるためにストレージシステムのインデックス用LU0116を選択する。
【００４６】
もしスナップショットが存在した場合、ステップ1006にて、検索処理部は特定されたスナップショットを格納しているストレージシステムのLUを検索エンジン・サーバにマウントし、指定された時刻に対応するインデックスを用いて検索処理を実行できるようにする。
【００４７】
次にステップ1007にて、検索処理部は検索要求のスコアリング・ルール時刻0404の内容を確認し、スコアリング・ルール時刻が指定されているかどうかをチェックする。もしスコアリング・ルール時刻が指定されていなければ、ステップ1010に進み、検索処理部は最新のスコアリング・ルールを用いて検索結果の出力順序を決定するためにストレージシステムのスコアリング・ルール用LU0117を選択する。なお、最新のスコアリング・ルールが格納されているストレージシステムのスコアリング・ルール用LU0117は、先述の通り既に検索エンジン・サーバ0103にマウントされている。
【００４８】
もしスコアリング・ルール時刻0404が指定されていた場合、ステップ1008にて、検索処理部はスナップショット管理テーブル0109を参照し、指定された時刻以前で指定された時刻に最も近いスコアリング・ルールのスナップショット0204が存在するかを検索する。
【００４９】
もしスナップショットが存在しなければ、ステップ1010にて検索処理部は最新のスコアリング・ルールを検索に用いて検索結果の出力順序を決定するためにストレージシステムのスコアリング・ルール用LU0117を選択する。
【００５０】
もしスナップショットが存在した場合、ステップ1011にて、検索処理部は特定されたスナップショットを格納しているストレージシステムのLUを検索エンジン・サーバにマウントし、指定された時刻に対応するスコアリング・ルールを用いて検索結果を出力できるようにする。
【００５１】
検索及び検索結果の表示に利用するインデックスとスコアリング・ルールを選択した後、ステップ1014にて、検索処理部は選択されたインデックスとスコアリング・ルールのフォーマットを解釈できる、すなわちサポートしている検索プログラムのバージョンを、検索プログラム・バージョン管理テーブル0301から検索する。
【００５２】
具体例を挙げて説明する。図3のように検索要求0401中にインデックス時刻が「2007/6/18 10:00」、スコアリング・ルール時刻が「2007/6/19 8:00」と指定されているとする。この場合、検索処理部が図6の検索プログラム・バージョン管理テーブルを参照し、更新時刻がインデックス時刻以前でインデックス時刻に最も近い検索プログラムを探すことによりVer001の検索プログラムが特定される。同様にして検索処理部が更新時刻がスコアリング・ルール時刻以前でスコアリング・ルール時刻に最も近い検索プログラムを探すことによりVer002の検索プログラムが特定される。そして、それぞれの検索プログラムのバージョンのサポートフォーマットを確認し、比較すると、指定時刻のインデックスとスコアリング双方をサポートしているVer001が特定される。
【００５３】
ステップ1015にて、検索処理部は選択されたインデックスとスコアリング・ルール双方をサポートしている検索プログラムが特定されたかどうかをチェックする。もし特定されていなければ、ステップ1017で検索処理部はクライアント計算機にエラーを返す。ただし別の実施例として、検索処理部は、エラーを返すのではなく、検索プログラムが見つかるまで検索要求の指定時刻から離れたとしても別のインデックスとスコアリング・ルールの組合せを選択して、インデックスとスコアリング・ルールをサポートする検索プログラムを探してもよい。
【００５４】
ステップ1015で検索プログラムが特定された場合は、ステップ1028にて、特定された一以上の検索プログラムが最新バージョンの検索プログラムを含むかどうかをチェックする。特定された検索プログラムが最新バージョンの検索プログラムを含む場合は、ステップ1029にて検索処理に用いられる検索プログラムとして最新バージョンの検索プログラムを選択する。なお、最新バージョンの検索プログラムが格納されている検索プログラム用LU0120は既に検索エンジン・サーバにマウントされているため、ステップ1027に進む。
【００５５】
特定された一以上の検索プログラムが最新バージョンの検索プログラムを含まない場合は、ステップ1016にて、検索処理部は特定された検索プログラムのうち最新のバージョンの検索プログラムを選択し、選択された検索プログラムを格納しているストレージシステム0111のLUを、スナップショット管理テーブル0109から検索する。すなわち検索処理部は、選択された検索プログラムの更新時刻0303と同時刻のスナップショット時刻0202を基準として取得された検索プログラムのスナップショットを格納しているLUを特定する。
【００５６】
ステップ1026にて、検索処理部はLUが見つかったかどうかをチェックする。もしLUが見つからなければ、ステップ1017にて検索処理部はクライアント計算機にエラーを返す。
【００５７】
LUが見つかった場合、ステップ1018にて、検索処理部は特定されたLUを検索エンジン・サーバにマウントする。
【００５８】
ステップ1027にて検索処理部は、検索プログラムが指定されたインデックスやスコアリング・ルールを使えるようにするため、検索プログラムの構成定義ファイルを書き換える。構成定義ファイルとは、検索プログラムが使用するインデックスやスコアリング・ルールが格納されたLUのLUNを指定するためのファイルである。なお、構成定義ファイルの書き換えが不可能な検索プログラムも存在する。このような場合は、検索エンジン・サーバ上で仮想サーバ・ソフトを実行して別の仮想検索エンジン・サーバを起動し、当該仮想検索エンジン・サーバが指定されたインデックスやスコアリング・ルールが格納されたLUを使用できるよう設定する。
【００５９】
ステップ1019では、検索処理部は検索要求内に検索対象データ時刻がしていされているかどうかをチェックする。もし検索対象データ時刻が指定されていなければ、ステップ1022に進み、検索処理部はクライアント計算機にストレージシステム内のデータ用LU0115に格納されている最新検索対象データへのアクセスを提供する。
【００６０】
もし検索対象データ時刻が指定されていれば、検索処理部は、ステップ1020にてスナップショット管理テーブル0109を参照し、指定された時刻以前で指定された時刻に最も近い検索対象データのスナップショット0206が存在するかを検索する。
【００６１】
ステップ1021にて、もしスナップショットが存在しなければ、検索処理部はステップ1022に進み、検索処理部はクライアント計算機0101にストレージシステム内のデータ用LU0115に格納されている最新検索対象データへのアクセスを提供する。
【００６２】
もしスナップショットが存在した場合、検索処理部はステップ1023にて、特定されたスナップショットを格納しているストレージシステムのLUを検索エンジン・サーバにマウントし、検索要求に指定された時刻に対応する過去の検索対象データにクライアント計算機からアクセスできるようにする。例えばデータオブジェクトがファイル形式だった場合、当該ボリュームをNFS（Network File System）などのファイル共有の仕組みを使って公開し、クライアント計算機からアクセスできるようにすることが考えられる。
【００６３】
ステップ1024にて、検索処理部はステップ1018でマウントしたLU内に格納されている検索プログラムまたはステップ1029で選択された最新バージョンの検索プログラムを起動し、該プログラムを使って検索要求に指定された検索キーワード0402を用いてステップ1005または1006で選択されたインデックス内のキーワードのリスト0505を検索し、ヒットしたら対応するデータオブジェクトを抽出する。次に検索処理部は、検索の結果見つかった個々のデータオブジェクトに対して、ステップ1010またはステップ1011で選択されたスコアリング・ルールを使ってスコアを計算し、スコアの高い順にデータオブジェクトの位置情報0503並べられた検索結果を作成する。
【００６４】
最後にステップ1025にて、検索処理部は検索結果をクライアント計算機0101に出力して処理を終える。クライアント計算機0101は、ディスプレイ0607に検索結果を表示する。検索結果に基づいて、検索者からデータオブジェクトへのアクセス要求を受信すると、クライアント計算機はアクセス要求を検索エンジン・サーバに送信する。これを受信した検索エンジン・サーバは、ステップ1022にて最新の検索対象データを選択した場合には、最新の検索対象データにアクセスする。ステップ1023にて過去の検索対象データを選択した場合には、検索結果として出力されるデータオブジェクトの格納位置情報が、過去の検索対象データの格納位置に対応するように設定されているため、検索エンジン・サーバは過去の検索対象データにアクセスする。
【００６５】
スナップショット管理部0107の処理フローの一例を図９に示す。
【００６６】
ステップ1201にて、スナップショット管理部は管理端末からスナップショット管理要求を受領する。
【００６７】
ステップ1202にて、スナップショット管理部はスナップショット管理要求の要求種別を見て、どの要求かを判断する。要求種別としては、「作成」1106、「リスト表示」1109、「削除」1111がある。
【００６８】
以下、要求種別が「作成」の場合について説明する。
【００６９】
ステップ1215にて、スナップショット管理部は、スナップショット作成要求1101内にあるスナップショット時刻1107を参照し、現在の時刻がスナップショット時刻1107を経過していなければステップ1215の判定を繰り返す。
【００７０】
スナップショット時刻1107を経過している場合、ステップ1203にて、スナップショット管理部はスコアリング・ルールの変更指示、検索プログラムの更新指示の受け付けを一時中断すると共にインデックス更新部0104による新たなインデックス更新処理の開始も抑止する。なお、インデックス、スコアリング・ルール、検索プログラムが既に更新中の場合スナップショット管理部は、更新処理の完了を待つ。さらに、スナップショット管理部は検索対象データの更新を停止するようストレージ制御部に指示し、ストレージ制御部からの停止完了の報告を待つ。ストレージ制御部はスナップショット管理部からの指示により、検索対象データの新たな更新要求受付を停止し、検索対象データが既に更新中の場合は、更新処理の完了を待ってからスナップショット管理部に停止完了を報告する。これにより、スナップショット作成最中に、スコアリング・ルール、検索対象データ、検索プログラム、及びインデックスが更新されることはないため、インデックス、スコアリング・ルール、検索対象データ、検索プログラム間で時刻が同期したスナップショット・イメージを取得することができる。
【００７１】
ステップ1204にて、スナップショット管理部はスナップショット作成要求1101を参照してスナップショット取得対象のデータを特定する。具体的には、図４(c)に示した通り、インデックス1102、スコアリング・ルール1103、検索プログラム1104、検索対象データ1105毎にスナップショットの作成要否がスナップショット作成要求中で指定される。またコピー元のインデックス1102、スコアリング・ルール1103、検索プログラム1104、検索対象データ1105は各々異なるLUに格納されており、スナップショットはLU単位で作成されるため、スナップショット管理部はスナップショットを作成すべき一以上のLUを特定する。
【００７２】
ステップ1205にて、スナップショット管理部は、特定したLU毎に、未使用LU群0114からスナップショットを格納するためのLUを選択する。このとき、スナップショット管理部は、ストレージシステム制御部を使ってストレージシステムから未割当LUのリストを得て、その中からLUを選択する。
【００７３】
ステップ1206にて、スナップショット管理部はストレージシステム制御部を使って、ステップ1204で特定した各LUをコピー元とし、ステップ1205で当該LUに対して割り当てたスナップショット用のLUをコピー先とするペアを作成する。ペアを作成することにより、どのLUのデータをどのLUにコピーするのかが定義される。なお、スナップショット作成対象のLUが複数存在する場合には、ペアも複数作成される。以降ステップ1206で作成された一以上のペアをペア群と呼ぶ。
【００７４】
ステップ1207にて、スナップショット管理部は、ストレージシステム制御部を使って、ペア群が一つのコンシステンシ・グループに属するようにコンシステンシ・グループを作成する。作成時にはスナップショット管理部はコンシステンシ・グループ名を決定する。コンシステンシ・グループとは、同時刻を基準に取得された複数のスナップショット群のことである。
【００７５】
ステップ1208にて、スナップショット管理部は、ストレージシステム制御部を使ってコンシステンシ・グループ0208単位でスナップショットを作成する。以下、具体的にスナップショット作成処理を説明する。まず、ストレージシステム制御部0110はストレージ制御部0112に指示し、ストレージシステム内のキャッシュメモリに存在しているデータをすべてLUに格納させる。そして、ストレージシステム制御部0110はストレージ制御部0112に指示し、コンシステンシ・グループに属するペアごとにペアを構成するコピー元LUからコピー先LUへデータをコピーさせる。コピーが完了したら、ペアを削除（すなわちコピー元とコピー先の関係を解除）する。その結果、コピー先LUがスナップショットを格納するLUとなる。
【００７６】
ステップ1209にて、スナップショット管理部は、スナップショット管理テーブルに新しいエントリを追加し、今回作成した一以上のスナップショットに対する新しいIDを割り当てる。そしてスナップショット管理部はスナップショット管理テーブルに、スナップショット作成時刻0202としてステップ1216の判断基準となったスナップショット時刻を、インデックス列0203、スコアリング・ルール列0204、検索プログラム列0205、検索対象データ列0206にスナップショットを格納しているLUに割り当てられたLUNを、コンシステンシ・グループ列にステップ1207で決定されたコンシステンシ・グループ名を記録する。
【００７７】
最後にステップ1215にてスナップショット管理部は、スコアリング・ルールの変更指示、検索対象データの更新指示、検索プログラムの更新指示、インデックスの更新指示の受け付けを再開することで、スナップショット作成処理が完了する。
【００７８】
ステップ1202に戻って、要求種別が「リスト表示」の場合について説明する。
【００７９】
ステップ1210にて、スナップショット管理部はスナップショット管理テーブル0109を参照し、当該テーブルに格納されている情報を管理端末に送信する。以上で処理を終える。
【００８０】
なお、リスト表示要求は、例えばスナップショットの削除を行いたいときに、どのスナップショットが存在するかを確認し、各スナップショットの削除要否を決定する際に使用される。
【００８１】
ステップ1202に戻って、要求種別が「削除」の場合について説明する。
【００８２】
ステップ1211にて、スナップショット管理部は、スナップショット削除要求中に指定されているID1112、インデックスに対するスナップショット削除要否1113、スコアリング・ルールに対するスナップショット削除要否1114、検索プログラムに対するスナップショット削除要否1115、及び、検索対象のデータに対するスナップショット削除要否1116と、スナップショット管理テーブル0109を参照し、削除が要求されているスナップショットが格納されているストレージシステム内のLUを特定する。
【００８３】
ステップ1213にてスナップショット管理部は、ステップ1211で特定されたLUを開放（未使用状態）にする。この結果、当該LUは未使用LU群に属することになる。
【００８４】
ステップ1214にてスナップショット管理部は、スナップショット管理テーブルからステップ1211で特定されたLUについてのLUNを削除する。また、インデックス、スコアリング・ルール、検索対象データ、検索プログラムの全てのスナップショットが削除された場合は、対応するエントリ全体を削除する。
【００８５】
以上でスナップショットの削除処理が完了する。
【００８６】
検索プログラム更新部0108の処理フローの一例を図１０に示す。
【００８７】
ステップ1301にて、検索プログラム更新部は、管理端末から検索プログラム更新指示を受領する。
【００８８】
ステップ1302にて、スナップショット管理部はストレージシステム制御部を使って、現在利用している検索プログラムのスナップショットを作成する。すなわち、LU0120にスナップショット用LUを割り当て、ペアを作成し、コピー元LU0120からコピー先LUへコピーを実行した後、ペアを削除する。
【００８９】
ステップ1303にて、検索プログラム更新部は、スナップショット管理テーブルに、作成した検索プログラムのスナップショットを管理するためのエントリを追加する。検索プログラム更新部は、具体的にはID0207を割り当て、スナップショットを作成した時刻0202を記録し、スナップショットを格納しているLUのLUNを記録する。
【００９０】
ステップ1304にて、検索プログラム更新部は、受信した新しい検索プログラムを検索プログラム用LU0120にインストールする。
【００９１】
ステップ1305にて、検索プログラム更新部は、検索プログラム・バージョン管理テーブル0301を更新する。検索プログラム更新部は、具体的には検索プログラムのバージョン0302と当該検索プログラムがサポートしているインデックス及びスコアリング・ルールのフォーマットのバージョンを記録する。サポート可能なフォーマットのバージョンは管理端末が送信する検索プログラム更新要求に含まれる。
【００９２】
以上で検索プログラム更新部の処理が完了する。
【００９３】
以上、本実施例によれば、過去のインデックスを使ってデータ検索を行い、過去のスコアリング・ルールに従って検索結果を出力することができる。
【００９４】
したがって、検索者はある特定の時点におけるインデックスとスコアリング・ルールを用いれば、過去に行った検索の結果を再現させることができ、過去にアクセスしたデータを容易に再発見することができる。
【００９５】
また、ある特定の時点におけるインデックスを用いた検索結果を複数の時点におけるスコアリング・ルールを用いて出力することで、スコアリング・ルールの変更内容を推定することが可能となる。
【００９６】
さらに検索結果に従って過去の時点における検索対象データを検索者に参照させることが可能となる。したがって、検索者にとって過去にアクセスしたデータを再び見つけてアクセスできる確率が向上する。
【００９７】
なお、上述の実施形態においては、スナップショット管理部はスナップショット作成要求1101の受信を契機としてスナップショットの取得処理を実行しているが、別のタイミングを契機としてスナップショットの取得処理を実行しても良い。例えば、インデックス、スコアリング・ルール、検索プログラム、検索対象データのいずれかが更新される毎にスナップショットを作成すれば、任意時点のインデックス、スコアリング・ルール、検索プログラム、検索対象データを用いた検索結果の提供が可能となる。
また、検索要求に従って検索処理が実行されるごとに検索処理の完了後、インデックス、スコアリング・ルール、検索プログラム、検索対象データのスナップショットを取得することも考えられる。この結果、検索者に対し、過去の検索結果を再提供し過去にアクセスされたデータへの再アクセスを提供することができる。
【００９８】
なお、インデックス、スコアリング・ルール、検索対象プログラム、検索対象データは1つのLUに格納されていても良い。同様に、インデックス、スコアリング・ルール、検索対象プログラム、検索対象データ各々のスナップショットも1つのLUに格納されていても良い。
【００９９】
また例えば検索対象データ用LU0115と検索対象データのスナップショットが格納されているLU群0122は第一のストレージシステムに、インデックス用LU0116とインデックスのスナップショットが格納されているLU群0118は第二のストレージシステムに、スコアリング・ルール用LU0117とスコアリング・ルールのスナップショットが格納されているLU群0119は第三のストレージシステムに、検索プログラム用LU0120と検索プログラムのスナップショットが格納されているLU群0121は第四のストレージシステムに存在するなど、検索対象データ、インデックス、スコアリング・ルール、検索プログラム及びこれらのスナップショットは異なる複数のストレージシステムに分散して存在してもよい。この実施例により、大規模で分散したストレージシステム環境でも同様の効果を得る事ができる。
【０１００】
検索プログラムによっては、検索プログラムだけで単独にはスナップショットを作成できない場合がある。このような場合には、検索プログラムとその実行環境（OSなど）を含むスナップショットを作成する実施形態も有り得る。この場合、検索エンジン・サーバ上に先述の仮想サーバ・ソフトを用いて仮想マシンを起動し、その上でスナップショット内の検索プログラムと実行環境を動作させる。
【０１０１】
実装によっては、スコアリング・ルールと検索プログラムが一体化して切り離せない場合がある。この場合は、いずれか一方のスナップショットを作成する際は他方のスナップショットも作成する。検索の際、スコアリング・ルールについて時刻指定されたら、検索プログラムについても同時刻のスナップショットを使うものとする。
【０１０２】
スコアリング・ルールが、静的な情報だけでなく、データのアクセス数やデータの最終アクセス時刻など時間ととも変動する動的情報を利用している場合もある。この場合、スコア計算に必要な動的情報もスコアリング・ルールと共に合わせてスナップショットを作成する実施形態がある。
【０１０３】
別の実施例としては、ストレージシステムとしてファイル・サーバやNAS（Network Attached Storage）を利用することも考えられる。この場合、スナップショットはファイル単位やファイルシステム単位で作成される。その他は既に述べた実施例で実現できる。
【図面の簡単な説明】
【０１０４】
【図１】検索システムのシステム構成の一例と検索システムを構成している各システム構成要素のハード構成の一例を示した説明図である。
【図２】検索システムの論理的なシステム構成の一例と各システム構成要素が提供する機能の一例について示した説明図である。
【図３】クライアント計算機が検索エンジン・サーバに発行する検索要求の一例を示した説明図である。
【図４】管理端末が検索エンジン・サーバに対して発行するスナップショット管理要求の一例を示した説明図である。
【図５】スナップショット管理テーブルの一例を示した説明図である。
【図６】検索プログラム・バージョン管理テーブルの一例を示した説明図である。
【図７】インデックスの一例を示した説明図である。
【図８（ａ）】検索処理部の処理フローの一例を示した説明図である。
【図８（ｂ）】検索処理部の処理フローの一例を示した説明図である。
【図９】スナップショット管理部の処理フローの一例を示した説明図である。
【図１０】検索プログラム更新部の処理フローの一例を示した説明図である。
【符号の説明】
【０１０５】
0101      クライアント計算機
0103      検索エンジン・サーバ
0106      検索処理部
0107      スナップショット管理部
0108      検索プログラム更新部
0111      ストレージシステム
0123      管理端末
0901      ネットワーク・スイッチ
0401      検索要求
1101      スナップショット作成要求
1108      スナップショットリスト表示要求
1110      スナップショットリスト削除要求
0109      スナップショット管理テーブル
0301      検索プログラム・バージョン管理テーブル
0501      インデックス
【図１】
2009064120.tif 000003
【図２】
2009064120.tif 000004
【図３】
2009064120.tif 000005
【図４】
2009064120.tif 000006
【図５】
2009064120.tif 000007
【図６】
2009064120.tif 000008
【図７】
2009064120.tif 000009
【図８（ａ）】
2009064120.tif 000010
【図８（ｂ）】
2009064120.tif 000011
【図９】
2009064120.tif 000012
【図１０】
2009064120.tif 000013