検索装置
【課題】 高速な並列検索処理が可能な検索装置を得る。
【解決手段】 検索対象データを取得するデータ入力部122と、検索対象データに対し、照合処理を行うデータ照合部123と、照合処理によって得られたヒット件数が最大取り出し件数以下の間は、ヒットデータ一覧を生成する照合結果生成部124と、ヒット件数とヒットデータ一覧をマスタコンピュータ11に送信する照合結果送信部125を有するスレーブコンピュータ12a〜12cと、スレーブコンピュータ12a〜12cよりヒット件数とヒットデータ一覧を受信する照合結果受信部111と、スレーブコンピュータ12a〜12cから受信したヒット件数の合計が最大取り出し件数以下であれば、受信した全ヒットデータ一覧を生成する検索結果生成部112と、合計と全ヒットデータ一覧を出力する検索結果出力部113を有するマスタコンピュータ11とを備える。
【解決手段】 検索対象データを取得するデータ入力部122と、検索対象データに対し、照合処理を行うデータ照合部123と、照合処理によって得られたヒット件数が最大取り出し件数以下の間は、ヒットデータ一覧を生成する照合結果生成部124と、ヒット件数とヒットデータ一覧をマスタコンピュータ11に送信する照合結果送信部125を有するスレーブコンピュータ12a〜12cと、スレーブコンピュータ12a〜12cよりヒット件数とヒットデータ一覧を受信する照合結果受信部111と、スレーブコンピュータ12a〜12cから受信したヒット件数の合計が最大取り出し件数以下であれば、受信した全ヒットデータ一覧を生成する検索結果生成部112と、合計と全ヒットデータ一覧を出力する検索結果出力部113を有するマスタコンピュータ11とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、検索装置に関するものである。
【背景技術】
【0002】
昨今、文書や画像など様々なコンテンツがデジタルデータ化され、データベースに蓄積されつつある。これらの膨大な蓄積データの中から目的のデータを抽出する手段として、検索エンジンなどによる検索サービスが用いられる。検索サービスでは、対話的な検索機能と共に、大量データに対する高速な検索性能が要求される。
これを実現する手段として並列検索装置がある。並列検索装置による処理方式では、1つのデータベースを複数のコンピュータに分割して登録し、個々のコンピュータ(以下、スレーブコンピュータと記す。)で並列に検索して得られる部分的な検索結果を1台のコンピュータ(以下、マスタコンピュータと記す。)が取り纏め、最終的な検索結果を出力する。
【0003】
例えば特許文献1に開示された従来の並列データ検索処理装置では、検索端末が、検索処理または検索結果の表示処理を要求すると、検索コーディネータ(マスタコンピュータに相当)は、その検索要求または表示処理要求を分析して、処理を依頼する検索処理装置(スレーブコンピュータに相当)を決定し、検索要求または表示処理要求を出す。要求を受けた検索処理装置は、各々に割り当てられている分割データベースに対して検索等の処理を行い、処理結果を生成する。検索コーディネータは、各検索処理装置から処理結果を受信し、それらを取りまとめて検索端末に提供する。
また、非特許文献1には、検索結果のヒット件数が所定の最大取り出し件数以下の場合にだけヒット件数とヒットした対象データの一覧を表示し、ヒット件数が最大取り出し件数を超える場合にはヒット件数だけを表示する方法が開示されている。
【0004】
しかし、並列検索装置では、スレーブコンピュータによる部分的な検索結果はネットワークなどの通信回線を介してマスタコンピュータへ転送されるため、スレーブコンピュータで得られたヒット数が多くなると、マスタコンピュータへ転送されるデータ量も多くなり、通信経路がボトルネックとなって検索性能が低下するという問題があった。
このような問題を解決するため、上述の特許文献1に開示された並列データ検索処理装置では、検索処理においては通信経路を介したデータ転送量が最少となるように、ヒット件数とヒット対象データを特定する必要最小限のデータ(例えばタイトルなど)に絞ってデータ転送している。
【0005】
【特許文献1】特開平10−154160号公報
【非特許文献1】「PATOLISフルテキスト検索サービス」、PATOLISニュース、財団法人 日本特許情報機構、1999年7月、No.225
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1に開示された並列データ検索処理装置では、検索結果の表示処理時には、得られた検索結果のヒット数が多い場合、転送するデータ量も多くなり、通信経路がボトルネックとなって検索性能が低下するという問題がある。
さらに、非特許文献1に開示された方法では、ヒット件数が最大取り出し件数を超えた段階ではマスタコンピュータにおいてヒットデータ一覧は表示されなくなるため、ヒット対象を特定するデータやヒットデータ一覧の情報をマスタコンピュータへ転送する必要はなくなるが、従来の技術においては無駄なデータ転送が行われているという問題があった。
【0007】
この発明は上記のような課題を解決するためになされたもので、マスタコンピュータとスレーブコンピュータ間でのデータ転送を効率化し、高速な検索処理が可能な検索装置を得ることを目的とする。
【課題を解決するための手段】
【0008】
この発明に係る検索装置は、検索対象データを取得するデータ入力部と、検索対象データに対し、与えられた検索条件を用いて照合処理を行うデータ照合部と、照合処理によって得られたヒット件数に基づいてヒットデータ一覧を生成するか否かを決定し、決定に従ってヒットデータ一覧を生成する照合結果生成部と、ヒット件数とヒットデータ一覧をマスタコンピュータに送信する照合結果送信部を有する1台以上のスレーブコンピュータと、各スレーブコンピュータよりヒット件数とヒットデータ一覧を受信する照合結果受信部と、各スレーブコンピュータから受信したヒット件数の合計件数がある閾値以下であれば、各スレーブコンピュータから受信した全ヒットデータ一覧を生成する検索結果生成部と、合計件数と全ヒットデータ一覧を出力する検索結果出力部を有するマスタコンピュータとを備えたものである。
【発明の効果】
【0009】
この発明によれば、スレーブコンピュータが、照合処理によって得られたヒット件数に基づいて、マスタコンピュータにヒットデータ一覧を送信するか否かを判断するようにしたので、マスタコンピュータとスレーブコンピュータ間でのデータ転送を効率化し、高速な検索処理を可能とすることができる。
【発明を実施するための最良の形態】
【0010】
以下、この発明の実施の様々な形態を説明する。
実施の形態1.
図1は、この発明の実施の形態1による、検索システム100の構成を示すブロック図である。図に示すように、検索システム100は、検索装置10と検索端末装置20を備え、検索装置10と検索端末装置20はネットワーク30を介して接続されている。
検索装置10は、マスタコンピュータ11、スレーブコンピュータ12a〜12c、及びマスタコンピュータ11とスレーブコンピュータ12a〜12cを接続するLANスイッチ13を備えている。
【0011】
図2は、この発明の実施の形態1によるスレーブコンピュータ12a〜12cの構成を示すブロック図である。図に示すように、スレーブコンピュータ12a〜12cは、記憶装置121、データ入力部122、データ照合部123、照合結果生成部124、及び照合結果送信部125を備えている。データ入力部122、データ照合部123、照合結果生成部124、及び照合結果送信部125は、スレーブコンピュータ12a〜12cのプロセッサを動作させるプログラムのモジュールを表しており、これらは実際には、一体としてスレーブコンピュータ12a〜12cのプロセッサを構成する。
記憶装置121は、スレーブコンピュータ12a〜12cのメモリ、あるいはスレーブコンピュータ12a〜12cと接続された外部の記憶装置等である。各スレーブコンピュータ12a〜12cの記憶装置121には、検索対象データが分割して格納されている。
また、図3は、実施の形態1によるマスタコンピュータ11の構成を示すブロック図である。図に示すように、マスタコンピュータ11は、照合結果受信部111、検索結果生成部112、及び検索結果出力部113を備えている。照合結果受信部111、検索結果生成部112、及び検索結果出力部113は、マスタコンピュータ11のプロセッサを動作させるプログラムのモジュールを表しており、これらは実際には、一体としてマスタコンピュータ11のプロセッサを構成する。
【0012】
次に動作について説明する。
検索装置10のマスタコンピュータ11は、検索端末装置20から検索問い合わせが通知されると、問い合わせ内容と検索結果の最大取り出し件数M(ある閾値)をLANスイッチ13を介してスレーブコンピュータ12a〜12cへ通知する。ここで、マスタコンピュータ11は、検索端末装置20からの問い合わせ内容を解析し、スレーブコンピュータ12a〜12cへは、検索処理の実行に必要な情報に変換された検索条件が通知される。最大取り出し件数Mは、マスタコンピュータ11が出力する検索結果の最大表示件数を表す。
【0013】
スレーブコンピュータ12a〜12cは、マスタコンピュータ11から検索条件及び最大取り出し件数Mを受信すると、検索処理を開始する。図4は、実施の形態1によるスレーブコンピュータ12a〜12cの動作のフローチャートである。
まず、スレーブコンピュータ12a〜12cは、スレーブコンピュータ内の全ヒット件数Kのカウンタを初期化する(ステップST100)。次に、データ入力部122は、記憶装置121から1つ以上の照合単位を含む一定量(あるデータ量単位)の検索対象データを取得する(ステップST101)。ここで照合単位とは、例えばリレーショナル型データベースの1レコードを表しており、照合処理を行うデータの単位を示している。この時、記憶装置121内のデータが終了したと判定された場合には、マスタコンピュータ11への終了通知を行い(ステップST102、ステップST112)、スレーブコンピュータ12a〜12cの処理を終了する。データ終了でない場合には、取得した検索対象データに対するヒット件数NSのカウンタを初期化する(ステップST103)。
【0014】
次に、データ照合部123は、取得した検索対象データに含まれる照合単位に対して、マスタコンピュータ11から通知された検索条件による照合処理を実行する(ステップST104)。照合処理の結果、検索条件にヒットした場合には、ヒット件数NSのカウンタに1を加算し(ステップST105、ステップST106)、全ヒット件数Kのカウンタに1を加算する(ステップST107)。ステップST105で検索条件にヒットしない場合には、ステップST110へ進む。
【0015】
次に、照合結果生成部124は、全ヒット件数Kのカウンタが最大取り出し件数M以下かどうかを判定する(ステップST108)。ここで、全ヒット件数Kのカウンタが最大取り出し件数M以下である場合、照合結果生成部124は、ヒットした検索対象データの一覧(以下、ヒットデータ一覧と記す)を生成する(ステップST109)。全ヒット件数Kのカウンタが最大取り出し件数Mを超えている場合には、ヒットデータ一覧は生成せず、ステップST110へ進む。
図5は、検索装置10に与えられる検索問い合わせ内容の例であり、図6は、この検索問い合わせに対して照合結果生成部124で生成されるヒットデータ一覧の例である。
図5に示す検索問い合わせは、検索対象データTableに対して、住所=”神奈川”の検索条件を満たす文書IDとその著者を示す名前を出力するためのものである。この検索問い合わせに対して照合結果生成部124は、図6に示すように、検索条件を満たす照合単位(レコード)の文書ID、名前(著者名)の一覧を生成する。ここでは、L1、L2、L3の3件が検索条件を満たしていることになる。
【0016】
次に、照合結果送信部125は、次の照合単位があるか否かを判定する(ステップST110)。次の照合単位がある場合には、ステップST104に戻り、その照合単位に対して検索条件による照合処理を実行する。次の照合単位がない場合には、照合結果送信部125は、照合結果をマスタコンピュータ11に送信する(ステップST111)。
照合結果にはヒット件数NSとステップST109で生成されたヒットデータ一覧が含まれるが、上述したように、ヒットデータ一覧については、全ヒット件数Kのカウンタが最大取り出し件数M以下である場合にのみ作成され、その場合にのみマスタコンピュータ11に送信されることになる。全ヒット件数Kのカウンタが最大取り出し件数Mを超えている場合にはヒット件数NSのみが送信される。
次に、ステップST101へ戻り、記憶装置121から検索対象データが読み出される。ステップST102でデータ終了と判定されるまで、処理が続けられる。
このように、スレーブコンピュータ12a〜12cは、記憶装置121内の検索対象データが終了するまで照合処理を複数回に分けて行い、その度に照合結果をマスタコンピュータ11に送信するという処理を繰り返す(ステップST101〜ステップST111)。
【0017】
図7は、実施の形態1による、マスタコンピュータ11の動作のフローチャートである。
マスタコンピュータ11は、マスタコンピュータ11に蓄積された全ヒット件数Nのカウンタを初期化する(ステップST200)。次に、照合結果受信部111は、図4のステップST111でスレーブコンピュータ12a〜12cの照合結果送信部125から送信された照合結果を受信する(ステップST201)。上述したように、照合結果には、ヒット件数NSのみが含まれる場合と、ヒット件数NSとヒットデータ一覧が含まれる場合がある。照合結果受信部111は、受信したのが終了通知であるか否かを判定する(ステップST202)。
ステップST202で終了通知ではないと判定された場合には、全ヒット件数Nのカウンタに、通知されたヒット件数NSを加算する(ステップST203)。次に、検索結果生成部112は、全ヒット件数Nのカウンタが最大取り出し件数M以下かどうかを判定する(ステップST204)。全ヒット件数Nのカウンタが最大取り出し件数M以下である場合、ヒットデータ一覧を生成する(ステップST205)。全ヒット件数Nのカウンタが最大取り出し件数Mを超えている場合にはヒットデータ一覧は生成しない。次に、ステップST201へ戻り、スレーブコンピュータ12a〜12cから送信される次の照合結果に対して同様に処理を繰り返す。
【0018】
ステップST202で終了通知であると判断された場合には、ステップST206へ進み、すべてのスレーブコンピュータ12a〜12cから終了通知を受けているかどうか判定する。すべてのスレーブコンピュータ12a〜12cから終了通知を受けていない場合にはステップST201へ進み、処理を繰り返す。ステップST206で、すべてのスレーブコンピュータ12a〜12cから終了通知を受けていると判断された場合には、検索結果出力部113は、検索結果生成部112で作成されたヒットデータ一覧と全ヒット件数Nを検索結果として出力する(ステップST207)。
【0019】
以上のように、実施の形態1によれば、スレーブコンピュータ12a〜12cは、マスタコンピュータ11への照合結果の送信を複数回に分けて行うと共に、全ヒット件数カウンタKが最大取り出し件数Mを超えたら、それ以降はヒット件数NSのみを送信し、ヒットデータ一覧は送信しないようにしたので、マスタコンピュータ11へのデータ転送量を少なく抑えることが可能となり、データ転送によるボトルネックを解消し、検索処理を高速化することができる。
【0020】
実施の形態2.
実施の形態1では、スレーブコンピュータ12a〜12cからマスタコンピュータ11へ送信する照合結果にヒットデータ一覧を含めるか否かの判断をスレーブコンピュータ12a〜12c側で行った。
しかし、スレーブコンピュータ12a〜12cの全ヒット件数Kが最大取り出し件数Mを超えていなくても、マスタコンピュータ11の全ヒット件数Nが最大取り出し件数Mを超えている場合には、マスタコンピュータ11でヒットデータ一覧が生成されないため、スレーブコンピュータ12a〜12cからヒットデータ一覧を送信しても転送データが無駄になってしまう。
そこで、実施の形態2では、マスタコンピュータ11からスレーブコンピュータ12a〜12cに対して、ヒットデータ一覧の送信が必要か否かを通知する。
【0021】
実施の形態2による検索装置10の動作について説明する。なお、実施の形態2による検索システム100及び検索装置10の構成は、図1〜図3に示すものと同様である。
図8は、この発明の実施の形態2による、スレーブコンピュータ12a〜12cの動作のフローチャートである。
スレーブコンピュータ12a〜12cは、各スレーブコンピュータ内の全ヒット件数Kのカウンタを初期化する(ステップST100)。次に、データ入力部122は、記憶装置121から1つ以上の照合単位を含む一定量の検索対象データを取得する(ステップST101)。ここで記憶装置121内のデータ終了と判定された場合には、マスタコンピュータ11への終了通知を行い(ステップST102、ステップST112)、スレーブコンピュータ12a〜12cの処理を終了する。データ終了でない場合には、取得した検索対象データに対するヒット件数NSのカウンタを初期化する(ステップST103)。
次に、データ照合部123は、取得した検索対象データに含まれる照合単位に対して、マスタコンピュータ11から通知された検索条件による照合処理を実行する(ステップST104)。照合処理の結果、検索条件にヒットした場合には、ヒット件数NSのカウンタに1を加算し(ステップST105、ステップST106)、全ヒット件数Kのカウンタに1を加算する(ステップST107)。ステップST105で検索条件にヒットしない場合には、ステップST110へ進む。
【0022】
次に、照合結果生成部124は、マスタコンピュータ11からヒットデータ一覧の送信が不要であることを示す通知(ヒットデータ一覧不要通知)を受信しているか否かを確認する(ステップST113)。ヒットデータ一覧不要通知を受けている場合、ステップST110へ進む。ヒットデータ一覧不要通知を受けていない場合には、全ヒット件数Kのカウンタが最大取り出し件数M以下かどうかを判定する(ステップST108)。ここで、全ヒット件数Kのカウンタが最大取り出し件数M以下である場合、照合結果生成部124は、ヒットデータ一覧を生成する(ステップST109)。全ヒット件数Kのカウンタが最大取り出し件数Mを超えている場合には、ヒットデータ一覧は生成せず、ステップST110へ進む。
ステップST110で照合結果送信部125は、次の照合単位があるか否かを判定する。次の照合単位がある場合には、ステップST104に戻り、その照合単位に対して検索条件による照合処理を実行する。次の照合単位がない場合には、照合結果送信部125は、照合結果をマスタコンピュータ11に送信する(ステップST111)。
次に、ステップST101へ戻り、検索対象データが読み出される。ステップST102でデータ終了と判定されるまで、処理が続けられる
【0023】
このように、スレーブコンピュータ12a〜12cは、検索対象データが終了するまで照合処理を複数回に分けて行い、その度に照合結果をマスタコンピュータ11に送信するという処理を繰り返す(ステップST101〜ステップST111)。
また、照合結果送信部125がマスタコンピュータ11に送信する照合結果には、ヒット件数NSとステップST109で生成されたヒットデータ一覧が含まれるが、上述したように、ヒットデータ一覧については、マスタコンピュータ11からのヒットデータ一覧不要通知が無く、かつ、全ヒット件数Kのカウンタが最大取り出し件数M以下である場合にのみ作成され、その場合にのみマスタコンピュータ11に送信されることになる。マスタコンピュータ11からヒットデータ一覧不要通知を受信している場合、または、全ヒット件数Kのカウンタが最大取り出し件数Mを超えている場合にはヒット件数NSのみが送信される。
【0024】
図9は、実施の形態2による、マスタコンピュータ11の動作のフローチャートである。
マスタコンピュータ11は、マスタコンピュータ11に蓄積された全ヒット件数Nのカウンタを初期化する(ステップST200)。次に、照合結果受信部111は、図4のステップST111でスレーブコンピュータ12a〜12cの照合結果送信部125から送信された照合結果を受信する(ステップST201)。上述したように、照合結果には、ヒット件数NSのみが含まれる場合と、ヒット件数NSとヒットデータ一覧が含まれる場合がある。照合結果受信部111は、受信したのが終了通知であるか否かを判定する(ステップST202)。
ステップST202で終了通知ではないと判定された場合には、全ヒット件数Nのカウンタに、通知されたヒット件数NSを加算する(ステップST203)。次に、検索結果生成部112は、全ヒット件数Nのカウンタが最大取り出し件数M以下かどうかを判定する(ステップST204)。全ヒット件数Nのカウンタが最大取り出し件数M以下である場合、ヒットデータ一覧を生成する。
全ヒット件数Nのカウンタが最大取り出し件数Mを超えている場合には、ヒットデータ一覧は生成せず、すべてのスレーブコンピュータ12a〜12cに対してヒットデータ一覧の送信が不要である旨の通知(ヒットデータ一覧不要通知)をする(ステップST208)。次に、ステップST201へ戻り、スレーブコンピュータ12a〜12cから送信される次の照合結果に対して同様に処理を繰り返す。
【0025】
ステップST202で終了通知であると判断された場合には、ステップST206へ進み、すべてのスレーブコンピュータ12a〜12cから終了通知を受けているかどうか判定する。すべてのスレーブコンピュータ12a〜12cから終了通知を受けていない場合にはステップST201へ進み、処理を繰り返す。ステップST206で、すべてのスレーブコンピュータ12a〜12cから終了通知を受けていると判断された場合には、検索結果出力部113は、検索結果生成部112で作成されたヒットデータ一覧と全ヒット件数Nを検索結果として出力する(ステップST207)。
【0026】
以上のように、実施の形態2によれば、マスタコンピュータ11は、ヒット件数Nが最大取り出し件数Mを超えた時点で、スレーブコンピュータ12a〜12cに対してヒットデータ一覧不要通知をし、スレーブコンピュータ12a〜12cは、ヒットデータ一覧不要通知を受信したら、マスタコンピュータ11へのヒットデータ一覧の送信を行わない。すなわち、スレーブコンピュータ12a〜12cは、実施の形態1のように、全ヒット件数Kのカウンタが最大取り出し件数Mを超えた場合のみでなく、マスタコンピュータ11からヒットデータ一覧不要通知を受信した場合にもマスタコンピュータ11へのヒットデータ一覧の送信を行わないようにした。これにより、データ転送量を実施の形態1よりもさらに削減することが可能となり、検索処理をさらに高速化することができる。
【0027】
実施の形態3.
実施の形態1及び実施の形態2は、スレーブコンピュータ12a〜12cからマスタコンピュータ11へのデータ転送量を削減するための手段を備えている。実施の形態3では、スレーブコンピュータ12a〜12c内での処理を効率化する。具体的には、記憶装置121に対する入出力処理の効率を高める。
【0028】
実施の形態3による検索装置10の動作について説明する。なお、実施の形態3による検索システム100及び検索装置10の構成は図1〜図3に示すものと同様である。また、実施の形態3は、スレーブコンピュータ12a〜12cのデータ入力部122の動作に特徴があり、その他の照合処理や照合結果生成、送信処理、またマスタコンピュータ11の処理については実施の形態1と同様である。
【0029】
図10は、記憶装置121に格納されている検索対象データの一例を示す図である。図に示すように、記憶装置121は、列項目が文書ID、名前、住所、性別からなる表形式のデータを格納している。
図11は、実施の形態3による、データ入力部122の動作のフローチャートであり、図4に示すステップST101の処理に該当する。
まず、データ入力部122は、全ヒット件数Kのカウンタが最大取り出し件数M以下であるか否かを確認する(ステップST1011)。
全ヒット件数Kのカウンタが最大取り出し件数M以下である場合には、スレーブコンピュータ12a〜12cはヒットデータ一覧を作成する必要があるので、検索問い合わせの実行に必要なすべての項目を記憶装置121から取得する(ステップST1012)。例えば、図6に示す検索問い合わせを実行する場合を例に説明すると、文書ID、名前、住所の列項目を取得する必要がある。
一方、全ヒット件数Kのカウンタが最大取り出し件数Mを超えている場合には、スレーブコンピュータ12a〜12cはヒット件数NSのみをマスタコンピュータ11に通知すればよいので、ヒット件数の算出に必要な項目、すなわち検索問い合わせに示された検索条件の判定に必要な項目のみを記憶装置121から取得する(ステップST1013)。例えば、図6に示す検索問い合わせの例では、検索条件の判定に必要な列項目は住所であり、この列項目だけを取得すればよい。
【0030】
なお、全ヒット件数Kが最大取り出し件数M以下である場合と全ヒット件数Kが最大取り出し件数Mを超えている場合とで記憶装置121から取得するデータの形式が異なるため、データ照合部123は、図4に示すステップST104において、この違いに従って照合処理を実行する。
【0031】
以上のように、実施の形態3によれば、全ヒット件数Kのカウンタが最大取り出し件数Mを超えたら、データ入力部122は、記憶装置121からヒット件数の算出に必要な検索対象データだけを取得するようにしたため、記憶装置121とデータ入力部122の間でやり取りされるデータ量を絞り込むことが可能となり、記憶装置121からのデータ読み出し効率が向上し、検索装置10全体の処理のスループットの向上を図ることができる。
【0032】
なお、検索対象データの格納先がスレーブコンピュータ12a〜12cの記憶装置121ではなく、例えばネットワーク上のファイルサーバやSAN(Storage Area Network)に格納されたデータであっても、同様にデータ入力部122で取得するデータを絞り込むことが可能であり、検索性能の向上効果が期待できる。
図12は、このような検索システム200の構成例を示すブロック図である。図1と同一の符号は同一の構成要素を表している。検索装置10のスレーブコンピュータ12a〜12cは、ネットワーク40に接続されている。記憶装置41a,41bは、ネットワーク40に接続されたファイルサーバ等の記憶装置であり、検索対象データを格納している。
なお、検索システム200に、実施の形態1及び実施の形態2の検索装置10を適用することも可能である。
【0033】
また、実施の形態3は実施の形態2にも適用できる。この場合には、ステップST1011で判断する条件として、マスタコンピュータ11からヒットデータ一覧不要通知を受信したかどうかを追加する。
なお、検索装置10の処理のスループットの向上を図るには、スレーブコンピュータ12a〜12cのCPUの処理効率を高めることも有効であるが、この点については、スレーブコンピュータの台数を増やすことにより対応が可能である。
【0034】
実施の形態4.
実施の形態4では、スレーブコンピュータ12a〜12cは、逐次集計される全ヒット件数Kに基づいて予測ヒット件数Pを算出し、予測ヒット件数Pを用いてマスタコンピュータ11にヒットデータ一覧を送信するか否かを判断する。
【0035】
実施の形態4による検索装置10の動作について説明する。なお、実施の形態4による検索システム100及び検索装置10の構成は図1〜図3に示すものと同様である。また、マスタコンピュータ11の動作のフローチャートは、図9に示す実施の形態2と同様である。
図13は、この発明の実施の形態4による、スレーブコンピュータ12a〜12cの動作のフローチャートである。図8と同一の符号で示されたステップは、実施の形態2と同様なので説明を省略する。
照合結果生成部124は、ステップST113でマスタコンピュータ11からヒットデータ一覧不要通知を受信していないことを確認すると、予測ヒット件数Pを算出する(ステップST114)。
ここで、予測ヒット件数Pの算出方法の例について説明する。まず、スレーブコンピュータ12a〜12cが実行した照合処理の回数Qと全ヒット件数Kを用いて、検索ヒット率Rを以下のように定義する。
R=K÷Q (1)
次に、検索対象データの全件数をCとすると、予測ヒット件数Pは以下の式で算出することができる。
P=R×C (2)
なお、予測ヒット件数Pの算出には他の方法を用いてもよい。
【0036】
続くステップST115では、予測ヒット件数Pと最大取り出し件数M、及び全ヒット件数Kとヒット件数閾値Ntの比較を行い、予測ヒット件数Pが最大取り出し件数M以下か、或いは、全ヒット件数Kがヒット件数閾値Nt以下であれば、ヒットデータ一覧を生成する。
ここで、ヒット件数閾値Ntは、例えば以下の式で定義することができる。ただし、Nslaveはスレーブコンピュータの台数とし、ここでは、Nslave=3である。
Nt=P÷Nslave (3)
【0037】
なお、予測ヒット件数Pの算出については、照合回数Qが少ない段階では統計的精度に大きなゆらぎが発生することが考えられる。よって、実際上は、照合回数Qが予め設定した値を超えるまでは予測ヒット件数Pの算出を行わないようにするとよい。照合回数Qが予め設定した値を超えるまでは、予測ヒット件数Pを常に0に設定し、必ずヒットデータ一覧を生成するようにしてもよい。
【0038】
以上のように、実施の形態4によれば、スレーブコンピュータ12a〜12cは、全ヒット件数Kに基づいて逐次予測ヒット件数Pを算出し、予測ヒット件数Pが最大取り出し件数Mを超え、かつ全ヒット件数Kがヒット件数閾値Ntを超えた場合にはヒットデータ一覧を作成しないようにしたので、マスタコンピュータ11に送信する照合結果にヒットデータ一覧を含めるか否かを早期に判断することができ、実施の形態2と比較してマスタコンピュータ11へ送信するデータ量をより一層絞り込むことが可能となる。これにより、データ転送効率がより一層向上するため、検索処理をさらに高速化することができる。
【0039】
なお、実施の形態4ではヒットデータ一覧の作成をやめるタイミングが実施の形態1〜実施の形態3とは異なるため、最終的なヒット件数とヒットデータ一覧の数が完全には一致しない。しかし、インターネット検索などでは、検索者は必ずしもヒットデータ一覧をすべて参照するとは限らないため、出力するヒットデータ一覧の件数は近似的にヒット件数と等しければよいと考えられる。
また、実施の形態4は、実施の形態1に適用することも可能である。また、実施の形態4に実施の形態3を適用することも可能である。
【図面の簡単な説明】
【0040】
【図1】この発明の実施の形態1による、検索システムの構成を示すブロック図である。
【図2】この発明の実施の形態1による、スレーブコンピュータの構成を示すブロック図である。
【図3】この発明の実施の形態1による、マスタコンピュータの構成を示すブロック図である。
【図4】この発明の実施の形態1による、スレーブコンピュータの動作のフローチャートである。
【図5】検索装置に与えられる検索問い合わせ内容の例を示す図である。
【図6】この発明の実施の形態1による、スレーブコンピュータによって作成されるヒットデータ一覧の例を示す図である。
【図7】この発明の実施の形態1による、マスタコンピュータの動作のフローチャートである。
【図8】この発明の実施の形態2による、スレーブコンピュータの動作のフローチャートである。
【図9】この発明の実施の形態2による、マスタコンピュータの動作のフローチャートである。
【図10】記憶装置に格納されている検索対象データの一例を示す図である。
【図11】この発明の実施の形態3による、データ入力部の動作のフローチャートである。
【図12】この発明による、検索システムの構成の例を示すブロック図である。
【図13】この発明の実施の形態4による、スレーブコンピュータの動作のフローチャートである。
【符号の説明】
【0041】
10 検索装置、11 マスタコンピュータ、12a〜12c スレーブコンピュータ、13 LANスイッチ、20 検索端末装置、30,40 ネットワーク、41a,41b 記憶装置、100,200 検索システム、111 照合結果受信部、112 検索結果生成部、113 検索結果出力部、121 記憶装置、122 データ入力部、123 データ照合部、124 照合結果生成部、125 照合結果送信部。
【技術分野】
【0001】
この発明は、検索装置に関するものである。
【背景技術】
【0002】
昨今、文書や画像など様々なコンテンツがデジタルデータ化され、データベースに蓄積されつつある。これらの膨大な蓄積データの中から目的のデータを抽出する手段として、検索エンジンなどによる検索サービスが用いられる。検索サービスでは、対話的な検索機能と共に、大量データに対する高速な検索性能が要求される。
これを実現する手段として並列検索装置がある。並列検索装置による処理方式では、1つのデータベースを複数のコンピュータに分割して登録し、個々のコンピュータ(以下、スレーブコンピュータと記す。)で並列に検索して得られる部分的な検索結果を1台のコンピュータ(以下、マスタコンピュータと記す。)が取り纏め、最終的な検索結果を出力する。
【0003】
例えば特許文献1に開示された従来の並列データ検索処理装置では、検索端末が、検索処理または検索結果の表示処理を要求すると、検索コーディネータ(マスタコンピュータに相当)は、その検索要求または表示処理要求を分析して、処理を依頼する検索処理装置(スレーブコンピュータに相当)を決定し、検索要求または表示処理要求を出す。要求を受けた検索処理装置は、各々に割り当てられている分割データベースに対して検索等の処理を行い、処理結果を生成する。検索コーディネータは、各検索処理装置から処理結果を受信し、それらを取りまとめて検索端末に提供する。
また、非特許文献1には、検索結果のヒット件数が所定の最大取り出し件数以下の場合にだけヒット件数とヒットした対象データの一覧を表示し、ヒット件数が最大取り出し件数を超える場合にはヒット件数だけを表示する方法が開示されている。
【0004】
しかし、並列検索装置では、スレーブコンピュータによる部分的な検索結果はネットワークなどの通信回線を介してマスタコンピュータへ転送されるため、スレーブコンピュータで得られたヒット数が多くなると、マスタコンピュータへ転送されるデータ量も多くなり、通信経路がボトルネックとなって検索性能が低下するという問題があった。
このような問題を解決するため、上述の特許文献1に開示された並列データ検索処理装置では、検索処理においては通信経路を介したデータ転送量が最少となるように、ヒット件数とヒット対象データを特定する必要最小限のデータ(例えばタイトルなど)に絞ってデータ転送している。
【0005】
【特許文献1】特開平10−154160号公報
【非特許文献1】「PATOLISフルテキスト検索サービス」、PATOLISニュース、財団法人 日本特許情報機構、1999年7月、No.225
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1に開示された並列データ検索処理装置では、検索結果の表示処理時には、得られた検索結果のヒット数が多い場合、転送するデータ量も多くなり、通信経路がボトルネックとなって検索性能が低下するという問題がある。
さらに、非特許文献1に開示された方法では、ヒット件数が最大取り出し件数を超えた段階ではマスタコンピュータにおいてヒットデータ一覧は表示されなくなるため、ヒット対象を特定するデータやヒットデータ一覧の情報をマスタコンピュータへ転送する必要はなくなるが、従来の技術においては無駄なデータ転送が行われているという問題があった。
【0007】
この発明は上記のような課題を解決するためになされたもので、マスタコンピュータとスレーブコンピュータ間でのデータ転送を効率化し、高速な検索処理が可能な検索装置を得ることを目的とする。
【課題を解決するための手段】
【0008】
この発明に係る検索装置は、検索対象データを取得するデータ入力部と、検索対象データに対し、与えられた検索条件を用いて照合処理を行うデータ照合部と、照合処理によって得られたヒット件数に基づいてヒットデータ一覧を生成するか否かを決定し、決定に従ってヒットデータ一覧を生成する照合結果生成部と、ヒット件数とヒットデータ一覧をマスタコンピュータに送信する照合結果送信部を有する1台以上のスレーブコンピュータと、各スレーブコンピュータよりヒット件数とヒットデータ一覧を受信する照合結果受信部と、各スレーブコンピュータから受信したヒット件数の合計件数がある閾値以下であれば、各スレーブコンピュータから受信した全ヒットデータ一覧を生成する検索結果生成部と、合計件数と全ヒットデータ一覧を出力する検索結果出力部を有するマスタコンピュータとを備えたものである。
【発明の効果】
【0009】
この発明によれば、スレーブコンピュータが、照合処理によって得られたヒット件数に基づいて、マスタコンピュータにヒットデータ一覧を送信するか否かを判断するようにしたので、マスタコンピュータとスレーブコンピュータ間でのデータ転送を効率化し、高速な検索処理を可能とすることができる。
【発明を実施するための最良の形態】
【0010】
以下、この発明の実施の様々な形態を説明する。
実施の形態1.
図1は、この発明の実施の形態1による、検索システム100の構成を示すブロック図である。図に示すように、検索システム100は、検索装置10と検索端末装置20を備え、検索装置10と検索端末装置20はネットワーク30を介して接続されている。
検索装置10は、マスタコンピュータ11、スレーブコンピュータ12a〜12c、及びマスタコンピュータ11とスレーブコンピュータ12a〜12cを接続するLANスイッチ13を備えている。
【0011】
図2は、この発明の実施の形態1によるスレーブコンピュータ12a〜12cの構成を示すブロック図である。図に示すように、スレーブコンピュータ12a〜12cは、記憶装置121、データ入力部122、データ照合部123、照合結果生成部124、及び照合結果送信部125を備えている。データ入力部122、データ照合部123、照合結果生成部124、及び照合結果送信部125は、スレーブコンピュータ12a〜12cのプロセッサを動作させるプログラムのモジュールを表しており、これらは実際には、一体としてスレーブコンピュータ12a〜12cのプロセッサを構成する。
記憶装置121は、スレーブコンピュータ12a〜12cのメモリ、あるいはスレーブコンピュータ12a〜12cと接続された外部の記憶装置等である。各スレーブコンピュータ12a〜12cの記憶装置121には、検索対象データが分割して格納されている。
また、図3は、実施の形態1によるマスタコンピュータ11の構成を示すブロック図である。図に示すように、マスタコンピュータ11は、照合結果受信部111、検索結果生成部112、及び検索結果出力部113を備えている。照合結果受信部111、検索結果生成部112、及び検索結果出力部113は、マスタコンピュータ11のプロセッサを動作させるプログラムのモジュールを表しており、これらは実際には、一体としてマスタコンピュータ11のプロセッサを構成する。
【0012】
次に動作について説明する。
検索装置10のマスタコンピュータ11は、検索端末装置20から検索問い合わせが通知されると、問い合わせ内容と検索結果の最大取り出し件数M(ある閾値)をLANスイッチ13を介してスレーブコンピュータ12a〜12cへ通知する。ここで、マスタコンピュータ11は、検索端末装置20からの問い合わせ内容を解析し、スレーブコンピュータ12a〜12cへは、検索処理の実行に必要な情報に変換された検索条件が通知される。最大取り出し件数Mは、マスタコンピュータ11が出力する検索結果の最大表示件数を表す。
【0013】
スレーブコンピュータ12a〜12cは、マスタコンピュータ11から検索条件及び最大取り出し件数Mを受信すると、検索処理を開始する。図4は、実施の形態1によるスレーブコンピュータ12a〜12cの動作のフローチャートである。
まず、スレーブコンピュータ12a〜12cは、スレーブコンピュータ内の全ヒット件数Kのカウンタを初期化する(ステップST100)。次に、データ入力部122は、記憶装置121から1つ以上の照合単位を含む一定量(あるデータ量単位)の検索対象データを取得する(ステップST101)。ここで照合単位とは、例えばリレーショナル型データベースの1レコードを表しており、照合処理を行うデータの単位を示している。この時、記憶装置121内のデータが終了したと判定された場合には、マスタコンピュータ11への終了通知を行い(ステップST102、ステップST112)、スレーブコンピュータ12a〜12cの処理を終了する。データ終了でない場合には、取得した検索対象データに対するヒット件数NSのカウンタを初期化する(ステップST103)。
【0014】
次に、データ照合部123は、取得した検索対象データに含まれる照合単位に対して、マスタコンピュータ11から通知された検索条件による照合処理を実行する(ステップST104)。照合処理の結果、検索条件にヒットした場合には、ヒット件数NSのカウンタに1を加算し(ステップST105、ステップST106)、全ヒット件数Kのカウンタに1を加算する(ステップST107)。ステップST105で検索条件にヒットしない場合には、ステップST110へ進む。
【0015】
次に、照合結果生成部124は、全ヒット件数Kのカウンタが最大取り出し件数M以下かどうかを判定する(ステップST108)。ここで、全ヒット件数Kのカウンタが最大取り出し件数M以下である場合、照合結果生成部124は、ヒットした検索対象データの一覧(以下、ヒットデータ一覧と記す)を生成する(ステップST109)。全ヒット件数Kのカウンタが最大取り出し件数Mを超えている場合には、ヒットデータ一覧は生成せず、ステップST110へ進む。
図5は、検索装置10に与えられる検索問い合わせ内容の例であり、図6は、この検索問い合わせに対して照合結果生成部124で生成されるヒットデータ一覧の例である。
図5に示す検索問い合わせは、検索対象データTableに対して、住所=”神奈川”の検索条件を満たす文書IDとその著者を示す名前を出力するためのものである。この検索問い合わせに対して照合結果生成部124は、図6に示すように、検索条件を満たす照合単位(レコード)の文書ID、名前(著者名)の一覧を生成する。ここでは、L1、L2、L3の3件が検索条件を満たしていることになる。
【0016】
次に、照合結果送信部125は、次の照合単位があるか否かを判定する(ステップST110)。次の照合単位がある場合には、ステップST104に戻り、その照合単位に対して検索条件による照合処理を実行する。次の照合単位がない場合には、照合結果送信部125は、照合結果をマスタコンピュータ11に送信する(ステップST111)。
照合結果にはヒット件数NSとステップST109で生成されたヒットデータ一覧が含まれるが、上述したように、ヒットデータ一覧については、全ヒット件数Kのカウンタが最大取り出し件数M以下である場合にのみ作成され、その場合にのみマスタコンピュータ11に送信されることになる。全ヒット件数Kのカウンタが最大取り出し件数Mを超えている場合にはヒット件数NSのみが送信される。
次に、ステップST101へ戻り、記憶装置121から検索対象データが読み出される。ステップST102でデータ終了と判定されるまで、処理が続けられる。
このように、スレーブコンピュータ12a〜12cは、記憶装置121内の検索対象データが終了するまで照合処理を複数回に分けて行い、その度に照合結果をマスタコンピュータ11に送信するという処理を繰り返す(ステップST101〜ステップST111)。
【0017】
図7は、実施の形態1による、マスタコンピュータ11の動作のフローチャートである。
マスタコンピュータ11は、マスタコンピュータ11に蓄積された全ヒット件数Nのカウンタを初期化する(ステップST200)。次に、照合結果受信部111は、図4のステップST111でスレーブコンピュータ12a〜12cの照合結果送信部125から送信された照合結果を受信する(ステップST201)。上述したように、照合結果には、ヒット件数NSのみが含まれる場合と、ヒット件数NSとヒットデータ一覧が含まれる場合がある。照合結果受信部111は、受信したのが終了通知であるか否かを判定する(ステップST202)。
ステップST202で終了通知ではないと判定された場合には、全ヒット件数Nのカウンタに、通知されたヒット件数NSを加算する(ステップST203)。次に、検索結果生成部112は、全ヒット件数Nのカウンタが最大取り出し件数M以下かどうかを判定する(ステップST204)。全ヒット件数Nのカウンタが最大取り出し件数M以下である場合、ヒットデータ一覧を生成する(ステップST205)。全ヒット件数Nのカウンタが最大取り出し件数Mを超えている場合にはヒットデータ一覧は生成しない。次に、ステップST201へ戻り、スレーブコンピュータ12a〜12cから送信される次の照合結果に対して同様に処理を繰り返す。
【0018】
ステップST202で終了通知であると判断された場合には、ステップST206へ進み、すべてのスレーブコンピュータ12a〜12cから終了通知を受けているかどうか判定する。すべてのスレーブコンピュータ12a〜12cから終了通知を受けていない場合にはステップST201へ進み、処理を繰り返す。ステップST206で、すべてのスレーブコンピュータ12a〜12cから終了通知を受けていると判断された場合には、検索結果出力部113は、検索結果生成部112で作成されたヒットデータ一覧と全ヒット件数Nを検索結果として出力する(ステップST207)。
【0019】
以上のように、実施の形態1によれば、スレーブコンピュータ12a〜12cは、マスタコンピュータ11への照合結果の送信を複数回に分けて行うと共に、全ヒット件数カウンタKが最大取り出し件数Mを超えたら、それ以降はヒット件数NSのみを送信し、ヒットデータ一覧は送信しないようにしたので、マスタコンピュータ11へのデータ転送量を少なく抑えることが可能となり、データ転送によるボトルネックを解消し、検索処理を高速化することができる。
【0020】
実施の形態2.
実施の形態1では、スレーブコンピュータ12a〜12cからマスタコンピュータ11へ送信する照合結果にヒットデータ一覧を含めるか否かの判断をスレーブコンピュータ12a〜12c側で行った。
しかし、スレーブコンピュータ12a〜12cの全ヒット件数Kが最大取り出し件数Mを超えていなくても、マスタコンピュータ11の全ヒット件数Nが最大取り出し件数Mを超えている場合には、マスタコンピュータ11でヒットデータ一覧が生成されないため、スレーブコンピュータ12a〜12cからヒットデータ一覧を送信しても転送データが無駄になってしまう。
そこで、実施の形態2では、マスタコンピュータ11からスレーブコンピュータ12a〜12cに対して、ヒットデータ一覧の送信が必要か否かを通知する。
【0021】
実施の形態2による検索装置10の動作について説明する。なお、実施の形態2による検索システム100及び検索装置10の構成は、図1〜図3に示すものと同様である。
図8は、この発明の実施の形態2による、スレーブコンピュータ12a〜12cの動作のフローチャートである。
スレーブコンピュータ12a〜12cは、各スレーブコンピュータ内の全ヒット件数Kのカウンタを初期化する(ステップST100)。次に、データ入力部122は、記憶装置121から1つ以上の照合単位を含む一定量の検索対象データを取得する(ステップST101)。ここで記憶装置121内のデータ終了と判定された場合には、マスタコンピュータ11への終了通知を行い(ステップST102、ステップST112)、スレーブコンピュータ12a〜12cの処理を終了する。データ終了でない場合には、取得した検索対象データに対するヒット件数NSのカウンタを初期化する(ステップST103)。
次に、データ照合部123は、取得した検索対象データに含まれる照合単位に対して、マスタコンピュータ11から通知された検索条件による照合処理を実行する(ステップST104)。照合処理の結果、検索条件にヒットした場合には、ヒット件数NSのカウンタに1を加算し(ステップST105、ステップST106)、全ヒット件数Kのカウンタに1を加算する(ステップST107)。ステップST105で検索条件にヒットしない場合には、ステップST110へ進む。
【0022】
次に、照合結果生成部124は、マスタコンピュータ11からヒットデータ一覧の送信が不要であることを示す通知(ヒットデータ一覧不要通知)を受信しているか否かを確認する(ステップST113)。ヒットデータ一覧不要通知を受けている場合、ステップST110へ進む。ヒットデータ一覧不要通知を受けていない場合には、全ヒット件数Kのカウンタが最大取り出し件数M以下かどうかを判定する(ステップST108)。ここで、全ヒット件数Kのカウンタが最大取り出し件数M以下である場合、照合結果生成部124は、ヒットデータ一覧を生成する(ステップST109)。全ヒット件数Kのカウンタが最大取り出し件数Mを超えている場合には、ヒットデータ一覧は生成せず、ステップST110へ進む。
ステップST110で照合結果送信部125は、次の照合単位があるか否かを判定する。次の照合単位がある場合には、ステップST104に戻り、その照合単位に対して検索条件による照合処理を実行する。次の照合単位がない場合には、照合結果送信部125は、照合結果をマスタコンピュータ11に送信する(ステップST111)。
次に、ステップST101へ戻り、検索対象データが読み出される。ステップST102でデータ終了と判定されるまで、処理が続けられる
【0023】
このように、スレーブコンピュータ12a〜12cは、検索対象データが終了するまで照合処理を複数回に分けて行い、その度に照合結果をマスタコンピュータ11に送信するという処理を繰り返す(ステップST101〜ステップST111)。
また、照合結果送信部125がマスタコンピュータ11に送信する照合結果には、ヒット件数NSとステップST109で生成されたヒットデータ一覧が含まれるが、上述したように、ヒットデータ一覧については、マスタコンピュータ11からのヒットデータ一覧不要通知が無く、かつ、全ヒット件数Kのカウンタが最大取り出し件数M以下である場合にのみ作成され、その場合にのみマスタコンピュータ11に送信されることになる。マスタコンピュータ11からヒットデータ一覧不要通知を受信している場合、または、全ヒット件数Kのカウンタが最大取り出し件数Mを超えている場合にはヒット件数NSのみが送信される。
【0024】
図9は、実施の形態2による、マスタコンピュータ11の動作のフローチャートである。
マスタコンピュータ11は、マスタコンピュータ11に蓄積された全ヒット件数Nのカウンタを初期化する(ステップST200)。次に、照合結果受信部111は、図4のステップST111でスレーブコンピュータ12a〜12cの照合結果送信部125から送信された照合結果を受信する(ステップST201)。上述したように、照合結果には、ヒット件数NSのみが含まれる場合と、ヒット件数NSとヒットデータ一覧が含まれる場合がある。照合結果受信部111は、受信したのが終了通知であるか否かを判定する(ステップST202)。
ステップST202で終了通知ではないと判定された場合には、全ヒット件数Nのカウンタに、通知されたヒット件数NSを加算する(ステップST203)。次に、検索結果生成部112は、全ヒット件数Nのカウンタが最大取り出し件数M以下かどうかを判定する(ステップST204)。全ヒット件数Nのカウンタが最大取り出し件数M以下である場合、ヒットデータ一覧を生成する。
全ヒット件数Nのカウンタが最大取り出し件数Mを超えている場合には、ヒットデータ一覧は生成せず、すべてのスレーブコンピュータ12a〜12cに対してヒットデータ一覧の送信が不要である旨の通知(ヒットデータ一覧不要通知)をする(ステップST208)。次に、ステップST201へ戻り、スレーブコンピュータ12a〜12cから送信される次の照合結果に対して同様に処理を繰り返す。
【0025】
ステップST202で終了通知であると判断された場合には、ステップST206へ進み、すべてのスレーブコンピュータ12a〜12cから終了通知を受けているかどうか判定する。すべてのスレーブコンピュータ12a〜12cから終了通知を受けていない場合にはステップST201へ進み、処理を繰り返す。ステップST206で、すべてのスレーブコンピュータ12a〜12cから終了通知を受けていると判断された場合には、検索結果出力部113は、検索結果生成部112で作成されたヒットデータ一覧と全ヒット件数Nを検索結果として出力する(ステップST207)。
【0026】
以上のように、実施の形態2によれば、マスタコンピュータ11は、ヒット件数Nが最大取り出し件数Mを超えた時点で、スレーブコンピュータ12a〜12cに対してヒットデータ一覧不要通知をし、スレーブコンピュータ12a〜12cは、ヒットデータ一覧不要通知を受信したら、マスタコンピュータ11へのヒットデータ一覧の送信を行わない。すなわち、スレーブコンピュータ12a〜12cは、実施の形態1のように、全ヒット件数Kのカウンタが最大取り出し件数Mを超えた場合のみでなく、マスタコンピュータ11からヒットデータ一覧不要通知を受信した場合にもマスタコンピュータ11へのヒットデータ一覧の送信を行わないようにした。これにより、データ転送量を実施の形態1よりもさらに削減することが可能となり、検索処理をさらに高速化することができる。
【0027】
実施の形態3.
実施の形態1及び実施の形態2は、スレーブコンピュータ12a〜12cからマスタコンピュータ11へのデータ転送量を削減するための手段を備えている。実施の形態3では、スレーブコンピュータ12a〜12c内での処理を効率化する。具体的には、記憶装置121に対する入出力処理の効率を高める。
【0028】
実施の形態3による検索装置10の動作について説明する。なお、実施の形態3による検索システム100及び検索装置10の構成は図1〜図3に示すものと同様である。また、実施の形態3は、スレーブコンピュータ12a〜12cのデータ入力部122の動作に特徴があり、その他の照合処理や照合結果生成、送信処理、またマスタコンピュータ11の処理については実施の形態1と同様である。
【0029】
図10は、記憶装置121に格納されている検索対象データの一例を示す図である。図に示すように、記憶装置121は、列項目が文書ID、名前、住所、性別からなる表形式のデータを格納している。
図11は、実施の形態3による、データ入力部122の動作のフローチャートであり、図4に示すステップST101の処理に該当する。
まず、データ入力部122は、全ヒット件数Kのカウンタが最大取り出し件数M以下であるか否かを確認する(ステップST1011)。
全ヒット件数Kのカウンタが最大取り出し件数M以下である場合には、スレーブコンピュータ12a〜12cはヒットデータ一覧を作成する必要があるので、検索問い合わせの実行に必要なすべての項目を記憶装置121から取得する(ステップST1012)。例えば、図6に示す検索問い合わせを実行する場合を例に説明すると、文書ID、名前、住所の列項目を取得する必要がある。
一方、全ヒット件数Kのカウンタが最大取り出し件数Mを超えている場合には、スレーブコンピュータ12a〜12cはヒット件数NSのみをマスタコンピュータ11に通知すればよいので、ヒット件数の算出に必要な項目、すなわち検索問い合わせに示された検索条件の判定に必要な項目のみを記憶装置121から取得する(ステップST1013)。例えば、図6に示す検索問い合わせの例では、検索条件の判定に必要な列項目は住所であり、この列項目だけを取得すればよい。
【0030】
なお、全ヒット件数Kが最大取り出し件数M以下である場合と全ヒット件数Kが最大取り出し件数Mを超えている場合とで記憶装置121から取得するデータの形式が異なるため、データ照合部123は、図4に示すステップST104において、この違いに従って照合処理を実行する。
【0031】
以上のように、実施の形態3によれば、全ヒット件数Kのカウンタが最大取り出し件数Mを超えたら、データ入力部122は、記憶装置121からヒット件数の算出に必要な検索対象データだけを取得するようにしたため、記憶装置121とデータ入力部122の間でやり取りされるデータ量を絞り込むことが可能となり、記憶装置121からのデータ読み出し効率が向上し、検索装置10全体の処理のスループットの向上を図ることができる。
【0032】
なお、検索対象データの格納先がスレーブコンピュータ12a〜12cの記憶装置121ではなく、例えばネットワーク上のファイルサーバやSAN(Storage Area Network)に格納されたデータであっても、同様にデータ入力部122で取得するデータを絞り込むことが可能であり、検索性能の向上効果が期待できる。
図12は、このような検索システム200の構成例を示すブロック図である。図1と同一の符号は同一の構成要素を表している。検索装置10のスレーブコンピュータ12a〜12cは、ネットワーク40に接続されている。記憶装置41a,41bは、ネットワーク40に接続されたファイルサーバ等の記憶装置であり、検索対象データを格納している。
なお、検索システム200に、実施の形態1及び実施の形態2の検索装置10を適用することも可能である。
【0033】
また、実施の形態3は実施の形態2にも適用できる。この場合には、ステップST1011で判断する条件として、マスタコンピュータ11からヒットデータ一覧不要通知を受信したかどうかを追加する。
なお、検索装置10の処理のスループットの向上を図るには、スレーブコンピュータ12a〜12cのCPUの処理効率を高めることも有効であるが、この点については、スレーブコンピュータの台数を増やすことにより対応が可能である。
【0034】
実施の形態4.
実施の形態4では、スレーブコンピュータ12a〜12cは、逐次集計される全ヒット件数Kに基づいて予測ヒット件数Pを算出し、予測ヒット件数Pを用いてマスタコンピュータ11にヒットデータ一覧を送信するか否かを判断する。
【0035】
実施の形態4による検索装置10の動作について説明する。なお、実施の形態4による検索システム100及び検索装置10の構成は図1〜図3に示すものと同様である。また、マスタコンピュータ11の動作のフローチャートは、図9に示す実施の形態2と同様である。
図13は、この発明の実施の形態4による、スレーブコンピュータ12a〜12cの動作のフローチャートである。図8と同一の符号で示されたステップは、実施の形態2と同様なので説明を省略する。
照合結果生成部124は、ステップST113でマスタコンピュータ11からヒットデータ一覧不要通知を受信していないことを確認すると、予測ヒット件数Pを算出する(ステップST114)。
ここで、予測ヒット件数Pの算出方法の例について説明する。まず、スレーブコンピュータ12a〜12cが実行した照合処理の回数Qと全ヒット件数Kを用いて、検索ヒット率Rを以下のように定義する。
R=K÷Q (1)
次に、検索対象データの全件数をCとすると、予測ヒット件数Pは以下の式で算出することができる。
P=R×C (2)
なお、予測ヒット件数Pの算出には他の方法を用いてもよい。
【0036】
続くステップST115では、予測ヒット件数Pと最大取り出し件数M、及び全ヒット件数Kとヒット件数閾値Ntの比較を行い、予測ヒット件数Pが最大取り出し件数M以下か、或いは、全ヒット件数Kがヒット件数閾値Nt以下であれば、ヒットデータ一覧を生成する。
ここで、ヒット件数閾値Ntは、例えば以下の式で定義することができる。ただし、Nslaveはスレーブコンピュータの台数とし、ここでは、Nslave=3である。
Nt=P÷Nslave (3)
【0037】
なお、予測ヒット件数Pの算出については、照合回数Qが少ない段階では統計的精度に大きなゆらぎが発生することが考えられる。よって、実際上は、照合回数Qが予め設定した値を超えるまでは予測ヒット件数Pの算出を行わないようにするとよい。照合回数Qが予め設定した値を超えるまでは、予測ヒット件数Pを常に0に設定し、必ずヒットデータ一覧を生成するようにしてもよい。
【0038】
以上のように、実施の形態4によれば、スレーブコンピュータ12a〜12cは、全ヒット件数Kに基づいて逐次予測ヒット件数Pを算出し、予測ヒット件数Pが最大取り出し件数Mを超え、かつ全ヒット件数Kがヒット件数閾値Ntを超えた場合にはヒットデータ一覧を作成しないようにしたので、マスタコンピュータ11に送信する照合結果にヒットデータ一覧を含めるか否かを早期に判断することができ、実施の形態2と比較してマスタコンピュータ11へ送信するデータ量をより一層絞り込むことが可能となる。これにより、データ転送効率がより一層向上するため、検索処理をさらに高速化することができる。
【0039】
なお、実施の形態4ではヒットデータ一覧の作成をやめるタイミングが実施の形態1〜実施の形態3とは異なるため、最終的なヒット件数とヒットデータ一覧の数が完全には一致しない。しかし、インターネット検索などでは、検索者は必ずしもヒットデータ一覧をすべて参照するとは限らないため、出力するヒットデータ一覧の件数は近似的にヒット件数と等しければよいと考えられる。
また、実施の形態4は、実施の形態1に適用することも可能である。また、実施の形態4に実施の形態3を適用することも可能である。
【図面の簡単な説明】
【0040】
【図1】この発明の実施の形態1による、検索システムの構成を示すブロック図である。
【図2】この発明の実施の形態1による、スレーブコンピュータの構成を示すブロック図である。
【図3】この発明の実施の形態1による、マスタコンピュータの構成を示すブロック図である。
【図4】この発明の実施の形態1による、スレーブコンピュータの動作のフローチャートである。
【図5】検索装置に与えられる検索問い合わせ内容の例を示す図である。
【図6】この発明の実施の形態1による、スレーブコンピュータによって作成されるヒットデータ一覧の例を示す図である。
【図7】この発明の実施の形態1による、マスタコンピュータの動作のフローチャートである。
【図8】この発明の実施の形態2による、スレーブコンピュータの動作のフローチャートである。
【図9】この発明の実施の形態2による、マスタコンピュータの動作のフローチャートである。
【図10】記憶装置に格納されている検索対象データの一例を示す図である。
【図11】この発明の実施の形態3による、データ入力部の動作のフローチャートである。
【図12】この発明による、検索システムの構成の例を示すブロック図である。
【図13】この発明の実施の形態4による、スレーブコンピュータの動作のフローチャートである。
【符号の説明】
【0041】
10 検索装置、11 マスタコンピュータ、12a〜12c スレーブコンピュータ、13 LANスイッチ、20 検索端末装置、30,40 ネットワーク、41a,41b 記憶装置、100,200 検索システム、111 照合結果受信部、112 検索結果生成部、113 検索結果出力部、121 記憶装置、122 データ入力部、123 データ照合部、124 照合結果生成部、125 照合結果送信部。
【特許請求の範囲】
【請求項1】
検索対象データを取得するデータ入力部と、
上記検索対象データに対し、与えられた検索条件を用いて照合処理を行うデータ照合部と、
上記照合処理によって得られたヒット件数に基づいてヒットデータ一覧を生成するか否かを決定し、決定に従って上記ヒットデータ一覧を生成する照合結果生成部と、
上記ヒット件数と上記ヒットデータ一覧をマスタコンピュータに送信する照合結果送信部を有する1台以上のスレーブコンピュータと、
各スレーブコンピュータより上記ヒット件数と上記ヒットデータ一覧を受信する照合結果受信部と、
各スレーブコンピュータから受信したヒット件数の合計件数がある閾値以下であれば、各スレーブコンピュータから受信した全ヒットデータ一覧を生成する検索結果生成部と、
上記合計件数と上記全ヒットデータ一覧を出力する検索結果出力部を有するマスタコンピュータとを備えた検索装置。
【請求項2】
上記照合結果生成部は、ヒット件数がある閾値以下の間は、ヒットデータ一覧を生成することを特徴とする請求項1記載の検索装置。
【請求項3】
上記照合結果生成部は、ヒット件数を利用して最終的な予測ヒット件数を算出し、上記予測ヒット件数がある閾値以下の間は、ヒットデータ一覧を生成することを特徴とする請求項1記載の検索装置。
【請求項4】
上記データ入力部は、あるデータ量単位で検索対象データを取得し、
上記データ照合部による照合処理と、上記照合結果生成部によるヒット件数に応じたヒットデータ一覧の生成と、上記照合結果送信部によるヒット件数とヒットデータ一覧の上記マスタコンピュータへの送信を、上記データ量単位の検索対象データ毎に繰り返し行うことを特徴とする請求項1から請求項3のうちのいずれか1項記載の検索装置。
【請求項5】
上記検索結果生成部は、スレーブコンピュータから受信するヒット件数を逐次集計して得られる合計件数がある閾値を超えた時点で、各スレーブコンピュータに対してヒットデータ一覧が不要である旨を通知し、
上記照合結果生成部は、上記通知を受けた場合には、それ以降ヒットデータ一覧を生成しないことを特徴とする請求項1から請求項4のうちのいずれか1項記載の検索装置。
【請求項6】
上記データ入力部は、上記照合結果生成部においてヒットデータ一覧を生成しないと決定された場合には、それ以降、検索対象データのうちヒット件数の特定に必要なデータ項目のみを取得することを特徴とする請求項1から請求項5のうちのいずれか1項記載の検索装置。
【請求項1】
検索対象データを取得するデータ入力部と、
上記検索対象データに対し、与えられた検索条件を用いて照合処理を行うデータ照合部と、
上記照合処理によって得られたヒット件数に基づいてヒットデータ一覧を生成するか否かを決定し、決定に従って上記ヒットデータ一覧を生成する照合結果生成部と、
上記ヒット件数と上記ヒットデータ一覧をマスタコンピュータに送信する照合結果送信部を有する1台以上のスレーブコンピュータと、
各スレーブコンピュータより上記ヒット件数と上記ヒットデータ一覧を受信する照合結果受信部と、
各スレーブコンピュータから受信したヒット件数の合計件数がある閾値以下であれば、各スレーブコンピュータから受信した全ヒットデータ一覧を生成する検索結果生成部と、
上記合計件数と上記全ヒットデータ一覧を出力する検索結果出力部を有するマスタコンピュータとを備えた検索装置。
【請求項2】
上記照合結果生成部は、ヒット件数がある閾値以下の間は、ヒットデータ一覧を生成することを特徴とする請求項1記載の検索装置。
【請求項3】
上記照合結果生成部は、ヒット件数を利用して最終的な予測ヒット件数を算出し、上記予測ヒット件数がある閾値以下の間は、ヒットデータ一覧を生成することを特徴とする請求項1記載の検索装置。
【請求項4】
上記データ入力部は、あるデータ量単位で検索対象データを取得し、
上記データ照合部による照合処理と、上記照合結果生成部によるヒット件数に応じたヒットデータ一覧の生成と、上記照合結果送信部によるヒット件数とヒットデータ一覧の上記マスタコンピュータへの送信を、上記データ量単位の検索対象データ毎に繰り返し行うことを特徴とする請求項1から請求項3のうちのいずれか1項記載の検索装置。
【請求項5】
上記検索結果生成部は、スレーブコンピュータから受信するヒット件数を逐次集計して得られる合計件数がある閾値を超えた時点で、各スレーブコンピュータに対してヒットデータ一覧が不要である旨を通知し、
上記照合結果生成部は、上記通知を受けた場合には、それ以降ヒットデータ一覧を生成しないことを特徴とする請求項1から請求項4のうちのいずれか1項記載の検索装置。
【請求項6】
上記データ入力部は、上記照合結果生成部においてヒットデータ一覧を生成しないと決定された場合には、それ以降、検索対象データのうちヒット件数の特定に必要なデータ項目のみを取得することを特徴とする請求項1から請求項5のうちのいずれか1項記載の検索装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2006−31624(P2006−31624A)
【公開日】平成18年2月2日(2006.2.2)
【国際特許分類】
【出願番号】特願2004−213294(P2004−213294)
【出願日】平成16年7月21日(2004.7.21)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
【公開日】平成18年2月2日(2006.2.2)
【国際特許分類】
【出願日】平成16年7月21日(2004.7.21)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
[ Back to top ]