"ファイルサーバに接続される情報処理システムにおいて、前記ファイルサーバで新規に生成された、更新された又は前記ファイルサーバから削除されたファイル群を探索する手段と、新規に生成された又は更新されたファイル群を、前記ファイルサーバからダウンロードする手段と、削除されたファイル群に関する削除ファイルリストを生成する手段と、ハッシュ値空間の始点と終点を同一視した円環状のハッシュ値空間を等間隔に分割したスロット領域に検索ノードのIDを対応付ける手段と、前記ファイル群を構成する各ドキュメントのメタ情報についてハッシュ値を計算し、計算されたハッシュ値を前記円環状のハッシュ値空間上に配置することにより、計算されたハッシュ値を含むスロット領域を検出する手段と、検出されたスロット領域に対応付けられている検索ノードのIDをテーブルから読み出す手段と、読み出された前記検索ノードのIDに基づいて、各ドキュメントを登録するインデクスを決定し、その差分インデクスを生成する手段と、前記差分インデクス及び削除ファイルリストを用い、前記情報処理システム内に格納されているインデクスを更新する手段とを有することを特徴とする情報処理システム。請求項1に記載の情報処理システムにおいて、N個の検索ノードに対してK個のスロット領域が配置されており、かつ、新たにM個の検索ノードが追加されるとき、既存の前記N個の検索ノードからKMN個のスロット領域をそれぞれ抽出し、抽出されたスロット領域を検索ノード単位でリストの先頭から順番に登録する手段と、前記リストの先頭からスロット領域をK個ずつ順番に切り出し、新たに追加するM個の検索ノードのIDに割り当てる手段とを有することを特徴とする情報処理システム。請求項1に記載の情報処理システムにおいて、NM個の検索ノードに対してK個のスロット領域が配置されている状態で、M個の検索ノードが削除されるとき、削除対象の検索ノードからK個のスロット領域を抽出し、抽出されたスロット領域を検索ノード単位でリストの先頭から順番に登録する手段と、前記リストの先頭からスロット領域をKMN個ずつ順番に切り出し、残留するN個の検索ノードのIDに割り当てる手段とを有することを特徴とする情報処理システム。ファイルサーバに接続される情報処理システムにおいて、前記ファイルサーバで新規に生成された若しくは更新された又は前記ファイルサーバから削除されたファイル群を探索する手段と、新規に生成された又は更新されたファイル群を、前記ファイルサーバからダウンロードする手段と、削除されたファイル群に関する削除ファイルリストを生成する手段と、ハッシュ値空間の始点と終点を同一視した円環状のハッシュ値空間上に、検索ノードに対応する複数の代表点を配置する手段と、前記ファイル群を構成する各ドキュメントのメタ情報についてハッシュ値を計算して、計算されたハッシュ値を前記円環状のハッシュ値空間上に配置し、配置された点から反時計回り又は時計周りに移動した際に最初に到達する代表点に対応する検索ノードを検出する手段と、検出された検索ノードに基づいて、各ドキュメントを登録するインデクスを決定し、その差分インデクスを生成する手段と、前記差分インデクス及び削除ファイルリストを用い、前記情報処理システム内に格納されているインデクスを更新する手段とを有することを特徴とする情報処理システム。請求項4に記載の情報処理システムにおいて、前記システムに検索ノードを追加するとき、前記円環状のハッシュ値空間上に追加する検索ノードに対応する代表点を配置し、前記システムから検索ノードを削除するとき、前記円環状のハッシュ値空間上から削除する検索ノードに対応する代表点を削除する手段を有することを特徴とする情報処理システム。ファイルサーバに接続される情報処理システムにおいて、前記ファイルサーバで新規に生成された若しくは更新された又は前記ファイルサーバから削除されたファイル群を探索する手段と、新規に生成された又は更新されたファイル群を、前記ファイルサーバからダウンロードする手段と、削除されたファイル群に関する削除ファイルリストを生成する手段と、ハッシュ値空間の始点と終点を同一視した円環状のハッシュ値空間上に当該空間を等間隔に分割するスロット領域を定義すると共に、前記ハッシュ値空間上に配置される検索ノードに対応付ける各空間領域を隣接領域との一方側の境界に位置するスロット領域により管理する手段と、前記ファイル群を構成する各ドキュメントのメタ情報についてハッシュ値を計算し、計算されたハッシュ値を前記円環状のハッシュ値空間上に配置することにより、計算されたハッシュ値を含む空間領域を検出する手段と、検出された空間領域に対応付けられている検索ノードのIDをテーブルから読み出す手段と、読み出された前記検索ノードのIDに基づいて、各ドキュメントを登録するインデクスを決定し、その差分インデクスを生成する手段と、前記差分インデクス及び削除ファイルリストを用い、前記情報処理システム内に格納されているインデクスを更新する手段とを有することを特徴とする情報処理システム。請求項6に記載の情報処理システムにおいて、N個の検索ノードに対してK個のスロット領域が配置されており、かつ、新たにM個の検索ノードが追加されるとき、既存の前記N個の検索ノードからスロット領域のKMN個分の領域サイズをそれぞれ抽出し、抽出された領域サイズを検索ノード単位でリストの先頭から順番に登録する手段と、前記リストの先頭からスロット領域のK個分に相当する領域サイズずつ順番に切り出し、新たに追加するM個の検索ノードのIDに割り当てる手段とを有することを特徴とする情報処理システム。請求項6に記載の情報処理システムにおいて、NM個の検索ノードに対してK個のスロット領域が配置されている状態で、M個の検索ノードが削除されるとき、削除対象の検索ノードからスロット領域のK個分の領域サイズを抽出し、抽出された領域サイズを検索ノード単位でリストの先頭から順番に登録する手段と、前記リストの先頭からスロット領域のKMN個分に相当する領域サイズずつ順番に切り出し、残留するN個の検索ノードのIDに割り当てる手段とを有することを特徴とする情報処理システム。請求項7又は8に記載の情報処理システムにおいて、前記領域サイズの割り当てによる各検索ノードに対応する空間領域を、その一方の境界に位置するスロット領域により管理する手段を有することを特徴とする情報処理システム。ところで、検索システムを構成する検索ノードは不変でなく、構成ノードに変動が生じることがある。例えば新規の検索ノードが検索システムに追加されることがある。この場合、分割インデクスに登録するドキュメント情報を移動再構成する必要が生じる。しかし、ハッシュ値に基づいてドキュメントを分割インデクスに登録する方法を採用する場合、既存ノード群から追加ノード群へのデータ移動だけでなく、既存ノード群の間でもデータの移動が発生し、移動効率が悪くなる問題がある。また、指定フォルダ毎に分割インデクスを決定する場合、フォルダ内のファイル数の差に起因して各分割インデクスに登録されるドキュメント数にもばらつきが生じ、分散検索の実行時に、均等な負荷バランスを確保することができず、検索性能が悪化する問題がある。そこで、本発明では、分散検索時に使用される各分割インデクスに登録されるドキュメント数を平準化するとともに、検索ノードの追加削除時における効率的なインデクスの再配置を実現するインデクスの分割管理技術を提案する。前述した課題を解決する本発明は、様々な変形例を含んでいる。1つの発明では、インデックスの分散管理に、始点と終点を同一視した円環状のハッシュ値空間を使用するコンシステントハッシュ仮想ノード方式を適用する。また、1つの発明では、始点と終点を同一視した円環状のハッシュ値空間を予め等間隔に分割し、分割後の各スロット領域とノードの対応関係を管理する改良コンシステントハッシュ仮想ノード方式を適用する。また、1つの発明では、始点と終点を同一視した円環状のハッシュ値空間を予め等間隔に分割し、各ノードに割り当てる空間領域を当該空間領域間の一方側の境界に相当するスロット領域を用いて管理する改良コンシステントハッシュ仮想ノード方式を適用する。本発明によれば、大量のデータを取り扱う検索システムにおいて、インデクスを複数の検索ノードに分割して配置する場合にも、分割インデクスに登録されるドキュメント数の平準化を実現できる。また、本発明によれば、分割インデクスを効率的に再構成することができる。前述した以外の課題、構成及び効果は、以下の実施の形態の説明により明らかにされる。以下、本発明に係るインデクス分割管理技術の実施形態例を、図面を用いて詳細に説明する。なお、本発明の実施態様は、後述する例に限定されるものではなく、その技術思想の範囲において、種々の変形が可能である。なお、実施の形態を説明するための全図において、同一の機能に関する箇所には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さないものとする。[システム構成]図1に、各実施形態の説明で共通に使用する情報処理システムの全体構成例を示す。本システムは、利用者端末101、ファイルサーバ102、インデクス生成サーバ103、検索サーバ104、LAN105で構成される。各サーバは、コンピュータと、大規模ストレージ装置と、通信装置で構成される。ファイルサーバ102には、検索対象となるファイル106が格納されている。ファイルサーバ102は、LAN105経由で、インデクス生成サーバ103に接続されている。LAN105は無線方式でも有線方式でもよい。また、LAN105の一部は、インターネットでもよい。インデクス生成サーバ103には、LAN105経由で、検索サーバ104が接続されている。検索サーバ104を用いて検索を実行する利用者端末101も、LAN105経由で検索サーバ104に接続されている。図1に示すシステム図は、インデクス生成サーバ103と検索サーバ104とが物理的に異なるマシン上で稼働する場合を表しているが、これらのサーバが物理的に同一のマシン上で稼働してもよい。インデクス生成サーバ103には、クローリングモジュール107と、インデクス生成モジュール108と、検索エンジン109と、クローリング管理DB110とが配置されている。クローリングモジュール107は、ファイルサーバ102内を探索し、更新されたファイルを発見し、発見されたファイルをダウンロードする処理を実行する。インデクス生成モジュール108は、ダウンロードされたデータから差分インデクスを生成する処理を実行する。検索エンジン109は、インデクス生成検索機能を提供するモジュールであり、よく知られるオープンソースの検索エンジンとして、ApacheLuceneやSennaがある。検索エンジン109は、差分インデクスの生成時に、インデクス生成モジュール108により利用される。クローリング管理DB110は、前回のクローリング時から現在までのファイルディレクトリの更新を管理する。検索サーバ104には、検索エンジン109と、検索サービス111と、インデクス管理サービス112と、インデクス113とが配置される。検索サービス111は、利用者端末101から検索要求を受け付けると、検索エンジン109を使用して検索結果を生成して応答する処理を実行する。インデクス管理サービス112は、インデクス生成サーバ103で生成された差分インデクスと削除ファイルリストに基づいて、インデクス113に対する更新処理を実行する。また、インデクス管理サービス112は、LAN105に対する検索サーバ104の追加削除時に、インデクス113の再構成処理を実行する。ここで、再構成処理は、ノードの追加削除時に、各インデクスに登録されているドキュメントデータの登録先インデクスを変更する処理を意味する。各ドキュメントがどのインデクスに登録されるかは、マッピング情報により定義される。本明細書では、このマッピング情報を、後述するコンシステントハッシュ仮想ノード方式、又は、改良コンシステントハッシュ仮想ノード方式により定義する。マッピング情報マッピングテーブルは、インデクス管理サービス112が管理してもよいし、インデクス生成サーバ103や他のサーバが管理してもよい。ファイルサーバ102に保存されるファイル数の増加に伴い、インデクス113に登録されるドキュメント量も増加し、それに伴って検索時の負荷も増大する。ある一定の検索性能を確保するには、インデクス1個当たりの登録ドキュメント数を一定数以下に抑える必要がある。このため、検索対象となるファイル数が増大するのに伴って、検索サーバ104を追加していく必要がある。検索サーバ104の追加により、各インデクスに登録されているドキュメントの配置を再構成しなければならないが、後述するように、コンシステントハッシュ仮想ノード方式、又は、改良コンシステントハッシュ仮想ノード方式を利用したマッピング手法を利用することにより、ノード間におけるデータ移行コスト移動量や移動時間を最小限に抑えることができる。[コンシステントハッシュ仮想ノード方式]図2に、コンシステントハッシュ仮想ノード方式の概念を示す。本形態例においては、ハッシュ関数としてMD5を想定する。もっとも、ハッシュ関数はMD5に限られず、SHA1その他のハッシュ関数を適用することも可能である。MD5は、128ビットのハッシュ関数であり、0~21281の値を採り得る。ここでは、0と21281を同一視した円環状のハッシュ値空間202を考える。このように始点と終点を同一視した円環状のハッシュ値空間202に対し、例えばノード数を2、仮想ノード数を3とする場合を考える。2つのノードに対応するノードIDをそれぞれ1及び2とすると、円環状のハッシュ値空間202上には、各ノードに対応する代表点仮想ノード201が3つずつプロットされる。この状態で、ドキュメントDの登録先ノードIDを決定するには、まず、ドキュメントDのファイルパスのMD5値を計算し、次に、円環状のハッシュ値空間202に計算値をプロットする。その後、プロット点から反時計回りにポインタを移動させ、最初に到達する仮想ノード201に対応するノードIDを求め、当該ノードIDをドキュメントDの登録先ノードIDに決定する。この手順の繰り返しにより、全てのドキュメントに対し、ノードIDを1対1に対応させるマッピングを実現することができる。本明細書では、この手法を、コンシステントハッシュ仮想ノード方式と呼ぶ。なお、ノードIDを探索する際の探索方向は時計周りでもよい。ノードID=3のノードを情報処理システムに物理的に追加する場合には、ノードID=3のノードに対応する3つの仮想ノード201を円環状のハッシュ値空間202上にランダムにプロットする。仮想ノード201のプロットにより、新しいマッピング情報を定義することができる。この後、前述した手順に従って、ドキュメントに対応付けるノードIDを決定する。なお、本明細書においては、円環状のハッシュ値空間202上に既に存在するノードこの例では、ノードID=1、2のノードを既存ノードと呼び、新たに追加されるノードこの例では、ノードID=3のノードを追加ノードとも呼ぶ。1つのノードに対応付ける仮想ノード201の数を増やすことにより、円環状のハッシュ値空間202上における各ノードの担当範囲を平均化することができ、各ノードにマッピングされるドキュメント数の分散を小さくすることができる。これに対し、ノードID=3のノードを情報処理システムから物理的に削除する場合には、円環状のハッシュ値空間202からノードID=3のノードに対応する3つの仮想ノード201を削除する。この後、前述した手順に従って、ドキュメントに対応付けるノードIDを決定する。このように、本実施形態に係る管理手法を用いれば、大量のデータを取り扱う検索システムにおいて、インデクスを複数の検索ノードに分割して配置する場合にも、分割インデクスに登録されるドキュメント数の平準化を実現できる。また、本発明によれば、分割インデクスを効率的に再構成することができる。[改良コンシステントハッシュ仮想ノード方式その1]図3に、前述したコンシステントハッシュ仮想ノード方式の改良方式の概念を示す。本形態例の場合も、前述の形態例の場合と同様、ハッシュ関数としてMD5を想定する。また、管理空間には、0と21281を同一視した円環状のハッシュ値空間202を考える。ただし、本形態例の場合、円環状のハッシュ値空間202をK個に等分割し、各単位空間をスロット301と定義する。なお、各スロット301には、ハッシュ値0を含むスロットから反時計回りに順番に、スロット番号302を付与する。この形態例の場合、スロット番号302は、0からK-1の値を採る。また、各スロット番号302には対応するノードID303を定義し、その情報をマッピングテーブル304により管理する。この管理手法によれば、前述したコンシステントハッシュ仮想ノード方式と同様、与えられたドキュメントDのファイルパスに対応するノードIDを計算することができる。例えば円環状のハッシュ値空間202をK個に分割する場合、各スロット301が担当する空間サイズは、2128Kで与えられる。従って、スロット番号Xに対応するスロット301は、2128XK~2128K1の空間領域を担当する。この形態例の場合には、以下の手順で、ドキュメントDに対応するノードIDを決定する。まず、ドキュメントDのファイルパスについてMD5ハッシュ値を計算して円環状のハッシュ値空間202上にプロットし、当該プロット点が属するスロット番号Xを求める。次に、求まったスロット番号Xによりマッピングテーブル304を参照し、スロット番号Xに対応するノードIDを求める。これにより、ドキュメントDに対応するノードIDが決定される。本形態例に係る手法のメリットは、形態例1に係るコンシステントハッシュ仮想ノード方式に比べ、マッピング情報の定義に必要なリソース量が少なく済む点である。例えば管理対象とする検索サーバ104の数が1000個であり、各検索サーバ104に登録するドキュメント数の分散を平均値の10以内に収めたい場合、形態例1の方式図2によると、管理対象とする仮想ノードの数が数千個にも及ぶ。このため、その全ての仮想ノードのマッピング情報を保存するには数GBの記憶領域が必要になる。一方、本形態例に係る改良型のコンシステントハッシュ仮想ノード方式の場合、同様の分散に抑えるために必要な記憶領域は数十MBで済み、リソース効率が非常に高くなる。続いて、情報処理システムを構成する検索サーバ104の数を変更する場合に実行されるスロットの再配分処理を説明する。以下では、図4に検索サーバ104を追加する場合に実行されるインデクスの再配分処理について、図5に検索サーバ104を削除する場合に実行されるインデクスの再配分処理について説明する。図4は、N個のノードで構成される情報処理システムに、M個のノードを新たに追加する場合におけるスロットの再配分処理の概念図である。以下に説明する処理は、情報処理システムを構成するいずれかのサーバ上に用意されたインデクス管理サービス112において実行される。ここでは、円環状のハッシュ値空間上に定義された全スロット数をK、既存ノード数をN、追加ノード数をMとする。まず、各ノードからKMN個のスロットが抽出され、再配分用に用意されるリスト記憶領域に順番に追加される。図4では、抽出されたスロットに番号を付して表している。リストにスロットを追加する際の採番規則は、ノードID,シーケンス番号である。なお、リストは、再配分処理を管理するインデクス管理サービス112に用意される。また、N個のノード全体からは、KM個のスロットが抽出される。図4では、抽出されるKMN個のスロットの範囲を実線により囲んで表している。各ノードからのスロットの抽出は、スロットの再配分後に、各ノードに分配されるスロット番号図3が可能な限り連続した番号になるように、再配分処理の実行時点に各ノードに割り当てられているスロット番号の小さいものから順番に抽出される。各ノードから抽出されたスロットがリスト上に並ぶと、インデクス管理サービス112は、先頭からK個ずつスロットを切り出し、M個の追加ノードに順番に割り当てる。この結果、再配分完了後の各ノードに割り当てられるスロットの数は、全てK個になる。すなわち、分割インデクスに登録されるドキュメント数を平準化することができる。この配分方式の採用により、既存ノードから追加ノードに移行されるデータ各スロットに属するデータを、極力、纏まった塊にすることができる。この結果、既存ノード上でのインデクスの切出し回数を極力減らすことができ、再構築時におけるオーバヘッドを減らすことができる。また、本方式によるデータの移動は、いずれも既存ノードから追加ノードへの移動のみであり、既存ノード間におけるデータ移動を無くすことができる。このため、移動データ量が必要最小限で済み、分割インデクスを効率的に再構成することができる。図5は、NM個のノードで構成される情報処理システムからM個のノードを削除する場合におけるスロットの再配分処理の概念図である。以下に説明する処理も、情報処理システムを構成するいずれかのサーバ上に用意されたインデクス生成モジュール108において実行される。なお、図5は、図4を用いて説明した再配分後のスロット配置と同じである。従って、NM個のノードには、それぞれK個のスロットが割り当てられている。この状態において、削除対象であるM個の削除ノードから各K個のスロットが抽出され、再配分用に用意されるリスト記憶領域に順番に追加される。ここでのリストは、ノードを追加する際に使用するリストと同じでもよいし、異なっていてもよい。図5も、抽出されるスロットに番号を付して表している。リストにスロットを追加する際の採番規則は、ノードID,シーケンス番号である。前述の場合と同様、リストは、再配分処理を管理するインデクス管理サービス112に用意される。また、M個のノード全体からは、KM個のスロットが抽出される。図5では、抽出されるKMN個のスロットの範囲を実線により囲んで表している。各ノードからのスロットの抽出は、スロットの再配分後に、各ノードに分配されるスロット番号図3が可能な限り連続した番号になるように、再配分処理の実行時点に各ノードに割り当てられているシーケンス番号の小さいものから順番に抽出される。各ノードから抽出されたスロットがリスト上に並ぶと、インデクス生成モジュール108は、先頭からKMN個ずつスロットを切り出し、削除されないN個の残留ノードに順番に割り当てる。この結果、再配分完了後の各ノードに割り当てられるスロットの数は、全てKN個になる。すなわち、分割インデクスに登録されるドキュメント数を平準化することができる。この配分方式の採用により、削除ノードから残留ノードに移行されるデータ各スロットに属するデータを、極力、纏まった塊にすることができる。この結果、削除ノード上でのインデクスの切出し回数を極力減らすことができ、再構築時におけるオーバヘッドを減らすことができる。また、本方式によるデータの移動は、いずれも削除ノードから残留ノードへの移動のみであり、残留ノード間におけるデータ移動を無くすことができる。このため、移動データ量が必要最小限で済み、分割インデクスを効率的に再構成することができる。[クローリング管理データベース]図6に、クローリング管理データベース110のテーブル例を示す。クローリング管理データベース110の利用により、インデクス生成サーバ103は、前回のクローリング時点から現在時点までに変更があったファイルを検出し、差分インデクスを作成する。テーブルの属性値には、パス名601、ハッシュ値602、削除フラグ603が含まれる。パス名601は、ファイルサーバ内におけるファイルのパスである。ハッシュ値602は、各ファイルのメタデータのハッシュ値である。削除フラグ603は、ファイルが削除されたか否かの状態を記録するフラグであり、0が残存、1が削除済みを表している。削除フラグ603は、クローリングの開始時に1にセットされ、クローリングでファイルが存在していることが確認できた段階で0にセットされる。最終的に削除フラグ603が1のエントリのパス名をリストアップすると、削除ファイルリストを生成することができる。削除ファイルリストは、差分インデクスを検索ノード上のインデクスに適用する際更新反映する際、利用される。[インデクスの生成処理]図7に、インデクスの生成処理手順の概要を示す。まず、インデクス生成サーバ103は、ファイルサーバ102にアクセスし、差分データのクローリング処理を実行するステップ701。このクローリング処理において、インデクス生成サーバ103は、各ファイルのメタ情報のハッシュ値を計算する。インデクス生成サーバ103は、計算されたハッシュ値とクローリング管理データベース110に記録されている前回クローリング時のハッシュ値との比較により、データ更新の有無を検知する。次に、インデクス生成サーバ103は、更新が確認されたファイルをダウンロードすると共に、削除されたファイル名のリストである削除ファイルリストを生成する。次に、インデクス生成サーバ103は、ダウンロードしたファイルデータに基づいて、差分インデクスを生成するステップ702。インデクス生成サーバ103は、コンシステントハッシュ仮想ノード方式又は改良コンシステントハッシュ仮想ノード方式を利用し、各分割インデクス検索サーバ104に対応するに応じた削除ファイルリストの分割生成及び差分インデクスの生成を行う。続いて、インデクス生成サーバ103は、生成された差分インデクスと削除ファイルリストを、マージ対象であるインデクスが格納されている検索サーバ104に転送するステップ703。この転送はLAN105経由で実行される。検索サーバ104は、差分インデクス削除ファイルリストを使用して、自装置が保持するインデクス113を更新するステップ704。[差分インデクス生成処理]図8に、ダウンロードデータから差分インデクスを生成する際に実行される差分インデクス生成処理手順を示す。差分インデクスの生成処理は、インデクス生成モジュール108により実行される。インデクス生成モジュール108は、クローリング処理によりダウンロードされた新規作成ファイル群又は更新ファイル群に逐次アクセスし、差分インデクスに登録するループ処理を実行するステップ801。ループ処理が開始されると、まず、インデクス生成モジュール108は、ファイルデータからテキストデータを抽出するステップ802。次に、インデクス生成モジュール108は、ファイルデータからメタデータを抽出しステップ803、差分インデクスに追加登録するデータを作成する。その後、インデクス生成モジュール108は、ファイルパスのハッシュ値を計算し、コンシステントハッシュ仮想方式又は改良コンシステントハッシュ仮想ノード方式を用いて構築されたマッピング情報に基づいて、当該ドキュメントの登録先インデクスを決定するステップ804。決定後、インデクス生成モジュール108は、抽出したメタデータを入力値に使用し、検索エンジン109を利用して差分インデクスにドキュメントを追加登録するステップ805。このループ処理は、全てのダウンロードデータが差分インデクスに登録されるまで繰り返される。本処理において生成される差分インデクスは、前回のインデクス生成更新処理以降に、新規に作成更新されたファイル群に関するインデクスである。[ノード追加時の処理]図9に、N個のノードで構成される情報処理システムに、新たにM個のノードが追加される場合に実行されるスロットの再配分処理手順を示す。当該処理は、インデクス管理サービス112が実行する。M個のノードが追加されると、インデクス管理サービス112は、N個の既存ノードから、KMN個ずつスロットを抽出し、ノードIDの昇順にリストに詰めるステップ901。次に、インデクス管理サービス112は、リストの先頭から、K個ずつスロットを切出し、新規に追加されたM個のノードに割り当てるステップ902。この後、インデクス管理サービス112は、スロット割り当ての再編に応じ、スロット番号とノードIDのマッピングテーブルを編集し、改良コンシステントハッシュ仮想ノード方式におけるマッピング情報を更新するステップ903。この更新されたマッピング情報を利用して、インデクスの再構成処理を行う。[ノード削除時の処理]図10に、NM個のノードで構成される情報処理システムからM個のノードを削除する場合に実行されるスロットの再配分処理手順を示す。NM個の検索サーバ104からM個の検索サーバ104を削除する場合、インデクス管理サービス112は、削除するM個の検索サーバ104に割り当てられていたスロットを全て抽出し、ノードIDの昇順にリストに詰めるステップ1001。次に、インデクス管理サービス112は、リストの先頭から、KMN個ずつスロットを切出して、残りN個の残留ノード検索サーバ104に割り当てるステップ1002。最後に、インデクス管理サービス112は、スロット割り当ての再編に応じ、スロット番号とノードIDのマッピングテーブルを編集し、マッピング情報を更新するステップ1003。[ノード追加時におけるインデクスの再構築処理]図11に、ノード追加時に実行されるインデクスの再構成処理手順を示す。インデクス生成モジュール108は、ノードの追加に応じ、各既存ノード検索サーバ104に割り当てるスロットの再配分処理を実行するステップ1101。その後、インデクス生成モジュール108は、追加後のノード構成に応じたスロット番号302図3とノードIDのマッピングテーブルを生成するステップ1102。新規マッピングテーブルが生成されると、インデクス生成モジュール108は、検索サーバ104を追加する前の各検索サーバ104から追加ノードに転送すべきドキュメント群のインデクスを、新規マッピングテーブルに応じて切り出すステップ1103。その後、インデクス生成モジュール108は、既存ノード検索サーバ104から切り出したインデクスを追加ノード検索サーバ104に転送するステップ1104。一方、追加ノード検索サーバ104のインデクス管理サービス112は、既存ノードから切り出されて転送されたインデクス群のマージ最適化処理を行うステップ1105。[ノード削除時におけるインデクスの再構築処理]図12に、ノード削除時に実行されるインデクスの再構成処理手順を示す。検索サーバ104の削除時、インデクス生成モジュール108は、残留ノード検索サーバ104に割り当てるスロットの再配分処理を実行するステップ1201。続いて、インデクス生成モジュール108は、削除後のノード構成に応じたスロット番号とノードIDのマッピングテーブルを生成するステップ1202。その後、インデクス生成モジュール108は、各削除ノード検索サーバ104上のインデクス113から残留ノード検索サーバ104に移動するドキュメント群のインデクスを、新規マッピングテーブルに応じて切り出すステップ1203。続いて、インデクス生成モジュール108は、切り出したインデクス群を、マージ先となる残留ノード群に送信するステップ1204。一方、残留ノード検索サーバ104のインデクス管理サービス112は、削除ノードから切り出されて転送されたインデクス群のマージ最適化処理を行うステップ1205。[改良コンシステントハッシュ仮想ノード方式その2]次に、2つ目の改良コンシステントハッシュ仮想ノード方式を説明する。本方式は、前述した1つ目のコンシステントハッシュ仮想ノード方式に比して、マッピング情報の定義に必要なリソース量を更に節約できる方式である。図13に、2つ目の改良コンシステントハッシュ仮想ノード方式の概念を示す。図13は、ノードID=1~4を有する4つの検索サーバ104について生成されたマッピングテーブル情報の構成を表している。本方式図13も、1つ目の改良コンシステントハッシュ仮想ノード方式図3の場合と同様に、128ビットのハッシュ関数値0と21281を同一視した円環状のハッシュ空間を想定する。また、本方式図13も、円環状のハッシュ空間をK個に等分割し、各単位空間をスロット301と定義する。各スロット301には、ハッシュ値0を含むスロットから反時計回りに順番に、スロット番号302が付与される。ただし、本方式図13は、予めK個に分割されたスロットが、情報処理システムを構成する各ノードにおいて、ほぼ均等個数になるように割り当てを決定するのではなく、各検索サーバ104にほぼ同じサイズの空間が割り当てられるように、円環状のハッシュ空間上に分割ポイントを設定する。ただし、分割ポイントは、スロットの境界に限定する。例えば図13に示すように、円環状のハッシュ空間を4つの検索サーバ104に割り当てる場合、空間全体をほぼ4等分する空間に分割ポイントを3つ設定する。分割ポイントは、その直前の空間領域に位置するスロット301の番号スロット番号302を利用する。このポイント情報をマッピングテーブル304に記録し、割り当て領域に対応するノードIDを記録する。図13の場合、例えばノードID=1の空間領域は、スロット番号がm1とm2の間の空間領域に対応している。この場合、マッピングテーブル304には、スロット番号としてm2が設定され、更にノードIDとして1が設定される。このように、本方式図13の場合には、円環状のハッシュ空間を分割する空間領域数分の分割ポイントの情報のみがマッピングテーブル304に保持される。図13の場合は、円環状のハッシュ空間を4つの検索サーバ104に分割する4分割するので、マッピングテーブル304に保持される分割ポイント数は4つで済む。このように、本方式図13では、マッピングテーブル304に必要最低限の分割ポイント情報のみを保持するため、前述した1つ目の改良コンシステントハッシュ仮想ノード方式図3よりもメモリリソース量が少なくて済む。更に、本方式図13では、分割ポイントがスロットの境界に設定されるため、ノードの追加削除に応じて領域が断片化していった場合でも、マッピングテーブルの大きさの最大値は、高々、1つ目の改良コンシステントハッシュ仮想ノード方式の場合のマッピングテーブル304のサイズに抑制することができる利点がある。続いて、情報処理システムを構成する検索サーバ104の数を変更する場合に実行されるハッシュ値空間の再分割処理を説明する。以下では、図14に検索サーバ104を追加する場合に実行されるインデクスの再配分処理について、図15に検索サーバ104を削除する場合に実行されるインデクスの再配分処理について説明する。図14は、N個のノードで構成される情報処理システムに、M個のノードを新たに追加する場合におけるハッシュ値空間の再分割処理の概念図である。以下に説明する処理は、情報処理システムを構成するいずれかのサーバ上に用意されたインデクス管理サービス112において実行される。ここでは、円環状のハッシュ値空間を直線状にした図を用い、再分割処理の内容を説明する。初期状態では、N個のノードのそれぞれに対応する空間領域が、円環状のハッシュ空間上に定義されている。ここでも、円環状のハッシュ値空間上に定義された全スロット数をK、既存ノード数をN、追加ノード数をMとする。図14の場合、ID=1を有するノードに対応する空間領域は、2つに分割されて円環状のハッシュ空間上に配置され、ID=2を有するノードに対応する空間領域は、纏まった1つの空間領域に配置されている。ハッシュ値空間をK個に等分割した場合、各割り当て領域のサイズはKNとなる。この状況において、M個のノードを追加することを考える。このとき、インデクス管理サービス112は、各ノードの割り当て領域の中から、アドレスの小さい方から順にKMNのサイズの領域を抽出する。例えば図14の場合、太線で描かれた領域が、抽出領域の部分である。抽出された領域をノードIDが同じもの同士で連結し、更にノードIDの昇順に連結した領域を考える。その連結領域に対し、Kのサイズで領域を区切り、追加のM個のノードに対して順次割り当てる。その新しく区切るポイントを、元の円環状のハッシュ空間での対応アドレスに変換し、新しく割り当てたノードIDと共に、マッピングテーブル304を更新する。ここで、対応アドレスとは、分割ポイントの直前のスロット番号とする。この方式により、新規に追加したノードに対して、元のノードから極力纏まった形で領域を移行することができ、1つ目の改良コンシステントハッシュ仮想ノード方式と同様、インデクス再構築時のインデクス切出し処理の回数を削減して、インデクス再構築のオーバヘッドを減らすことができる。図15は、NM個のノードで構成される情報処理システムからM個のノードを削除する場合におけるハッシュ値空間の再分割処理の概念図である。以下に説明する処理も、情報処理システムを構成するいずれかのサーバ上に用意されたインデクス管理サービス112において実行される。ここで、削除するノードに付されているノードIDを、N1、N2、...、NMとする。削除するノードに割り当てられた空間領域を抽出し、同じノードIDを有する空間領域群をアドレスの昇順に並べて連結した後、ノードIDの昇順に連結した領域を求める。その領域に対し、KMNのサイズずつ切り出して、削除されないN個の残留ノードに順次割り当てを行う。割り当て時に設定した分割ポイントは、円環状のハッシュ空間でのアドレスに変換し、対応づけたノードIDと共に、マッピングテーブル304を更新する。本処理により、1つ目の改良コンシステントハッシュ仮想ノード方式と同様、インデクス再構築時のインデクス切出し処理の回数を削減して、再構築のオーバヘッドを削減する。[ノード追加時の処理]図16に、N個のノードで構成される情報処理システムに、新たにM個のノードが追加される場合に実行されるハッシュ値空間の再分割処理手順を示す。当該処理は、インデクス管理サービス112が実行する。M個のノードが追加されると、インデクス管理サービス112は、各ノードに割り当てられた空間領域から、スロットサイズでKMNずつ領域を抽出し、同じノードIDの領域同士でアドレスの昇順に結合後、ノードIDの昇順に結合した領域を構成するステップ1601。次に、インデクス管理サービス112は、結合して構成した領域の先頭から、Kずつ領域を切出し、新規に追加されたM個のノードに順次割り当てるステップ1602。この後、インデクス管理サービス112は、領域の割り当てに応じ、マッピングテーブルを更新するステップ1603。この更新されたマッピング情報を利用して、ハッシュ値空間の再分割処理を行う。[ノード削除時の処理]図17に、NM個のノードで構成される情報処理システムからM個のノードを削除する場合に実行されるハッシュ値空間の再分割処理手順を示す。NM個の検索サーバ104からM個の検索サーバ104を削除する場合、インデクス管理サービス112は、削除するM個の検索サーバ104に割り当てられていた領域を抽出し、同じノードIDの領域をアドレスの昇順に結合し、その後、ノードIDの昇順に結合した領域を構成するステップ1701。次に、インデクス管理サービス112は、結合領域の先頭から、スロットサイズでKMNずつ領域を切出して、残りN個の残留ノード検索サーバ104に順次割り当てるステップ1702。最後に、インデクス管理サービス112は、領域割り当ての再編に応じ、マッピングテーブル304の更新を行うステップ1703。[まとめ]以上の提案方式により、各分割インデクスへの登録件数を平準化することができる。また、以上の提案方式によれば、更にノードの追加削除時においても、既存ノード間における無駄なデータ移行の発生がなく、リソース消費量を節減できる効率的な再構築処理を実現することができる。かくして、ドキュメントを効率的に分割インデクスに登録することが可能となる。[他の形態例]なお、本発明は上述した形態例に限定されるものでなく、様々な変形例が含まれる。例えば、上述した形態例は、本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある形態例の一部を他の形態例の構成に置き換えることが可能であり、また、ある形態例の構成に他の形態例の構成を加えることも可能である。また、各形態例の構成の一部について、他の構成を追加、削除又は置換することも可能である。また、上述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路その他のハードウェアとして実現しても良い。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することにより実現しても良い。すなわち、ソフトウェアとして実現しても良い。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSDSolidStateDrive等の記憶装置、ICカード、SDカード、DVD等の記憶媒体に格納することができる。また、制御線や情報線は、説明上必要と考えられるものを示すものであり、製品上必要な全ての制御線や情報線を表すものでない。実際にはほとんど全ての構成が相互に接続されていると考えて良い。"