ファイルサーバに接続された情報処理システムにおいて、前記ファイルサーバに格納されたファイル群の中から、新規生成更新、及び、削除されたファイル群を探索する処理機能と、新規生成更新されたファイル群をダウンロードする処理機能と、削除されたファイル群に関する削除ファイルリストを生成する処理機能と、ダウンロードされたファイル群のインデクスを生成する処理機能と、前記インデクス及び前記削除ファイルリストを用い、記憶領域に格納されたインデクスを更新する処理機能と、更新後のインデクスデータを格納する論理ボリュームのスナップショットを作成する処理機能と、前記スナップショットされたボリューム上のインデクスデータを検索可能なインデクスとして設定する処理機能とを有することを特徴とする情報処理システム。請求項1に記載の情報処理システムにおいて、前記ファイルサーバに格納されたファイル群の中から、新規生成更新、及び削除されたファイル群を探索する処理機能は、前回のインデクス更新処理時における前記ファイルサーバ内の全ファイルディレクトリのパス名を鍵とする各ファイルディレクトリの属性情報のハッシュ値及び削除フラグを格納したDBに照会し、新規生成更新ファイルの検知及び削除されたファイルを認識することを特徴とする情報処理システム。請求項1に記載の情報処理システムにおいて、N自然数1番目のインデクスを検索可能なインデクスとして設定した後に、N番目のインデクスデータを保持するスナップショットを削除する処理機能を有することを特徴とする情報処理システム。インデクス生成サーバに接続される検索サーバにおいて、前回のインデクス生成以降、ファイルサーバで新規に生成更新されたファイル群のインデクスと前記ファイルサーバから削除されたファイル群に関する削除ファイルリストを、前記インデクス生成サーバから受信する処理機能と、前記インデクス及び前記削除ファイルリストを用い、記憶領域に格納されたインデクスを更新する処理機能と、更新後のインデクスデータを格納する論理ボリュームのスナップショットを作成する処理機能と、前記スナップショットされたボリューム上のインデクスデータを検索可能なインデクスとして設定する処理機能とを有することを特徴とする検索サーバ。請求項4に記載の検索サーバにおいて、N自然数1番目のインデクスを検索可能なインデクスとして設定した後に、N番目のインデクスデータを保持するスナップショットを削除する処理機能を有することを特徴とする検索サーバ。ファイルサーバに接続された情報処理システムに搭載されるコンピュータに、前記ファイルサーバに格納されたファイル群の中から、新規生成更新、及び、削除されたファイル群を探索する処理機能、新規生成更新されたファイル群をダウンロードする処理機能、削除されたファイル群に関する削除ファイルリストを生成する処理機能、ダウンロードされたファイル群のインデクスを生成する処理機能、前記インデクス及び前記削除ファイルリストを用い、記憶領域に格納されたインデクスを更新する処理機能、更新後のインデクスデータを格納する論理ボリュームのスナップショットを作成する処理機能、前記スナップショットされたボリューム上のインデクスデータを検索可能なインデクスとして設定する処理機能を実行させるプログラム。請求項6に記載のプログラムにおいて、前記ファイルサーバに格納されたファイル群の中から、新規生成更新、及び削除されたファイル群を探索する処理機能は、前回のインデクス更新処理時における前記ファイルサーバ内の全ファイルディレクトリのパス名を鍵とする各ファイルディレクトリの属性情報のハッシュ値及び削除フラグを格納したDBに照会し、新規生成更新ファイルの検知及び削除されたファイルを認識することを特徴とするプログラム。請求項6に記載のプログラムにおいて、N自然数1番目のインデクスを検索可能なインデクスとして設定した後に、N番目のインデクスデータを保持するスナップショットを削除する処理機能を有することを特徴とするプログラム。インデクス生成サーバに接続される検索サーバに搭載されるコンピュータに、前回のインデクス生成以降、ファイルサーバで新規に生成更新されたファイル群のインデクスと前記ファイルサーバから削除されたファイル群に関する削除ファイルリストを、前記インデクス生成サーバから受信する処理機能、前記インデクス及び前記削除ファイルリストを用い、記憶領域に格納されたインデクスを更新する処理機能、更新後のインデクスデータを格納する論理ボリュームのスナップショットを作成する処理機能、前記スナップショットされたボリューム上のインデクスデータを検索可能なインデクスとして設定する処理機能を実行させるプログラム。請求項9に記載のプログラムにおいて、N自然数1番目のインデクスを検索可能なインデクスとして設定した後に、N番目のインデクスデータを保持するスナップショットを削除する処理機能を有することを特徴とするプログラム。前述した特許文献1及び2に係る発明では、個々のインデクスデータのデータ格納方式を工夫することにより、インデクスデータ自体の圧縮削減を実現する。しかし、検索サービスを無停止のままインデクスを更新するには、依然として、2系統のインデクスデータを物理的に保持することに変わりはなく、2重化によるデータ容量の大幅な増加を防ぐことは難しい。また、インデクスの最適化処理に関する効率化を実現する方式でもない。本発明は、インデクスの2重化によるデータ容量の物理的な増大を防ぎつつ、オンラインによるインデクスの更新を実現する。前述した課題を解決するため、本発明に係る情報検索システムにおいては、オリジナルのインデクスファイルのスナップショットを作成し、検索用インデクスにはスナップショット側のデータを利用し、更新にはオリジナルのデータを利用する。本発明によれば、インデックス更新中の可用性を維持しつつも、必要とされる物理的なストレージ容量を削減することができる。上述した以外の課題、構成及び効果は、以下の説明により明らかにされる。以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明する。以下の実施の形態において、要素の数等個数、数値、量、範囲等を含むに言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。図1に、形態例に係る情報検索システムの全体構成を示す。当該システムは、利用者端末101、ファイルサーバ102、インデクス生成サーバ103、検索サーバ104で構成される。本形態例の場合、ファイルサーバ102とインデクス生成サーバ103はLAN105を介して接続され、利用者端末101、インデクス生成サーバ103、検索サーバ104はLAN105を介して接続される。本形態例では、LAN105を介して各装置が接続されているが、インターネット等のネットワーク経由で接続されてもよい。図1には、インデクス生成サーバ103と検索サーバ104が物理的に別のマシン上で稼働する例を表しているが、これらのサーバは物理的に同一のマシン上で稼働してもよい。ファイルサーバ102には、検索対象となるファイル106が格納されている。インデクス生成サーバ103には、クローリングモジュール107、インデクス生成モジュール108、検索エンジン109、クローリング管理DB110が配置される。クローリングモジュール107は、ファイルサーバ102を探索して更新ファイルを発見し、ダウンロードする機能を提供する。インデクス生成モジュール108は、ダウンロードされたデータから差分インデクスを生成する。検索エンジン109は、インデクス生成検索機能を提供するモジュールであり、オープンソースの検索エンジンとして、ApacheLuceneやSennaがある。検索エンジン109は、差分インデクス生成時にインデクス生成モジュール108により利用される。クローリング管理DB110は、前回のクローリング時からのファイルディレクトリの更新を管理する。検索サーバ104には、検索エンジン109、検索サービス111、インデクス管理サービス112、ファイルシステム113、ボリューム管理サービス114、検索用インデクス115、オリジナルインデクス116が配置される。検索サービス111は、利用者端末101から検索要求を受け付けると、検索エンジン109を使用して検索結果を生成して応答する。インデクス管理サービス112は、インデクス生成サーバ103で生成された差分インデクスと削除ファイルリストに基づいてオリジナルインデクス116に対して更新処理を行う。この他、インデクス管理サービス112は、オリジナルインデクス116の更新後にボリューム管理サービス114が提供するスナップショット機能により検索用インデクス115を生成する。また、インデクス管理サービス112は、生成した検索用インデクス115を検索可能にする検索エンジン109が提供する検索コアのアタッチ機能を提供する。例えば、ApacheLuceneをベースにした検索サービスを実現するSolrには、前述の検索コアに相当するSolrCoreが存在し、インデクスがアタッチされたSolrCoreを動的に切り替えることにより、検索可能なインデクスのリアルタイムの切り替え機能を実現する。ボリューム管理サービス114は、論理ボリュームを構成可能にする検索サーバのOSに搭載されたサービスであり、例えばLinuxにおけるLVMLogicalVolumeManagerが一例である。ボリューム管理サービス114は、構成されたボリュームに対してスナップショットを作成する機能を提供する。スナップショット機能はCopyOnWriteにより、瞬間的にボリュームのコピーを生成する機能であり、生成されたコピーはReadOnlyでアクセス可能である。図2に、スナップショットを利用したインデクス更新処理の概念を示す。検索用インデクスとして検索コア201がアタッチしているN自然数世代目インデクス202は、オリジナルインデクス203を格納する論理ボリュームに対してスナップショットで生成され、コピーされたボリューム上のインデクスである。検索エンジン109は、検索要求に対し、検索用インデクス115であるN世代目インデクス202にアクセスして検索処理を実行する。検索処理において、インデクスへのアクセスはReadOnlyである。このため、スナップショット上のインデクスデータに対し、検索コア201をアタッチして検索処理することができる。次回更新時には、オリジナルインデクス203に対して更新処理を行う。このとき、スナップショット上のN世代目インデクス202のデータをそのままにして、オリジナルインデクス203のデータを更新することができる。更新後は、新たにスナップショットを生成し、そのスナップショット上のインデクスデータをN1世代目インデクスとする。このN1世代目インデクスに検索コア201をアタッチして検索可能にした後、N世代目インデクスを格納するスナップショットを削除する。このようにスナップショットを利用することで、インデクスを物理的に完全に2重化する方式に比べ、インデクスが使用するストレージ容量を圧縮削減することができる。図3に、クローリング管理DB110に登録されているテーブルの構造例を示す。テーブルの属性値には、パス名301、ハッシュ値302、削除フラグ303がある。パス名301は、検索対象となるファイルサーバ内に格納されているファイルディレクトリのファイルパスを記録する。ハッシュ値302は、ファイルディレクトリの属性情報ファイルパス、更新日時、所有者、ACL等のハッシュ値を格納する。ハッシュ値302は、各ファイルパスで指定されたファイルの更新の検知に利用される。削除フラグ303は、前回のクローリング時と比較して、登録エントリに対応するファイルディレクトリが削除されているかどうかをチェックするために使用するフラグ情報である。削除フラグ303は、クローリング時に初期値として1が設定され、クローリングで存在が確認されたファイルディレクトリに0が設定される。全てのファイルディレクトリのクローリングが完了した時点で、削除フラグ303が1のエントリを調べると、削除ファイルリストを作成することができる。インデクス生成サーバ103は、削除ファイルリストと、新規作成更新のあったファイルに関する差分インデクスを生成し、検索サーバ104に転送する。検索サーバ104は、転送された削除ファイルリストと差分インデクスを用い、現在利用されているインデクスの更新処理を実行する。図4に、インデクスの生成更新処理を説明するフローチャートを示す。インデクスの生成更新処理は、インデクス生成サーバ103及び検索サーバ104上で定期的に実行される処理である。インデクスの生成更新処理は、前回の実行後に新規に作成更新又は削除されたファイルディレクトリに対し、現在の検索サーバ104上で利用されているインデクスを更新する処理である。インデクスの生成更新処理が開始されると、インデクス生成サーバ103は、検索対象となるファイルサーバ102に対してクローリング処理が実行されるステップ401。クローリング処理においては、前回のインデクス生成更新処理以降に削除されたファイルリスト削除ファイルリストの作成と、新規に作成更新されたファイルのダウンロードが実行される。その後、ダウンロードされたファイルデータを用いた差分インデクスの生成処理が行われるステップ402。次に、生成された差分インデクスと削除ファイルリストは検索サーバ104に転送されステップ403、検索サーバ104上で、転送されたデータに基づいて現在検索に利用しているインデクスの更新処理を実行するステップ404。フローチャートにおいて、サブルーチンとして定義したクローリング処理、差分インデクス生成処理、インデクス更新処理の詳細については、以降のフローチャートで説明する。図5に、クローリング処理のフローチャートを示す。クローリング処理は、インデクス生成サーバ内のクローリングモジュール107で実行される。クローリングモジュール107は、探索対象であるファイルサーバ102のディレクトリを探索するが、探索される各ファイルディレクトリに関してループ処理を行うステップ501。まず、クローリングモジュール107は、探索対象とするファイルディレクトリのファイル属性値を取得し、ハッシュ値を計算するステップ502。次に、ファイルパスをキーとしてクローリング管理DB110をチェックし、指定されたファイルパスのエントリがDB内に存在するか否かをチェックするステップ503。クローリング管理DB110にファイルパスが存在しない場合ステップ503で否定結果の場合、当該ファイルパスのファイルディレクトリは、前回のクローリング時以降に新規生成されたことを意味する。このため、クローリングモジュール107は、クローリング管理DB110にエントリを追加し、ファイルの場合はデータをダウンロードするステップ504。ファイルディレクトリが存在するため、クローリングモジュール107は、削除フラグをクリアしてステップ507、ループの次の探索ファイルディレクトリ処理に移行する。一方、クローリング管理DB110にファイルパスが存在しない場合ステップ503で肯定結果の場合、クローリングモジュール107は、計算したファイル属性値のハッシュ値が、クローリング管理DB110に登録されているハッシュ値と等しいがどうかチェックするステップ505。計算したハッシュ値が登録されているハッシュ値が同じ場合ステップ505で肯定結果の場合、前回のクローリング時から更新されていないことを意味する。この場合、クローリングモジュール107は、データのダウンロード処理は行わず、削除フラグをクリアしてループ処理の次のステップに移るステップ507。計算されたハッシュ値が登録されているハッシュ値と異なる場合ステップ505で否定結果の場合、前回のクローリング時よりファイルディレクトリが更新されていることを意味する。この場合、クローリングモジュール107はエントリのハッシュ値を更新し、ファイルの場合はデータをダウンロードするステップ506。その後、クローリングモジュール107は、削除フラグをクリアしてループ処理の次のステップに移るステップ507。探索ダウンロード処理のループが終了した段階で、クローリングモジュール107は、クローリング管理DB110の削除フラグをチェックし、削除フラグが1のエントリのファイルパスを全て取得して削除ファイルリストを生成し、その後、次回クローリング処理のために全エントリの削除フラグを1に初期化するステップ508。図6に、差分インデクス生成処理のフローチャートを示す。差分インデクス生成処理は、インデクス生成モジュール108により実行される。本モジュールは、クローリング処理によりダウンロードされた新規作成更新されたファイル群に逐次アクセスし、差分インデクスに登録処理を行うループ処理を実行するステップ601。ループ処理が開始されると、インデクス生成モジュール108は、ファイルからテキストデータを抽出しステップ602、ファイルのメタデータを抽出するステップ603。その後、インデクス生成モジュール108は、差分インデクスに追加登録するためのデータを作成する。インデクス生成モジュール108は、そのデータを入力値として検索エンジン109を利用し、作成されたデータを差分インデクスに追加登録するステップ604。全てのダウンロードデータが差分インデクスに登録されるまでループ処理を続ける。本処理で生成される差分インデクスは、前回のインデクス生成更新処理以降に新規作成更新されたファイル群に関するインデクスである。図7に、インデクス更新処理のフローチャートを示す。本処理は、検索サーバ104上でインデクス管理サービスにより実行される処理であり、インデクス生成サーバ103で生成された差分インデクス及び削除ファイルリストに基づいて、N世代目の検索用インデクスであるN世代目インデクスを更新する処理である。まず始めに、インデクス管理サービスは、N世代目インデクスのスナップショットの元となるオリジナルインデクスに対し、削除ファイルリストに記録されたファイルに関するエントリを削除するステップ701。次に、インデクス管理サービスは、オリジナルインデクスに差分インデクスをマージするステップ702。例えば、Luceneの場合、インデクス管理サービスは、差分インデクスをオリジナルインデクスにマージするために、まず、差分インデクスに登録されているファイル群の中からオリジナルインデクスに登録されているものを削除する。その後、インデクス管理サービスは、差分インデクスのデータをオリジナルインデクスに追加する。次に、インデクス管理サービスは、更新されたオリジナルインデクスを記録しているボリュームのスナップショットを作成するステップ703。その後、インデクス管理サービスは、作成したスナップショット上のインデクスを、N1代目インデクスとして新規に生成した検索コア201にアタッチしステップ704、アタッチした検索コア201のウォームアップ処理を実行するステップ705。ウォームアップ処理とは、検索履歴情報を用いて、N1世代目インデクスにアタッチした検索コアが内部的にアタッチしたインデクスに対してクエリを発行し、結果をキャッシュする処理で、次回クエリ時の応答性能の向上に行われる。ウォームアップ処理が終わると、インデクス管理サービスは、N世代目インデクスとN1世代目インデクスのそれぞれがアタッチされている検索コア201をスワップするステップ706。このスワップ処理により、N1世代目インデクスが検索可能となる。最後に、インデクス管理サービスは、N世代目インデクスにアタッチされている検索コア201を破棄し、N世代目インデクスを保持するスナップショットを削除するステップ707。以上の機能構成を採用することにより、検索サービスを稼働させたまま、動的にインデクスを更新することができる。この際、インデクスの更新はスナップショットの更新により実行する。従って、本形態例に係る情報検索システムは、検索用と更新用の2つのインデクスデータを物理的に保持する必要がない。従って、必要なストレージ容量を節減することができる。