(57)【要約】【課題】検索対象データベースにおける検索に際し、不要な検索処理を削減し、より高速な検索を行う。【解決手段】検索の対象となる検索対象データを分類情報に基づいて分類するとともに、当該検索対象データの特性を示す属性情報を付して、検索対象データを格納するメタデータデータベースと、分類情報及び属性情報を含む検索要求を受信する検索要求受信部３２と、メタデータデータベース３７に格納された分類情報及び検索要求に含まれた分類情報を不可逆な一方向関数により符号化する変換処理部３３と、符号化された分類情報同士を比較し、この比較結果に基づいてメタデータデータベース３７から検索対象を検索する比較部３６とを有する。【選択図】      図２
2005025561.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワーク上に分散配置された検索サーバ装置によりデータの検索を行う検索システムであって、
検索の対象となる検索対象データを分類情報に基づいて分類するとともに、当該検索対象データの特性を示す属性情報を付して、該検索対象データを格納する検索対象データベースと、
前記分類情報及び属性情報を含む検索要求を受信する検索要求受信部と、
前記検索対象データベースに格納された分類情報及び前記検索要求に含まれた分類情報を不可逆な一方向関数により符号化する変換処理部と、
前記符号化された分類情報同士を比較し、この比較結果に基づいて前記検索対象データベースから前記検索対象を検索する比較部と
を有することを特徴とする検索システム。
【請求項２】
前記検索対象データの分類情報は、当該検索対象が格納された前記検索対象データベース上におけるアドレス情報と関連付けられたテーブルデータに格納され、
前記比較部は、前記テーブルデータに基づいて、前記検索対象データベースの検索を行うことを特徴とする請求項１に記載の検索システム。
【請求項３】
前記不可逆な一方向関数は、ハッシュ関数であることを特徴とする請求項１又は２に記載の検索システム。
【請求項４】
通信ネットワーク上に分散配置された検索サーバ装置によりデータの検索を行う検索方法であって、
検索の対象となる検索対象データを分類情報に基づいて分類するとともに、当該検索対象データの特性を示す属性情報を付して、該検索対象データを検索対象データベースに格納するステップと、
前記分類情報及び属性情報を含む検索要求を受信するステップと、
前記検索対象データベースに格納された分類情報及び前記検索要求に含まれた分類情報を不可逆な一方向関数により符号化するステップと、
前記符号化された分類情報同士を比較し、この比較結果に基づいて前記検索対象データベースから前記検索対象を検索するステップと
を有することを特徴とする検索方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信ネットワーク上に分散配置され、相互に接続された検索サーバ装置によって検索を行う検索システム及び検索方法に関する。
【０００２】
【従来の技術】
従来より、インターネット等の通信ネットワーク上に分散配置された複数の検索サーバ装置を相互に接続し、各検索サーバ装置が連携してキーワード検索を行う分散型検索システムがあり、このような検索システムでは、検索条件として与えられるキーワードと検索対象のテキストを構成する文字列とのマッチングを行っている。
【０００３】
このマッチングを行う装置としては、テキスト検索や自動分類に際し、例えば、シソーラスと呼ばれる単語間の上位／下位関係及び類義語を定義した辞書を利用する方式がある。このテキスト検索においては、ユーザの入力した表現が検索対象中の表現と一致しない場合が生じるため、例えば、類義語や上位／下位語を含めた検索を行い、検索された内容のヒット率を確保する方式が提案されている（例えば、特許文献１参照）。
【０００４】
また、この上位／下位語を含めた検索としては、メタデータを用いる方式がある。ここでメタデータとは、データの特性に関する情報を記述したデータであり、各検索対象データのクラス（分類）、プロパティ（属性）とプロパティバリュー（属性内容）という構造を持つデータを指している。例としてレストランというクラスにおいて、「場所」というプロパティを持ち、「渋谷」というプロパティバリューを持つメタデータは「渋谷にあるレストラン」を示している。これは「渋谷」が、人名や商品名ではなく、地名を指す属性であるということを表している。
【０００５】
このようにプロパティに対してプロパティバリューを付与することにより、意味情報を示すことが可能となっている。検索結果を得るためには、ユーザが入力した検索条件（クラス，プロパティとプロパティバリュー）と検索対象のメタデータを比較することとなる。その際に、検索対象のデータベースに先ず検索条件として指定されているクラスのメタデータが存在するかを調べる必要がある。その場合、対象のデータベースに存在するメタデータ全てと比較を行うこととなる。検索対象のクラスのメタデータが存在している場合には、次にプロパティに比較を行い、さらにプロパティバリューの比較を行う。
【０００６】
図７は、従来のメタデータ検索の方法を説明する図である。ユーザは検索条件を入力し、ノードＡに対して検索要求を送信する。検索要求を受けたノードＡは、検索条件のクラスを満たすメタデータを保持しているかを調べる。その際、検索条件クラスの文字列と保有メタデータのクラス文字列を、個々にマッチングする必要がある。全てのメタデータとのマッチング終了後に、検索対象クラスが存在していた場合は、プロパティ、プロパティバリューの順にマッチングを行う。検索条件と合うメタデータが存在していた場合、そのメタデータをユーザに送信する。検索対象クラスが存在していない場合は、そこで対象メタデータが存在しない旨を、ユーザに対して送信する。
【０００７】
【特許文献１】
特開平９−４４５０７号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、上述した従来法のキーワード検索では、検索条件と検索対象ノード（ノードＡ）が保有しているメタデータ全てのクラスとのマッチングを終了しなければ、そのノードが検索対象のメタデータを持っているかを把握することはできない。すなわち、クラスの異なるメタデータに対して検索しても、ユーザの要求条件に合致したメタデータを発見することはできず、その間の検索時間が不要に浪費されることとなる。
【０００９】
そこで、本発明は、上記のような問題を解決するものであり、検索対象データベースにおける検索に際し、不要な検索処理を削減し、より高速な検索を行うことのできる検索システム及び検索方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記課題を解決するために本発明は、通信ネットワーク上に分散配置された検索サーバ装置によりデータの検索を行う検索システムであって、検索の対象となる検索対象データを分類情報に基づいて分類するとともに、検索対象データの特性を示す属性情報を付して、検索対象データを格納する検索対象データベースと、分類情報及び属性情報を含む検索要求を受信する検索要求受信部と、検索対象データベースに格納された分類情報及び検索要求に含まれた分類情報を不可逆な一方向関数により符号化する変換処理部と、符号化された分類情報同士を比較し、この比較結果に基づいて検索対象データベースから検索対象を検索する比較部とを有する。
【００１１】
このような請求項１に係る検索システムによれば、検索要求があった際に、検索対象の分類情報と、検索要求に含まれる分類情報とを比較し、分類情報が一致した場合にのみ検索対象データを検索することができ、不要な検索処理を削減することができ、検索処理の高速化を図ることができる。さらに、本発明では、分類情報は符号化されていることから、高速での比較が可能となる。
【００１２】
請求項２に係る発明の検索システムにおいて、検索対象データの分類情報は、検索対象が格納された検索対象データベース上におけるアドレス情報と関連付けられたテーブルデータに格納され、比較部は、テーブルデータに基づいて、検索対象データベースの検索を行うことが好ましい。このような請求項２に係る検索システムによれば、分類情報の比較の際に、検索対象データの格納先をも検出することができるため、より高速な検索が可能となる。
【００１３】
請求項３に係る発明の検索システムにおいて、不可逆な一方向関数は、ハッシュ関数であることが好ましい。このような請求項３に係る検索システムによれば、ハッシュ値に基づく高度な分類情報の検索が可能となる。
【００１４】
請求項４に係る検索方法は、通信ネットワーク上に分散配置された検索サーバ装置によりデータの検索を行う検索方法であって、検索の対象となる検索対象データを分類情報に基づいて分類するとともに、検索対象データの特性を示す属性情報を付して、検索対象データを検索対象データベースに格納するステップと、分類情報及び属性情報を含む検索要求を受信するステップと、検索対象データベースに格納された分類情報及び検索要求に含まれた分類情報を不可逆な一方向関数により符号化するステップと、符号化された分類情報同士を比較し、この比較結果に基づいて検索対象データベースから検索対象を検索するステップとを有する。
【００１５】
このような請求項４に係る検索方法によれば、検索要求があった際に、検索対象の分類情報と、検索要求に含まれる分類情報とを比較し、分類情報が一致した場合にのみ検索対象データを検索することができるため、不要な検索処理を削減することができ、検索処理の高速化を図ることができる。
【００１６】
【発明の実施の形態】
以下に添付図面を参照して、本発明に係る検索方式の実施形態を詳細に説明する。図１は、本実施形態に係る検索システムの全体構成を示す概念図である。
【００１７】
図１に示すように、通信ネットワーク２０には、ユーザが使用するユーザ端末１０と、複数のノード装置（検索サーバ装置）３０が分散配置されて接続されており、ユーザは、ユーザ端末１０から、通信ネットワーク２０を介して、検索要求を任意のノード装置に送信し、その要求に応じて検索を実行したノード装置３０が、検索結果をユーザ端末１０に返信する。
【００１８】
図２は、本実施形態に係るノード装置の内部構造を示すブロック図である。同図に示すように、各ノード装置３０は、登録メタデータ受信部３１と、検索要求受信部３２と、変換処理部３３と、登録部３４と、検索結果送信部３５と、比較部３６と、検索対象データベースであるメタデータデータベース３７と、ハッシュ値を格納するハッシュテーブルデータベース３８とを備えている。
【００１９】
登録メタデータ受信部３１は、ユーザがメタデータの登録を行う際に、ユーザからの登録要求を受けるモジュールであり、登録メタデータ受信部３１で受けたメタデータは変換処理部３３に送出される。また、検索要求受信部３２は、検索を実行する際に、通信ネットワーク２０を通じてユーザ端末１０から登録要求を受けるモジュールであり、検索要求受信部３２で受けた検索要求は、変換処理部３３に送出される。
【００２０】
変換処理部３３は、登録メタデータ受信部３１で入力されたメタデータの分類情報であるクラス名を、ハッシュ関数によりハッシュ値に変換し、登録部３４に出力するモジュールである。また、この変換処理部３３は、検索要求受信部３２から入力された検索要求に含まれる検索条件クラスをハッシュ関数によりハッシュ化し、比較部３６へ出力する。
【００２１】
登録部３４は、変換処理部３３から受信したメタデータをメタデータデータベース３７に登録するとともに、変換したハッシュ値を、メタデータの格納先のアドレス情報に対応付けてハッシュテーブルとしてハッシュテーブルデータベース３８に格納する。なお、本実施形態においてノード装置３０が保有するハッシュテーブルの大きさは、任意の長さである。
【００２２】
比較部３６は、受信した検索条件クラスのハッシュ値と、ハッシュテーブルとの比較を行い、メタデータデータベース３７に検索条件クラスのメタデータが存在するかを調べる。そこで検索対象メタデータが存在する場合、比較部３６は、検索条件プロパティ、プロパティバリューとメタデータデータベース３７が持つメタデータとの比較を行う。
【００２３】
検索結果送信部３５は、通信ネットワーク２０を通じて検索要求送信元であるユーザ端末１０に検索結果を送信するモジュールであり、当該ノード装置３０が検索条件を満たすメタデータを保有している場合はそのメタデータを、保有していなければ検索結果がない旨を検索要求送信者に対して送信する。
【００２４】
（登録処理）
ここで、登録部３４によるハッシュ値の登録処理手順について説明する。図３は、登録処理手順を示すフローチャート図である。
【００２５】
図３に示すように、先ず、変換処理部３３から出力されたハッシュ値とクラス名（テキスト）が、登録部３４により受信される（ステップＳ３０１）。受信された新たなハッシュ値とハッシュテーブルを比較して、受信したハッシュ値が既に登録されているか否かを確認する（ステップＳ３０２）。登録されていない場合は、受信したハッシュ値をハッシュテーブルに登録する（ステップＳ３０３）。登録されている場合、既にメタデータデータベースに同様のクラスメタデータが存在しているため、登録処理は行わない（ステップＳ３０４）。そして、受信したメタデータは、メタデータデータベースに登録される（ステップＳ３０５）。
【００２６】
このようにメタデータの登録時に、メタデータの登録だけではなく、クラス名をハッシュ値に変換し、ハッシュテーブルとして登録しておくことにより、検索実行時に検索条件で指定されているクラスメタデータを保有しているか否かを高速に確認することができ、検索時にあっては、不要な検索を削減し、高速なマッチングが可能となる。
【００２７】
図４は、上記登録処理におけるデータの流れを示す説明図である。なお、図４では、登録するメタデータのクラスが未登録である場合を登録処理（１）として、一方、登録済みの場合を登録処理（２）として示している。
【００２８】
先ず登録処理（１）では、変換処理部３３からメタデータとハッシュ値ＸＸＸを受信する（Ｓ４０１）。そこで受信したハッシュ値ＸＸＸが、ハッシュテーブルに登録されているかを確認する（Ｓ４０２）。ステップＳ４０２の処理によりハッシュ値ＸＸＸは登録されていないことが確認された場合、現在の登録対象のハッシュ値をハッシュテーブルに登録する（Ｓ４０３）。ハッシュ値の登録終了後、メタデータをメタデータデータベースに登録する（Ｓ４０４）。
【００２９】
一方、登録処理（２）の場合にも、登録処理（１）同様に変換装置からメタデータとハッシュ値ＸＸＸを受信し（Ｓ４０１）、受信したハッシュ値ＸＸＸが、ハッシュテーブルに登録されているかを確認する（Ｓ４０２）。ここで確認を行った結果、ハッシュ値ＸＸＸが既に登録されていた場合は、特にハッシュ値の登録処理は行わずに、メタデータの登録処理を行う（Ｓ４０４）。
【００３０】
（比較処理）
次に、検索要求時における検索条件とハッシュテーブルとを比較する処理について説明する。図５は、検索要求時における比較処理を示すフローチャート図である。
【００３１】
図５に示すように、先ず、変換処理部３３より検索条件のクラスハッシュ値並びに検索条件文字列を受信する（ステップＳ５０１）。受信した検索条件クラスハッシュ値と、ハッシュテーブルの比較を行う（ステップＳ５０２）。ここで、検索条件クラスハッシュ値と同様の値がハッシュテーブルに登録されていた場合は、続いて検索条件文字列とメタデータデータベースが保持するメタデータとの比較を行う（ステップＳ５０３）。また、検索条件クラスハッシュ値と同様の値がハッシュテーブルに登録れていない場合には、検索結果送信部に対して検索結果無を通知する（ステップＳ５０４）。
【００３２】
さらに、ステップＳ５０３にて行った比較の結果、メタデータデータベースに検索条件を満たすメタデータが存在していた場合、検索結果送信部に対して検索結果メタデータを送信する（ステップＳ５０５）。ここで検索条件を満たすメタデータが存在していない場合は、検索結果送信部に対して、検索結果無を通知する。
【００３３】
図６は、上記検索処理におけるデータの流れを示す説明図である。なお、図６では、検索対象であるメタデータが存在する場合を比較処理（１）として、一方、存在しない場合を比較処理（２）として示している。
【００３４】
先ず、比較処理（１）では、変換装置から検索条件文字列（クラス・プロパティ・プロパティバリュー）とハッシュ値ＸＸＸを受信する（ステップＳ６０１）。そこで受信したハッシュ値ＸＸＸが、ハッシュテーブルに登録されているかを確認する（ステップＳ６０２）。
【００３５】
ステップＳ６０２の処理によりハッシュ値ＸＸＸは登録されていることが確認された場合、検索条件文字列とメタデータデータベースの比較を行う（ステップＳ６０３）。（ステップＳ６０４）の処理により、検索条件に適合するメタデータが得られた場合、そのメタデータを検索結果送信部に送信する（ステップＳ６０４）。
【００３６】
さらに、比較処理（２）の場合にも、比較処理（１）同様に、変換装置から検索条件文字列とハッシュ値ＸＸＸを受信し（ステップＳ６０１）、受信したハッシュ値ＸＸＸが、ハッシュテーブルに登録されているかを確認する（ステップＳ６０２）。この確認を行った結果、ハッシュ値ＸＸＸが登録されていないことが確認された場合、検索結果送信部に検索結果無しの通知を行う（ステップＳ６０４）。
【００３７】
このように、検索に際し、先ずハッシュ値によるメタデータの有無確認を行うことにより、無駄な検索を避けることができ、高速な検索が可能となる効果を奏する。
【００３８】
【発明の効果】
以上述べたように、この発明によれば、各検索サーバ装置が、保有する検索対象データの分類情報を符号化した上で登録し、検索に際しては、先ず分類情報のマッチングを行い、分類情報が存在する場合にのみ検索対象データの検索を行うため、不要な検索処理の削減による処理の高速化を図ることが可能となる。
【図面の簡単な説明】
【図１】実施形態に係る検索システムの全体構成を示す概念図である。
【図２】実施形態に係るノード装置の内部構造を示すブロック図である。
【図３】実施形態における登録処理手順を示すフローチャート図である。
【図４】実施形態に係る登録処理におけるデータの流れを示す説明図である。
【図５】実施形態に係る検索要求時における比較処理を示すフローチャート図である。
【図６】実施形態に係る検索処理におけるデータの流れを示す説明図である。
【図７】従来のメタデータ検索の方法を説明する図である。
【符号の説明】
１０…ユーザ端末
２０…通信ネットワーク
３０…ノード装置
３１…登録メタデータ受信部
３２…検索要求受信部
３３…変換処理部
３４…登録部
３５…検索結果送信部
３６…比較部
３７…メタデータデータベース
３８…ハッシュテーブルデータベース
【図１】
2005025561.tif 000003
【図２】
2005025561.tif 000004
【図３】
2005025561.tif 000005
【図４】
2005025561.tif 000006
【図５】
2005025561.tif 000007
【図６】
2005025561.tif 000008
【図７】
2005025561.tif 000009