(57)【要約】【課題】  高速な並列検索処理が可能な検索装置を得る。【解決手段】  検索対象データを取得するデータ入力部１２２と、検索対象データに対し、照合処理を行うデータ照合部１２３と、照合処理によって得られたヒット件数が最大取り出し件数以下の間は、ヒットデータ一覧を生成する照合結果生成部１２４と、ヒット件数とヒットデータ一覧をマスタコンピュータ１１に送信する照合結果送信部１２５を有するスレーブコンピュータ１２ａ〜１２ｃと、スレーブコンピュータ１２ａ〜１２ｃよりヒット件数とヒットデータ一覧を受信する照合結果受信部１１１と、スレーブコンピュータ１２ａ〜１２ｃから受信したヒット件数の合計が最大取り出し件数以下であれば、受信した全ヒットデータ一覧を生成する検索結果生成部１１２と、合計と全ヒットデータ一覧を出力する検索結果出力部１１３を有するマスタコンピュータ１１とを備える。【選択図】        図１
2006031624.tif 000002
【特許請求の範囲】
【請求項１】
検索対象データを取得するデータ入力部と、
上記検索対象データに対し、与えられた検索条件を用いて照合処理を行うデータ照合部と、
上記照合処理によって得られたヒット件数に基づいてヒットデータ一覧を生成するか否かを決定し、決定に従って上記ヒットデータ一覧を生成する照合結果生成部と、
上記ヒット件数と上記ヒットデータ一覧をマスタコンピュータに送信する照合結果送信部を有する１台以上のスレーブコンピュータと、
各スレーブコンピュータより上記ヒット件数と上記ヒットデータ一覧を受信する照合結果受信部と、
各スレーブコンピュータから受信したヒット件数の合計件数がある閾値以下であれば、各スレーブコンピュータから受信した全ヒットデータ一覧を生成する検索結果生成部と、
上記合計件数と上記全ヒットデータ一覧を出力する検索結果出力部を有するマスタコンピュータとを備えた検索装置。
【請求項２】
上記照合結果生成部は、ヒット件数がある閾値以下の間は、ヒットデータ一覧を生成することを特徴とする請求項１記載の検索装置。
【請求項３】
上記照合結果生成部は、ヒット件数を利用して最終的な予測ヒット件数を算出し、上記予測ヒット件数がある閾値以下の間は、ヒットデータ一覧を生成することを特徴とする請求項１記載の検索装置。
【請求項４】
上記データ入力部は、あるデータ量単位で検索対象データを取得し、
上記データ照合部による照合処理と、上記照合結果生成部によるヒット件数に応じたヒットデータ一覧の生成と、上記照合結果送信部によるヒット件数とヒットデータ一覧の上記マスタコンピュータへの送信を、上記データ量単位の検索対象データ毎に繰り返し行うことを特徴とする請求項１から請求項３のうちのいずれか１項記載の検索装置。
【請求項５】
上記検索結果生成部は、スレーブコンピュータから受信するヒット件数を逐次集計して得られる合計件数がある閾値を超えた時点で、各スレーブコンピュータに対してヒットデータ一覧が不要である旨を通知し、
上記照合結果生成部は、上記通知を受けた場合には、それ以降ヒットデータ一覧を生成しないことを特徴とする請求項１から請求項４のうちのいずれか１項記載の検索装置。
【請求項６】
上記データ入力部は、上記照合結果生成部においてヒットデータ一覧を生成しないと決定された場合には、それ以降、検索対象データのうちヒット件数の特定に必要なデータ項目のみを取得することを特徴とする請求項１から請求項５のうちのいずれか１項記載の検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、検索装置に関するものである。
【背景技術】
【０００２】
昨今、文書や画像など様々なコンテンツがデジタルデータ化され、データベースに蓄積されつつある。これらの膨大な蓄積データの中から目的のデータを抽出する手段として、検索エンジンなどによる検索サービスが用いられる。検索サービスでは、対話的な検索機能と共に、大量データに対する高速な検索性能が要求される。
これを実現する手段として並列検索装置がある。並列検索装置による処理方式では、１つのデータベースを複数のコンピュータに分割して登録し、個々のコンピュータ（以下、スレーブコンピュータと記す。）で並列に検索して得られる部分的な検索結果を１台のコンピュータ（以下、マスタコンピュータと記す。）が取り纏め、最終的な検索結果を出力する。
【０００３】
例えば特許文献１に開示された従来の並列データ検索処理装置では、検索端末が、検索処理または検索結果の表示処理を要求すると、検索コーディネータ（マスタコンピュータに相当）は、その検索要求または表示処理要求を分析して、処理を依頼する検索処理装置（スレーブコンピュータに相当）を決定し、検索要求または表示処理要求を出す。要求を受けた検索処理装置は、各々に割り当てられている分割データベースに対して検索等の処理を行い、処理結果を生成する。検索コーディネータは、各検索処理装置から処理結果を受信し、それらを取りまとめて検索端末に提供する。
また、非特許文献１には、検索結果のヒット件数が所定の最大取り出し件数以下の場合にだけヒット件数とヒットした対象データの一覧を表示し、ヒット件数が最大取り出し件数を超える場合にはヒット件数だけを表示する方法が開示されている。
【０００４】
しかし、並列検索装置では、スレーブコンピュータによる部分的な検索結果はネットワークなどの通信回線を介してマスタコンピュータへ転送されるため、スレーブコンピュータで得られたヒット数が多くなると、マスタコンピュータへ転送されるデータ量も多くなり、通信経路がボトルネックとなって検索性能が低下するという問題があった。
このような問題を解決するため、上述の特許文献１に開示された並列データ検索処理装置では、検索処理においては通信経路を介したデータ転送量が最少となるように、ヒット件数とヒット対象データを特定する必要最小限のデータ（例えばタイトルなど）に絞ってデータ転送している。
【０００５】
【特許文献１】特開平１０−１５４１６０号公報
【非特許文献１】「ＰＡＴＯＬＩＳフルテキスト検索サービス」、ＰＡＴＯＬＩＳニュース、財団法人  日本特許情報機構、１９９９年７月、Ｎｏ．２２５
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に開示された並列データ検索処理装置では、検索結果の表示処理時には、得られた検索結果のヒット数が多い場合、転送するデータ量も多くなり、通信経路がボトルネックとなって検索性能が低下するという問題がある。
さらに、非特許文献１に開示された方法では、ヒット件数が最大取り出し件数を超えた段階ではマスタコンピュータにおいてヒットデータ一覧は表示されなくなるため、ヒット対象を特定するデータやヒットデータ一覧の情報をマスタコンピュータへ転送する必要はなくなるが、従来の技術においては無駄なデータ転送が行われているという問題があった。
【０００７】
この発明は上記のような課題を解決するためになされたもので、マスタコンピュータとスレーブコンピュータ間でのデータ転送を効率化し、高速な検索処理が可能な検索装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る検索装置は、検索対象データを取得するデータ入力部と、検索対象データに対し、与えられた検索条件を用いて照合処理を行うデータ照合部と、照合処理によって得られたヒット件数に基づいてヒットデータ一覧を生成するか否かを決定し、決定に従ってヒットデータ一覧を生成する照合結果生成部と、ヒット件数とヒットデータ一覧をマスタコンピュータに送信する照合結果送信部を有する１台以上のスレーブコンピュータと、各スレーブコンピュータよりヒット件数とヒットデータ一覧を受信する照合結果受信部と、各スレーブコンピュータから受信したヒット件数の合計件数がある閾値以下であれば、各スレーブコンピュータから受信した全ヒットデータ一覧を生成する検索結果生成部と、合計件数と全ヒットデータ一覧を出力する検索結果出力部を有するマスタコンピュータとを備えたものである。
【発明の効果】
【０００９】
この発明によれば、スレーブコンピュータが、照合処理によって得られたヒット件数に基づいて、マスタコンピュータにヒットデータ一覧を送信するか否かを判断するようにしたので、マスタコンピュータとスレーブコンピュータ間でのデータ転送を効率化し、高速な検索処理を可能とすることができる。
【発明を実施するための最良の形態】
【００１０】
以下、この発明の実施の様々な形態を説明する。
実施の形態１．
図１は、この発明の実施の形態１による、検索システム１００の構成を示すブロック図である。図に示すように、検索システム１００は、検索装置１０と検索端末装置２０を備え、検索装置１０と検索端末装置２０はネットワーク３０を介して接続されている。
検索装置１０は、マスタコンピュータ１１、スレーブコンピュータ１２ａ〜１２ｃ、及びマスタコンピュータ１１とスレーブコンピュータ１２ａ〜１２ｃを接続するＬＡＮスイッチ１３を備えている。
【００１１】
図２は、この発明の実施の形態１によるスレーブコンピュータ１２ａ〜１２ｃの構成を示すブロック図である。図に示すように、スレーブコンピュータ１２ａ〜１２ｃは、記憶装置１２１、データ入力部１２２、データ照合部１２３、照合結果生成部１２４、及び照合結果送信部１２５を備えている。データ入力部１２２、データ照合部１２３、照合結果生成部１２４、及び照合結果送信部１２５は、スレーブコンピュータ１２ａ〜１２ｃのプロセッサを動作させるプログラムのモジュールを表しており、これらは実際には、一体としてスレーブコンピュータ１２ａ〜１２ｃのプロセッサを構成する。
記憶装置１２１は、スレーブコンピュータ１２ａ〜１２ｃのメモリ、あるいはスレーブコンピュータ１２ａ〜１２ｃと接続された外部の記憶装置等である。各スレーブコンピュータ１２ａ〜１２ｃの記憶装置１２１には、検索対象データが分割して格納されている。
また、図３は、実施の形態１によるマスタコンピュータ１１の構成を示すブロック図である。図に示すように、マスタコンピュータ１１は、照合結果受信部１１１、検索結果生成部１１２、及び検索結果出力部１１３を備えている。照合結果受信部１１１、検索結果生成部１１２、及び検索結果出力部１１３は、マスタコンピュータ１１のプロセッサを動作させるプログラムのモジュールを表しており、これらは実際には、一体としてマスタコンピュータ１１のプロセッサを構成する。
【００１２】
次に動作について説明する。
検索装置１０のマスタコンピュータ１１は、検索端末装置２０から検索問い合わせが通知されると、問い合わせ内容と検索結果の最大取り出し件数Ｍ（ある閾値）をＬＡＮスイッチ１３を介してスレーブコンピュータ１２ａ〜１２ｃへ通知する。ここで、マスタコンピュータ１１は、検索端末装置２０からの問い合わせ内容を解析し、スレーブコンピュータ１２ａ〜１２ｃへは、検索処理の実行に必要な情報に変換された検索条件が通知される。最大取り出し件数Ｍは、マスタコンピュータ１１が出力する検索結果の最大表示件数を表す。
【００１３】
スレーブコンピュータ１２ａ〜１２ｃは、マスタコンピュータ１１から検索条件及び最大取り出し件数Ｍを受信すると、検索処理を開始する。図４は、実施の形態１によるスレーブコンピュータ１２ａ〜１２ｃの動作のフローチャートである。
まず、スレーブコンピュータ１２ａ〜１２ｃは、スレーブコンピュータ内の全ヒット件数Ｋのカウンタを初期化する（ステップＳＴ１００）。次に、データ入力部１２２は、記憶装置１２１から１つ以上の照合単位を含む一定量（あるデータ量単位）の検索対象データを取得する（ステップＳＴ１０１）。ここで照合単位とは、例えばリレーショナル型データベースの１レコードを表しており、照合処理を行うデータの単位を示している。この時、記憶装置１２１内のデータが終了したと判定された場合には、マスタコンピュータ１１への終了通知を行い（ステップＳＴ１０２、ステップＳＴ１１２）、スレーブコンピュータ１２ａ〜１２ｃの処理を終了する。データ終了でない場合には、取得した検索対象データに対するヒット件数ＮＳのカウンタを初期化する（ステップＳＴ１０３）。
【００１４】
次に、データ照合部１２３は、取得した検索対象データに含まれる照合単位に対して、マスタコンピュータ１１から通知された検索条件による照合処理を実行する（ステップＳＴ１０４）。照合処理の結果、検索条件にヒットした場合には、ヒット件数ＮＳのカウンタに１を加算し（ステップＳＴ１０５、ステップＳＴ１０６）、全ヒット件数Ｋのカウンタに１を加算する（ステップＳＴ１０７）。ステップＳＴ１０５で検索条件にヒットしない場合には、ステップＳＴ１１０へ進む。
【００１５】
次に、照合結果生成部１２４は、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍ以下かどうかを判定する（ステップＳＴ１０８）。ここで、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍ以下である場合、照合結果生成部１２４は、ヒットした検索対象データの一覧（以下、ヒットデータ一覧と記す）を生成する（ステップＳＴ１０９）。全ヒット件数Ｋのカウンタが最大取り出し件数Ｍを超えている場合には、ヒットデータ一覧は生成せず、ステップＳＴ１１０へ進む。
図５は、検索装置１０に与えられる検索問い合わせ内容の例であり、図６は、この検索問い合わせに対して照合結果生成部１２４で生成されるヒットデータ一覧の例である。
図５に示す検索問い合わせは、検索対象データＴａｂｌｅに対して、住所＝”神奈川”の検索条件を満たす文書ＩＤとその著者を示す名前を出力するためのものである。この検索問い合わせに対して照合結果生成部１２４は、図６に示すように、検索条件を満たす照合単位（レコード）の文書ＩＤ、名前（著者名）の一覧を生成する。ここでは、Ｌ１、Ｌ２、Ｌ３の３件が検索条件を満たしていることになる。
【００１６】
次に、照合結果送信部１２５は、次の照合単位があるか否かを判定する（ステップＳＴ１１０）。次の照合単位がある場合には、ステップＳＴ１０４に戻り、その照合単位に対して検索条件による照合処理を実行する。次の照合単位がない場合には、照合結果送信部１２５は、照合結果をマスタコンピュータ１１に送信する（ステップＳＴ１１１）。
照合結果にはヒット件数ＮＳとステップＳＴ１０９で生成されたヒットデータ一覧が含まれるが、上述したように、ヒットデータ一覧については、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍ以下である場合にのみ作成され、その場合にのみマスタコンピュータ１１に送信されることになる。全ヒット件数Ｋのカウンタが最大取り出し件数Ｍを超えている場合にはヒット件数ＮＳのみが送信される。
次に、ステップＳＴ１０１へ戻り、記憶装置１２１から検索対象データが読み出される。ステップＳＴ１０２でデータ終了と判定されるまで、処理が続けられる。
このように、スレーブコンピュータ１２ａ〜１２ｃは、記憶装置１２１内の検索対象データが終了するまで照合処理を複数回に分けて行い、その度に照合結果をマスタコンピュータ１１に送信するという処理を繰り返す（ステップＳＴ１０１〜ステップＳＴ１１１）。
【００１７】
図７は、実施の形態１による、マスタコンピュータ１１の動作のフローチャートである。
マスタコンピュータ１１は、マスタコンピュータ１１に蓄積された全ヒット件数Ｎのカウンタを初期化する（ステップＳＴ２００）。次に、照合結果受信部１１１は、図４のステップＳＴ１１１でスレーブコンピュータ１２ａ〜１２ｃの照合結果送信部１２５から送信された照合結果を受信する（ステップＳＴ２０１）。上述したように、照合結果には、ヒット件数ＮＳのみが含まれる場合と、ヒット件数ＮＳとヒットデータ一覧が含まれる場合がある。照合結果受信部１１１は、受信したのが終了通知であるか否かを判定する（ステップＳＴ２０２）。
ステップＳＴ２０２で終了通知ではないと判定された場合には、全ヒット件数Ｎのカウンタに、通知されたヒット件数ＮＳを加算する（ステップＳＴ２０３）。次に、検索結果生成部１１２は、全ヒット件数Ｎのカウンタが最大取り出し件数Ｍ以下かどうかを判定する（ステップＳＴ２０４）。全ヒット件数Ｎのカウンタが最大取り出し件数Ｍ以下である場合、ヒットデータ一覧を生成する（ステップＳＴ２０５）。全ヒット件数Ｎのカウンタが最大取り出し件数Ｍを超えている場合にはヒットデータ一覧は生成しない。次に、ステップＳＴ２０１へ戻り、スレーブコンピュータ１２ａ〜１２ｃから送信される次の照合結果に対して同様に処理を繰り返す。
【００１８】
ステップＳＴ２０２で終了通知であると判断された場合には、ステップＳＴ２０６へ進み、すべてのスレーブコンピュータ１２ａ〜１２ｃから終了通知を受けているかどうか判定する。すべてのスレーブコンピュータ１２ａ〜１２ｃから終了通知を受けていない場合にはステップＳＴ２０１へ進み、処理を繰り返す。ステップＳＴ２０６で、すべてのスレーブコンピュータ１２ａ〜１２ｃから終了通知を受けていると判断された場合には、検索結果出力部１１３は、検索結果生成部１１２で作成されたヒットデータ一覧と全ヒット件数Ｎを検索結果として出力する（ステップＳＴ２０７）。
【００１９】
以上のように、実施の形態１によれば、スレーブコンピュータ１２ａ〜１２ｃは、マスタコンピュータ１１への照合結果の送信を複数回に分けて行うと共に、全ヒット件数カウンタＫが最大取り出し件数Ｍを超えたら、それ以降はヒット件数ＮＳのみを送信し、ヒットデータ一覧は送信しないようにしたので、マスタコンピュータ１１へのデータ転送量を少なく抑えることが可能となり、データ転送によるボトルネックを解消し、検索処理を高速化することができる。
【００２０】
実施の形態２．
実施の形態１では、スレーブコンピュータ１２ａ〜１２ｃからマスタコンピュータ１１へ送信する照合結果にヒットデータ一覧を含めるか否かの判断をスレーブコンピュータ１２ａ〜１２ｃ側で行った。
しかし、スレーブコンピュータ１２ａ〜１２ｃの全ヒット件数Ｋが最大取り出し件数Ｍを超えていなくても、マスタコンピュータ１１の全ヒット件数Ｎが最大取り出し件数Ｍを超えている場合には、マスタコンピュータ１１でヒットデータ一覧が生成されないため、スレーブコンピュータ１２ａ〜１２ｃからヒットデータ一覧を送信しても転送データが無駄になってしまう。
そこで、実施の形態２では、マスタコンピュータ１１からスレーブコンピュータ１２ａ〜１２ｃに対して、ヒットデータ一覧の送信が必要か否かを通知する。
【００２１】
実施の形態２による検索装置１０の動作について説明する。なお、実施の形態２による検索システム１００及び検索装置１０の構成は、図１〜図３に示すものと同様である。
図８は、この発明の実施の形態２による、スレーブコンピュータ１２ａ〜１２ｃの動作のフローチャートである。
スレーブコンピュータ１２ａ〜１２ｃは、各スレーブコンピュータ内の全ヒット件数Ｋのカウンタを初期化する（ステップＳＴ１００）。次に、データ入力部１２２は、記憶装置１２１から１つ以上の照合単位を含む一定量の検索対象データを取得する（ステップＳＴ１０１）。ここで記憶装置１２１内のデータ終了と判定された場合には、マスタコンピュータ１１への終了通知を行い（ステップＳＴ１０２、ステップＳＴ１１２）、スレーブコンピュータ１２ａ〜１２ｃの処理を終了する。データ終了でない場合には、取得した検索対象データに対するヒット件数ＮＳのカウンタを初期化する（ステップＳＴ１０３）。
次に、データ照合部１２３は、取得した検索対象データに含まれる照合単位に対して、マスタコンピュータ１１から通知された検索条件による照合処理を実行する（ステップＳＴ１０４）。照合処理の結果、検索条件にヒットした場合には、ヒット件数ＮＳのカウンタに１を加算し（ステップＳＴ１０５、ステップＳＴ１０６）、全ヒット件数Ｋのカウンタに１を加算する（ステップＳＴ１０７）。ステップＳＴ１０５で検索条件にヒットしない場合には、ステップＳＴ１１０へ進む。
【００２２】
次に、照合結果生成部１２４は、マスタコンピュータ１１からヒットデータ一覧の送信が不要であることを示す通知（ヒットデータ一覧不要通知）を受信しているか否かを確認する（ステップＳＴ１１３）。ヒットデータ一覧不要通知を受けている場合、ステップＳＴ１１０へ進む。ヒットデータ一覧不要通知を受けていない場合には、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍ以下かどうかを判定する（ステップＳＴ１０８）。ここで、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍ以下である場合、照合結果生成部１２４は、ヒットデータ一覧を生成する（ステップＳＴ１０９）。全ヒット件数Ｋのカウンタが最大取り出し件数Ｍを超えている場合には、ヒットデータ一覧は生成せず、ステップＳＴ１１０へ進む。
ステップＳＴ１１０で照合結果送信部１２５は、次の照合単位があるか否かを判定する。次の照合単位がある場合には、ステップＳＴ１０４に戻り、その照合単位に対して検索条件による照合処理を実行する。次の照合単位がない場合には、照合結果送信部１２５は、照合結果をマスタコンピュータ１１に送信する（ステップＳＴ１１１）。
次に、ステップＳＴ１０１へ戻り、検索対象データが読み出される。ステップＳＴ１０２でデータ終了と判定されるまで、処理が続けられる
【００２３】
このように、スレーブコンピュータ１２ａ〜１２ｃは、検索対象データが終了するまで照合処理を複数回に分けて行い、その度に照合結果をマスタコンピュータ１１に送信するという処理を繰り返す（ステップＳＴ１０１〜ステップＳＴ１１１）。
また、照合結果送信部１２５がマスタコンピュータ１１に送信する照合結果には、ヒット件数ＮＳとステップＳＴ１０９で生成されたヒットデータ一覧が含まれるが、上述したように、ヒットデータ一覧については、マスタコンピュータ１１からのヒットデータ一覧不要通知が無く、かつ、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍ以下である場合にのみ作成され、その場合にのみマスタコンピュータ１１に送信されることになる。マスタコンピュータ１１からヒットデータ一覧不要通知を受信している場合、または、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍを超えている場合にはヒット件数ＮＳのみが送信される。
【００２４】
図９は、実施の形態２による、マスタコンピュータ１１の動作のフローチャートである。
マスタコンピュータ１１は、マスタコンピュータ１１に蓄積された全ヒット件数Ｎのカウンタを初期化する（ステップＳＴ２００）。次に、照合結果受信部１１１は、図４のステップＳＴ１１１でスレーブコンピュータ１２ａ〜１２ｃの照合結果送信部１２５から送信された照合結果を受信する（ステップＳＴ２０１）。上述したように、照合結果には、ヒット件数ＮＳのみが含まれる場合と、ヒット件数ＮＳとヒットデータ一覧が含まれる場合がある。照合結果受信部１１１は、受信したのが終了通知であるか否かを判定する（ステップＳＴ２０２）。
ステップＳＴ２０２で終了通知ではないと判定された場合には、全ヒット件数Ｎのカウンタに、通知されたヒット件数ＮＳを加算する（ステップＳＴ２０３）。次に、検索結果生成部１１２は、全ヒット件数Ｎのカウンタが最大取り出し件数Ｍ以下かどうかを判定する（ステップＳＴ２０４）。全ヒット件数Ｎのカウンタが最大取り出し件数Ｍ以下である場合、ヒットデータ一覧を生成する。
全ヒット件数Ｎのカウンタが最大取り出し件数Ｍを超えている場合には、ヒットデータ一覧は生成せず、すべてのスレーブコンピュータ１２ａ〜１２ｃに対してヒットデータ一覧の送信が不要である旨の通知（ヒットデータ一覧不要通知）をする（ステップＳＴ２０８）。次に、ステップＳＴ２０１へ戻り、スレーブコンピュータ１２ａ〜１２ｃから送信される次の照合結果に対して同様に処理を繰り返す。
【００２５】
ステップＳＴ２０２で終了通知であると判断された場合には、ステップＳＴ２０６へ進み、すべてのスレーブコンピュータ１２ａ〜１２ｃから終了通知を受けているかどうか判定する。すべてのスレーブコンピュータ１２ａ〜１２ｃから終了通知を受けていない場合にはステップＳＴ２０１へ進み、処理を繰り返す。ステップＳＴ２０６で、すべてのスレーブコンピュータ１２ａ〜１２ｃから終了通知を受けていると判断された場合には、検索結果出力部１１３は、検索結果生成部１１２で作成されたヒットデータ一覧と全ヒット件数Ｎを検索結果として出力する（ステップＳＴ２０７）。
【００２６】
以上のように、実施の形態２によれば、マスタコンピュータ１１は、ヒット件数Ｎが最大取り出し件数Ｍを超えた時点で、スレーブコンピュータ１２ａ〜１２ｃに対してヒットデータ一覧不要通知をし、スレーブコンピュータ１２ａ〜１２ｃは、ヒットデータ一覧不要通知を受信したら、マスタコンピュータ１１へのヒットデータ一覧の送信を行わない。すなわち、スレーブコンピュータ１２ａ〜１２ｃは、実施の形態１のように、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍを超えた場合のみでなく、マスタコンピュータ１１からヒットデータ一覧不要通知を受信した場合にもマスタコンピュータ１１へのヒットデータ一覧の送信を行わないようにした。これにより、データ転送量を実施の形態１よりもさらに削減することが可能となり、検索処理をさらに高速化することができる。
【００２７】
実施の形態３．
実施の形態１及び実施の形態２は、スレーブコンピュータ１２ａ〜１２ｃからマスタコンピュータ１１へのデータ転送量を削減するための手段を備えている。実施の形態３では、スレーブコンピュータ１２ａ〜１２ｃ内での処理を効率化する。具体的には、記憶装置１２１に対する入出力処理の効率を高める。
【００２８】
実施の形態３による検索装置１０の動作について説明する。なお、実施の形態３による検索システム１００及び検索装置１０の構成は図１〜図３に示すものと同様である。また、実施の形態３は、スレーブコンピュータ１２ａ〜１２ｃのデータ入力部１２２の動作に特徴があり、その他の照合処理や照合結果生成、送信処理、またマスタコンピュータ１１の処理については実施の形態１と同様である。
【００２９】
図１０は、記憶装置１２１に格納されている検索対象データの一例を示す図である。図に示すように、記憶装置１２１は、列項目が文書ＩＤ、名前、住所、性別からなる表形式のデータを格納している。
図１１は、実施の形態３による、データ入力部１２２の動作のフローチャートであり、図４に示すステップＳＴ１０１の処理に該当する。
まず、データ入力部１２２は、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍ以下であるか否かを確認する（ステップＳＴ１０１１）。
全ヒット件数Ｋのカウンタが最大取り出し件数Ｍ以下である場合には、スレーブコンピュータ１２ａ〜１２ｃはヒットデータ一覧を作成する必要があるので、検索問い合わせの実行に必要なすべての項目を記憶装置１２１から取得する（ステップＳＴ１０１２）。例えば、図６に示す検索問い合わせを実行する場合を例に説明すると、文書ＩＤ、名前、住所の列項目を取得する必要がある。
一方、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍを超えている場合には、スレーブコンピュータ１２ａ〜１２ｃはヒット件数ＮＳのみをマスタコンピュータ１１に通知すればよいので、ヒット件数の算出に必要な項目、すなわち検索問い合わせに示された検索条件の判定に必要な項目のみを記憶装置１２１から取得する（ステップＳＴ１０１３）。例えば、図６に示す検索問い合わせの例では、検索条件の判定に必要な列項目は住所であり、この列項目だけを取得すればよい。
【００３０】
なお、全ヒット件数Ｋが最大取り出し件数Ｍ以下である場合と全ヒット件数Ｋが最大取り出し件数Ｍを超えている場合とで記憶装置１２１から取得するデータの形式が異なるため、データ照合部１２３は、図４に示すステップＳＴ１０４において、この違いに従って照合処理を実行する。
【００３１】
以上のように、実施の形態３によれば、全ヒット件数Ｋのカウンタが最大取り出し件数Ｍを超えたら、データ入力部１２２は、記憶装置１２１からヒット件数の算出に必要な検索対象データだけを取得するようにしたため、記憶装置１２１とデータ入力部１２２の間でやり取りされるデータ量を絞り込むことが可能となり、記憶装置１２１からのデータ読み出し効率が向上し、検索装置１０全体の処理のスループットの向上を図ることができる。
【００３２】
なお、検索対象データの格納先がスレーブコンピュータ１２ａ〜１２ｃの記憶装置１２１ではなく、例えばネットワーク上のファイルサーバやＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に格納されたデータであっても、同様にデータ入力部１２２で取得するデータを絞り込むことが可能であり、検索性能の向上効果が期待できる。
図１２は、このような検索システム２００の構成例を示すブロック図である。図１と同一の符号は同一の構成要素を表している。検索装置１０のスレーブコンピュータ１２ａ〜１２ｃは、ネットワーク４０に接続されている。記憶装置４１ａ，４１ｂは、ネットワーク４０に接続されたファイルサーバ等の記憶装置であり、検索対象データを格納している。
なお、検索システム２００に、実施の形態１及び実施の形態２の検索装置１０を適用することも可能である。
【００３３】
また、実施の形態３は実施の形態２にも適用できる。この場合には、ステップＳＴ１０１１で判断する条件として、マスタコンピュータ１１からヒットデータ一覧不要通知を受信したかどうかを追加する。
なお、検索装置１０の処理のスループットの向上を図るには、スレーブコンピュータ１２ａ〜１２ｃのＣＰＵの処理効率を高めることも有効であるが、この点については、スレーブコンピュータの台数を増やすことにより対応が可能である。
【００３４】
実施の形態４．
実施の形態４では、スレーブコンピュータ１２ａ〜１２ｃは、逐次集計される全ヒット件数Ｋに基づいて予測ヒット件数Ｐを算出し、予測ヒット件数Ｐを用いてマスタコンピュータ１１にヒットデータ一覧を送信するか否かを判断する。
【００３５】
実施の形態４による検索装置１０の動作について説明する。なお、実施の形態４による検索システム１００及び検索装置１０の構成は図１〜図３に示すものと同様である。また、マスタコンピュータ１１の動作のフローチャートは、図９に示す実施の形態２と同様である。
図１３は、この発明の実施の形態４による、スレーブコンピュータ１２ａ〜１２ｃの動作のフローチャートである。図８と同一の符号で示されたステップは、実施の形態２と同様なので説明を省略する。
照合結果生成部１２４は、ステップＳＴ１１３でマスタコンピュータ１１からヒットデータ一覧不要通知を受信していないことを確認すると、予測ヒット件数Ｐを算出する（ステップＳＴ１１４）。
ここで、予測ヒット件数Ｐの算出方法の例について説明する。まず、スレーブコンピュータ１２ａ〜１２ｃが実行した照合処理の回数Ｑと全ヒット件数Ｋを用いて、検索ヒット率Ｒを以下のように定義する。
Ｒ＝Ｋ÷Ｑ                    （１）
次に、検索対象データの全件数をＣとすると、予測ヒット件数Ｐは以下の式で算出することができる。
Ｐ＝Ｒ×Ｃ                    （２）
なお、予測ヒット件数Ｐの算出には他の方法を用いてもよい。
【００３６】
続くステップＳＴ１１５では、予測ヒット件数Ｐと最大取り出し件数Ｍ、及び全ヒット件数Ｋとヒット件数閾値Ｎｔの比較を行い、予測ヒット件数Ｐが最大取り出し件数Ｍ以下か、或いは、全ヒット件数Ｋがヒット件数閾値Ｎｔ以下であれば、ヒットデータ一覧を生成する。
ここで、ヒット件数閾値Ｎｔは、例えば以下の式で定義することができる。ただし、Ｎｓｌａｖｅはスレーブコンピュータの台数とし、ここでは、Ｎｓｌａｖｅ＝３である。
Ｎｔ＝Ｐ÷Ｎｓｌａｖｅ        （３）
【００３７】
なお、予測ヒット件数Ｐの算出については、照合回数Ｑが少ない段階では統計的精度に大きなゆらぎが発生することが考えられる。よって、実際上は、照合回数Ｑが予め設定した値を超えるまでは予測ヒット件数Ｐの算出を行わないようにするとよい。照合回数Ｑが予め設定した値を超えるまでは、予測ヒット件数Ｐを常に０に設定し、必ずヒットデータ一覧を生成するようにしてもよい。
【００３８】
以上のように、実施の形態４によれば、スレーブコンピュータ１２ａ〜１２ｃは、全ヒット件数Ｋに基づいて逐次予測ヒット件数Ｐを算出し、予測ヒット件数Ｐが最大取り出し件数Ｍを超え、かつ全ヒット件数Ｋがヒット件数閾値Ｎｔを超えた場合にはヒットデータ一覧を作成しないようにしたので、マスタコンピュータ１１に送信する照合結果にヒットデータ一覧を含めるか否かを早期に判断することができ、実施の形態２と比較してマスタコンピュータ１１へ送信するデータ量をより一層絞り込むことが可能となる。これにより、データ転送効率がより一層向上するため、検索処理をさらに高速化することができる。
【００３９】
なお、実施の形態４ではヒットデータ一覧の作成をやめるタイミングが実施の形態１〜実施の形態３とは異なるため、最終的なヒット件数とヒットデータ一覧の数が完全には一致しない。しかし、インターネット検索などでは、検索者は必ずしもヒットデータ一覧をすべて参照するとは限らないため、出力するヒットデータ一覧の件数は近似的にヒット件数と等しければよいと考えられる。
また、実施の形態４は、実施の形態１に適用することも可能である。また、実施の形態４に実施の形態３を適用することも可能である。
【図面の簡単な説明】
【００４０】
【図１】この発明の実施の形態１による、検索システムの構成を示すブロック図である。
【図２】この発明の実施の形態１による、スレーブコンピュータの構成を示すブロック図である。
【図３】この発明の実施の形態１による、マスタコンピュータの構成を示すブロック図である。
【図４】この発明の実施の形態１による、スレーブコンピュータの動作のフローチャートである。
【図５】検索装置に与えられる検索問い合わせ内容の例を示す図である。
【図６】この発明の実施の形態１による、スレーブコンピュータによって作成されるヒットデータ一覧の例を示す図である。
【図７】この発明の実施の形態１による、マスタコンピュータの動作のフローチャートである。
【図８】この発明の実施の形態２による、スレーブコンピュータの動作のフローチャートである。
【図９】この発明の実施の形態２による、マスタコンピュータの動作のフローチャートである。
【図１０】記憶装置に格納されている検索対象データの一例を示す図である。
【図１１】この発明の実施の形態３による、データ入力部の動作のフローチャートである。
【図１２】この発明による、検索システムの構成の例を示すブロック図である。
【図１３】この発明の実施の形態４による、スレーブコンピュータの動作のフローチャートである。
【符号の説明】
【００４１】
１０  検索装置、１１  マスタコンピュータ、１２ａ〜１２ｃ  スレーブコンピュータ、１３  ＬＡＮスイッチ、２０  検索端末装置、３０，４０  ネットワーク、４１ａ，４１ｂ  記憶装置、１００，２００  検索システム、１１１  照合結果受信部、１１２  検索結果生成部、１１３  検索結果出力部、１２１  記憶装置、１２２  データ入力部、１２３  データ照合部、１２４  照合結果生成部、１２５  照合結果送信部。
【図１】
2006031624.tif 000003
【図２】
2006031624.tif 000004
【図３】
2006031624.tif 000005
【図４】
2006031624.tif 000006
【図５】
2006031624.tif 000007
【図６】
2006031624.tif 000008
【図７】
2006031624.tif 000009
【図８】
2006031624.tif 000010
【図９】
2006031624.tif 000011
【図１０】
2006031624.tif 000012
【図１１】
2006031624.tif 000013
【図１２】
2006031624.tif 000014
【図１３】
2006031624.tif 000015