(57)【要約】【課題】複数の検索サーバ間で生成されるインデックスデータの使用領域に偏りが発生する。【解決手段】複数の検索サーバを使用してファイルのインデックスデータを管理するファイル検索システムにおいて、期間情報と検索サーバの割り当てを新たに決定する際、割り当て可能な検索サーバのうちでインデックスデータの使用領域が小さいものに新規の期間情報に割り当てる。これにより、ファイル検索システム全体としてのインデックスデータの均一化を実現し、検索効率を向上させる。【選択図】図１
2011070257.tif 000002
【特許請求の範囲】
【請求項１】
複数の検索サーバを使用してファイルのインデックスデータを管理するファイル検索システムにおいて、
ファイルに付属する期間情報とインデックスデータを作成する検索サーバとの対応関係を一意に特定するテーブルと、
前記データベースに新たな対応関係を登録する場合、前記複数の検索サーバのそれぞれからインデックスデータの使用領域を取得する処理と、取得された使用領域が最も小さい検索サーバを検出する処理と、検出された検索サーバを新たに登録する期間情報に割り付ける処理とを実行するテーブル管理部と
を有することを特徴とするファイル検索システム。
【請求項２】
請求項１に記載のファイル検索システムにおいて、
前記テーブル管理部は、
前記複数の検索サーバのそれぞれから取得したインデックスデータの使用領域について最大値と最小値を検出する処理と、検出された最大値と最小値の差が閾値を越えるか否かを判定する処理と、前記差が閾値を越える場合、前記最大値に対応する検索サーバに割り付けられた期間情報の一部を、前記最小値に対応する検索サーバへの割付に変更する処理と
を更に有することを特徴とするファイル検索システム。
【請求項３】
請求項２に記載のファイル検索システムにおいて、
割り付けを変更する一部の前記期間情報は、期間情報に対応するインデックスデータの使用領域が大きいものが優先的に選択される
ことを特徴とするファイル検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の検索サーバを用いて、大規模なファイル群の中から必要なファイルを検索するファイル検索システムに関する。
【背景技術】
【０００２】
今日、企業その他の組織では、日常業務で作成される各種の書類をデジタルデータの形式で様々なファイルサーバやストレージ等に蓄積する。情報のデジタル化の進展に伴い、企業その他の組織では多数の電子文書が扱われており、組織内に蓄積される電子文書のデータ量は爆発的に増大し続けている。組織内で蓄積された情報資産を効果的に活用するために注目を集めているのが、電子文書の高速な検索機能を提供するファイル検索システムである。
【０００３】
一般的なファイル検索システムは、ファイルサーバやストレージをクローリング（巡回）してファイルのインデックスデータ（索引データ）を作成し、高速な検索機能を実現する。これらインデックスデータのデータ量は、一般に元ファイルのデータ量に比例して増大する。このため、作成されたインデックスデータを複数の検索サーバに分散的に格納する仕組みが求められている。特許文献１には、入力データが発生した期間毎にインデックスデータを格納するデータベース（検索サーバ）を排他的に決定することにより、インデックスデータの分散を実現する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−３２５８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、各期間に対するデータベース（検索サーバ）の割り当てを分散するだけでは、データベース（検索サーバ）間でインデックスデータの使用領域に大きな偏りが発生するのを避け得ない。これは、各期間に属するインデックスデータのデータ量が均等でないことに一因がある。なお、検索インデックスの使用領域の偏りが検索サーバ間で大きいと、特定の検索サーバに負荷が集中し、システム全体の検索効率を低下させてしまう。また、ファイル検索システムを構成する検索サーバの台数に変更が生じた場合にも、同様の状況が発生する。
【０００６】
そこで、発明者らは、インデックスデータを格納する検索サーバと期間情報の割り当てを適応的に設定できる仕組みを提供する。
【課題を解決するための手段】
【０００７】
この目的のため、１つの発明では、期間情報と検索サーバの割り当てを新たに登録する際には、割り当て可能な検索サーバのうちで検索インデックスの使用領域が小さいものに新規の期間情報を割り当てる手法を提供する。
【０００８】
また、１つの発明では、検索インデックスの使用領域が最も大きい検索サーバと最も小さい検索サーバ間で使用領域の差が閾値以上の場合になった場合には、使用領域が最も大きい検索サーバに割り当てられている期間情報の一部を、使用領域が最も小さい検索サーバへの割り当てに変更する手法を提供する。
【発明の効果】
【０００９】
本発明によれば、ファイル検索システムを構成する複数の検索サーバ間におけるインデックスデータの使用領域を均一化でき、システム全体としての検索効率を高めることができる。
【図面の簡単な説明】
【００１０】
【図１】ファイル検索システムの実施形態例を示す図。
【図２】ディスパッチテーブルのデータ構造例を示す図。
【図３】インデックスデータの作成処理例を示すフローチャート。
【図４】検索サーバ間のデータ均一化処理例を示すフローチャート。
【図５】ディスパッチテーブルのデータ更新例を説明する図。
【図６】検索サーバの追加処理例を説明するフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて、本発明の実施の形態を説明する。なお、後述する装置構成や処理動作の内容は発明を説明するための一例であり、本発明は、後述する装置構成や処理動作に既知の技術を組み合わせた発明や後述する装置構成や処理動作の一部を既知の技術と置換した発明も包含する。
【００１２】
（システム構成）
図１は、実施の形態に係るファイル検索システムの概念構成例を示す。図１に示すファイル検索システムは、ファイルシステム群１１、ホストシステム１２、検索サーバ１３ａ、１３ｂ、１３ｎ、検索要求装置１４で構成されている。
【００１３】
ファイルシステム群１１は、例えば企業内の電子情報（ファイル）を保持するファイルサーバやストレージである。ホストシステム１２は、ファイルシステム群１１から電子情報を収集し、割り当て単位としての期間情報（例えば更新日）と検索サーバ１３ａ、１３ｂ、１３ｎの割り当てを管理するコンピュータシステムである。検索サーバ１３ａ、１３ｂ、１３ｎは、割り当てに従って送信された電子情報（ファイル）のインデックスデータの作成と、検索要求装置１４からの検索要求に応じた検索処理を実行するサーバである。検索要求装置１４は、例えば企業内の端末装置である。ファイルシステム群１１とホストシステム１２、ホストシステム１２と検索サーバ１３ａ、１３ｂ、１３ｎ、検索サーバ１３ａ、１３ｂ、１３ｎと検索要求装置１４はそれぞれネットワーク経由で接続されている。
【００１４】
ホストシステム１２は、ファイル収集部１２１と、ディスパッチテーブル１２２と、ファイル送信部１２３と、テーブル管理部１２４とで構成される。これらの処理機能は、入出力装置、記憶装置、演算装置その他で構成されるコンピュータ上で実行されるコンピュータプログラム及びデータ構造を通じて実現される。もっとも、これら構成の全部又は一部をハードウェアで構成することもできる。
【００１５】
ファイル収集部１２１は、ファイルシステム群１１に保持されている各電子情報（ファイル）の文書名、容量、コンテンツの内容、更新日等のファイル情報等を収集する機能を実現する。ディスパッチテーブル１２２は、電子情報（ファイル）が属する期間と検索サーバ１３ａ、１３ｂ、１３ｎとの割り当てを格納する。ファイル送信部１２３は、ファイル情報をディスパッチテーブル１２２に従って対応する検索サーバ１３ａ、１３ｂ、１３ｎに送信する機能を実現する。テーブル管理部１２４は、検索サーバ１３ａ、１３ｂ、１３ｎ間でインデックスデータの使用領域に偏りが生じないようにディスパッチテーブル１２２を適応的に更新する機能を実現する。具体的な処理動作の内容は後述する。
【００１６】
検索サーバ１３ａ、１３ｂ、１３ｎは、検索要求応答部１３１ａ、１３１ｂ、１３１ｎと、インデックス作成部１３２ａ、１３２ｂ、１３２ｎと、インデックスデータ１３３ａ、１３３ｂ、１３３ｎとで構成される。検索要求応答部１３１ａ、１３１ｂ、１３１ｎは、いずれも検索要求装置１４から受信した検索要求に基づいてインデックスデータ１３３ａ、１３３ｂ、１３３ｎを検索し、該当する情報を検索要求装置１４に応答する機能を実現する。インデックス作成部１３２ａ、１３２ｂ、１３２ｎは、定期的にクローリングされた入力ファイルの情報に基づいてインデックスデータ１３３ａ、１３３ｂ、１３３ｎを作成する機能を実現する。さらに、インデックス作成部１３２ａ、１３２ｂ、１３２ｎは、定期的にクローリングされた入力ファイルに対して更新を検知した場合には、インデックスデータ１３３ａ、１３３ｂ、１３３ｎを再作成する機能を実行する。なお、インデックス作成部１３２ａ、１３２ｂ、１３２ｎは、既知のインデックスデータ１３３ａ、１３３ｂ、１３３ｎが存在しないことを検出した場合、該当するインデックスデータ１３３ａ、１３３ｂ、１３３ｎを記憶領域から削除する機能も有している。これらの機能により、検索結果は、常に最新の状態に保持される。なお、新しく入力されたファイルのうちインデックスデータとして使用される情報には、文書名、容量、コンテンツ、更新日など様々な情報が含まれる。
【００１７】
図２に、ディスパッチテーブル１２２のデータ構造の一例を示す。この実施の形態の場合、ディスパッチテーブル１２２は、更新日２１と検索サーバ名２２で構成される。すなわち、この実施の形態では、割り当て単位としての期間に「更新日」を使用し、各更新日に属するファイルを割り当てる検索サーバ１３ａ、１３ｂ、１３ｎに対応する情報を一組として格納する。図２に示すように、更新日に属するファイルの割り当ては、複数存在する検索サーバ１３ａ、１３ｂ、１３ｎのいずれか一つに排他的に割り当てられる。このディスパッチテーブル１２２により、複数の検索サーバ１３ａ、１３ｂ、１３ｎへのインデックスデータの分散が実現される。
【００１８】
更新日２１には、各ファイルが有している最終更新日属性に対応付けられる更新日が格納される。検索サーバ名２２には、同じ更新日を有するファイルを格納する検索サーバを一意に特定するための情報、例えばホスト名やＩＰアドレスといった情報が登録される。ホストシステム１２のファイル送信部１２３は、このディスパッチテーブル１２２を参照してファイル情報を送信する検索サーバを決定する。
【００１９】
例えば図２の場合、ディスパッチテーブル１２２には、更新日「2009/08/01」に対応するサーバ名として「サーバＡ」が登録されている。従って、2009年8月1日に更新された全てのファイルは、ホストシステム１２を通じてサーバＡに送信される。また、2009年8月1日に更新された全てのファイルのインデックスデータが、検索サーバＡにおいて作成される。
【００２０】
このディスパッチテーブル１２２に対する新規レコードの登録は、テーブル管理部１２４が、各検索サーバ間でインデックスデータの使用領域（データ容量）が均一になるように決定される。図２は、この規則に従って、新規に登録される更新日「2009/08/05」がサーバＡに割り当てられる様子を表している。
【００２１】
（ファイル検索システムで実行される動作）
以下、ファイル検索システムで実行される処理動作の内容を説明する。
【００２２】
(1) 均一化動作１
図３に、インデックスデータ１３３ａ、１３３ｂ、１３３ｎを作成されるまでの処理動作を示す。まず、ホストシステム１２のファイル収集部１２１が、ファイルシステム群１１をクローリングし、入力ファイルの情報を収集する（ステップ３１）。ファイル収集部１２１は、入力ファイルの文書名、容量、コンテンツ、更新日等のファイル情報のうち更新日属性を取得し、ディスパッチテーブル１２２に登録されている更新日２１と照合する。
【００２３】
既存のディスパッチテーブル１２２の更新日２１のレコードに、取得された更新日が存在する場合（ステップ３２）、ファイル収集部１２１は同一レコードから検索サーバ名２２を取得する。取得された検索サーバ名２２は、ファイル収集部１２１からファイル送信部１２３に与えられる。ファイル送信部１２３は、ディスパッチテーブル１２２から取得された検索サーバ（例えばサーバＡ）に、入力ファイルの情報を送信する(ステップ３５)。この入力ファイルを受信した検索サーバ（例えばサーバＡ）のインデックス作成部は、受信した入力ファイルの情報に基づいてインデックスデータを作成する（ステップ３６）。
【００２４】
一方、既存のディスパッチテーブル１２２の更新日２１のレコードに、取得された更新日が存在しない場合（ステップ３３）、テーブル管理部１２４は、検索サーバ１３ａ、１３ｂ、１３ｎのそれぞれから使用領域のデータ量を測定し、使用領域が最も少ない検索サーバ名を取得する。この割り当ては、一般に、インデックスデータの使用領域が最大の検索サーバとインデックスデータの使用領域が最小の検索サーバの差を縮める方向に作用する。さらに、テーブル管理部１２４は、ディスパッチテーブル１２２にステップ３１で取得した入力ファイルの更新日とステップ３３で取得した検索サーバ名を新しいレコードに登録する（ステップ３４）。ディスパッチテーブル１２２に新しいレコードが登録されると、登録された検索サーバ名２２が、テーブル管理部１２４からファイル送信部１２３に与えられる。ファイル送信部１２３は、通知された検索サーバ（例えばサーバＢ）に、入力ファイルの情報を送信する(ステップ３５)。この入力ファイルを受信した検索サーバ（例えばサーバＢ）のインデックス作成部は、受信した入力ファイルの情報に基づいてインデックスデータを作成する（ステップ３６）。
【００２５】
ホストシステム１２は、ファイルシステム群１１に存在する全てのファイルに対してこれら一連の処理を実行する。この結果、検索サーバ１３ａ、１３ｂ、１３ｎには、ファイルシステム群１１のファイルにアクセスするためのインデックスデータが分散的に配置されることになる。
【００２６】
なお、ホストシステム１２は、定期的にファイルシステム群１１をクローリングして図３に示す一連の処理動作を実施することにより、各検索サーバ内のインデックスデータを常に最新の状態に維持する。
【００２７】
(2) 均一化動作２
図４に、更新日と検索サーバの割り当て関係を事後的に変更することにより、検索サーバ間でインデックスデータの使用領域の均一化を実現する処理動作を説明する。なお、図４に示す処理動作は、図３に示す処理動作の実行前に定期的に実施される。
【００２８】
まず、ホストシステム１２のテーブル管理部１２４は、各検索サーバ１３ａ、１３ｂ、１３ｎからインデックスデータ１３３ａ、１３３ｂ、１３３ｎの使用領域を取得する(ステップ４１)。次に、テーブル管理部１２４は、取得した検索サーバ１３ａ、１３ｂ、１３ｎのインデックスデータ１３３ａ、１３３ｂ、１３３ｎのうち使用領域が最大の検索サーバと使用領域が最小の検索サーバを取得する(ステップ４２)。
【００２９】
続いて、テーブル管理部１２４は、インデックスデータの使用領域が最大の検索サーバとインデックスデータの使用領域が最小の検索サーバのそれぞれの使用領域を比較する。このとき、テーブル管理部１２４は、２つの使用領域の差が予め指定した閾値よりも大きいか否かを判定する(ステップ４３)。
【００３０】
インデックスデータの使用領域の差が閾値よりも大きい場合、テーブル管理部１２４は、ディスパッチテーブル１２２に登録された複数のレコードの中からインデックスデータの使用領域が最大であると判定された検索サーバの検索サーバ名２２を含むレコードを一つ選択する。例えば該当レコードの各更新日に対応するインデックスデータのうちデータ量が最大であるレコードを一つ選択する。任意に一つのレコードを選択することも可能である。
【００３１】
テーブル管理部１２４は、このとき選択したレコードの検索サーバ名を、インデックスデータの使用領域が最小であった検索サーバ名に更新する（ステップ４４）。図５に、検索サーバ名の更新イメージを示す。図５の場合、更新日「2009/08/01」に属する入力ファイルの割り当てが「サーバＡ」から「サーバＣ」に変更されている。従って、図５の場合、サーバＡがインデックスデータの使用領域が最大の検索サーバであり、サーバＣがインデックスデータの使用領域が最小の検索サーバである。
【００３２】
この後、テーブル管理部１２４はファイル収集部１２１を通じてファイルシステム群１１のクローリングを実施する。この後、各検索サーバには、更新後のディスパッチテーブル１２２の設定に従って入力ファイルが送信される。
【００３３】
各検索サーバ１３ａ、１３ｂ、１３ｎは、新たな割り当て規則に従って送信された入力ファイルに基づいてインデックスデータを更新する（ステップ４５）。この検索サーバ１３ａ、１３ｂ、１３ｎにおけるインデックスデータの作成動作は、一般的なルーチン動作として実行される。
【００３４】
このインデックスデータの更新時、更新前の時点でインデックスデータの使用領域が最大であった検索サーバ（図５の場合は、サーバＡ）には、割り当て関係が変更された更新日２１に対応するファイルの入力が無い。このため、当該検索サーバ（図５の場合は、サーバＡ）では、入力が確認されなかった既知のファイルが存在しないものとして処理し、インデックスデータの作成対象から除外する。
【００３５】
一方、更新前の時点でインデックスデータの使用領域が最小であった検索サーバ（図５の場合は、サーバＣ）には、新しく指定された更新日を有するファイルが入力される。従って、当該検索サーバは、新しく入力のあったファイルも含めてインデックスデータを作成する。
【００３６】
図４に示す処理動作の実行により、更新前の時点でインデックスデータの使用領域が最大であった検索サーバについては使用領域が減少され、反対に更新前の時点でインデックスデータの使用領域が最小であった検索サーバについては使用領域が増加される。すなわち、インデックスデータの使用領域の最大値と最小値の差が縮小される。結果的に、各検索サーバ間でインデックスデータの使用領域が均一化される。
【００３７】
図４に示す処理動作の実行は、定期的に実行されるクローリング処理（図３）の実行に先行させることで、インデックスデータの使用領域の均一化効果を高めることができる。しかも、この図４に示す処理動作で必要とされる動作は、インデックスデータの使用領域が最大の検索サーバと最小の検索サーバ間での割り当てファイルの入れ替えだけであり、その他の検索サーバについては割り当てられるファイルの構成に変更が無い限り、インデックスデータの変更が不要である。このように、図４に示す処理動作は、検索サーバ１３ａ、１３ｂ、1３ｎの間でインデックスデータ全体の再構成を必要としない。このことは、インデックスデータの更新に伴うシステム全体の処理負荷が小さく済むことを意味する。この負荷の削減効果は、ファイル検索システムを構成する検索サーバの台数が多いほど大きくなる。
【００３８】
また、ファイル検索システムを構成する各検索サーバにインデックスデータをバランス良く分散することができるので、検索負荷も複数の検索サーバに均一に分散することができる。結果的に、ファイル検索システム全体として効率的かつ高速な検索処理が可能となる。
【００３９】
(3) 均一化動作３
図６に、ファイル検索システムに新たな検索サーバを追加する際の処理動作を示す。この場合、ホストシステム１２に、新しい検索サーバの検索サーバ名２２と接続情報が登録される(ステップ５１)。この登録により、ファイルシステム群１１の次回クローリング時（図３の場合だけでなく、図４に示す場合も含む。）、新たに追加された検索サーバが更新日に対する割り当て候補に追加される(ステップ５２)。追加直後は、この新たに追加された検索サーバにおけるインデックスデータの使用領域が一般に最小となる。従って、図３に示す処理動作の実行時にも図４に示す処理動作の実行時にも、新たな更新日に対する割り当て先も検索サーバ間における更新日の割り当て変更時にも、優先的に新たに追加された検索サーバにシステム内のインデックスデータが割り当てられる。
【００４０】
この結果、検索サーバが追加された場合でも、インデックスデータ全体の再構成を行うことなく、各検索サーバ間の使用領域を平均化することが可能になる。
【００４１】
（まとめ）
前述したように、実施の形態に係るファイル検索システムは、複数の検索サーバ１３ａ、１３ｂ、１３ｎを使用して、ファイルシステム群１１に格納された全ファイルのインデックスデータを分散的に管理する。このインデックデータの分散を実現する仕組みとして、ホストシステム１２内に、更新日と検索サーバとの対応関係を一意に特定するデータベース（ディスパッチテーブル１２２）を用意する。
【００４２】
また、ホストシステム１２に、新たな更新日の登録時に、ファイル検索システムを構成する各検索サーバ１３ａ、１３ｂ、１３ｎのインデックスデータの使用領域を取得し、使用領域が最も少ない検索サーバを対応付ける仕組みを採用する。これにより、検索サーバ間におけるインデックスデータの使用領域のばらつき範囲を縮小する。すなわち、複数の検索サーバ間でインデックスデータの使用領域の均一化を実現する。
【００４３】
また、ホストシステム１２に、検索サーバ間におけるインデックスデータの使用領域の最大値と最小値の差を監視する機能を採用する。そして、差が閾値を越える場合には、インデックスデータの使用領域が最大の検索サーバに割り当てられている更新日の一部（一つに限らず、同時に複数でも良い。）の割り当てをインデックスデータの使用領域が最小の検索サーバに変更する。この仕組みの採用により、ファイル検索システムを構成する検索サーバ間におけるインデックスデータの使用領域のばらつき範囲を一定範囲内に収束させることができる。すなわち、複数の検索サーバ間でインデックスデータの使用領域の均一化を実現する。
【００４４】
これらの仕組みの採用により、検索サーバの台数が変更しない場合だけでなく、検索サーバの台数が増減する場合でも、ファイル検索システム全体としてインデックスデータの配置の分散化又は均一化を実現できる。また、分散化又は均一化は、ファイルシ検索システムを構成する一部の検索サーバのインデックスデータの更新だけで実現でき、システム全体でインデックスデータを再構成する必要がない。すなわち、ファイル検索システムを構成する検索サーバ間でインデックスデータの使用領域を均一化できるだけでなく、均一化に要する処理負荷も削減することができる。結果的に、インデックスデータの更新負荷が小さく、システム全体としての検索効率も高いファイル検索システムを実現できる。
【符号の説明】
【００４５】
１１…ファイルシステム群、１２…ホストシステム、１２１…ファイル収集部、１２２…ディスパッチテーブル、１２３…ファイル送信部、１２４…テーブル管理部、１３ａ、１３ｂ、１３ｎ…検索サーバ、１３１ａ、１３１ｂ、１３２ｎ…検索要求応答部、１３２ａ、１３２ｂ、１３２ｎ…インデックス作成部、１３３ａ、１３３ｂ、１３３ｎ…インデックスデータ、１４…検索要求装置、２１…更新日、２２…検索サーバ名。
【図１】
2011070257.tif 000003
【図２】
2011070257.tif 000004
【図３】
2011070257.tif 000005
【図４】
2011070257.tif 000006
【図５】
2011070257.tif 000007
【図６】
2011070257.tif 000008