(57)【特許請求の範囲】
【請求項１】
検索対象となる登録名標を予め分類し、曖昧性を含む記号であるワイルドカードが含まれていない登録名標のみが登録されるハッシュテーブルと、登録名標の文字列の先頭からのワイルドカードまでの有効文字数毎に登録される複数のハッシュテーブルを用いて、入力された検索名標の検索を行なう名標検索装置であって、
前記複数のハッシュテーブルに前記登録名標を登録する登録手段と、
前記検索名標につき、前記登録手段により登録されたハッシュテーブルのうち、前記ワイルドカードが含まれていない登録名標が登録されているハッシュテーブルを最初に検索し、検索できなかった場合には、前記登録名標の文字列の先頭から前記ワイルドカードまでの文字数が多い順に検索するよう検索順序を設定する検索順序設定手段と、
前記検索順序設定手段が設定した検索順序で前記検索名標に近似または一致する名標を前記ハッシュテーブルから検索する検索手段と、
を有することを特徴とする名標検索装置。
【請求項２】
前記登録手段は、
前記登録名標の先頭に前記ワイルドカードが存在する場合には、該ワイルドカードが先頭に位置するエントリ及び該ワイルドカードを含む該登録名標の文字数に対応するハッシュテーブルの位置に、該登録名標の先頭から２文字目から末尾までの文字を登録する先頭位置ワイルドカード名標登録手段を含む請求項１記載の名標検索装置。
【請求項３】
前記登録手段は、
前記登録名標の先頭以外の位置に前記ワイルドカードが存在する場合には、該登録名標の先頭から該ワイルドカード迄の文字数に対応するエントリ及び該ワイルドカードを含む該登録名標の文字数に対応するハッシュテーブルの位置に、該ワイルドカードが存在する位置までの該登録名標の文字を登録する中間位置ワイルドカード名標登録手段を含む請求項１記載の名標検索装置。
【請求項４】
前記登録手段は、
前記登録名標に前記ワイルドカードが存在しない場合には、該ワイルドカードを含まないエントリ及び該登録名標の文字数に対応するハッシュテーブルの位置に、該登録名標の全ての文字を登録する非ワイルドカード名標登録手段を含む請求項１記載の名標検索装置。
【請求項５】
前記検索順序設定手段は、
前記検索名標の検索対象とする文字数を１ずつ減算して、前記ハッシュテーブルより検索するよう検索順序を設定する手段を含む請求項１記載の名標検索装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、名標検索装置に係り、特に、あるインデックスや、単語をファイルやデータベースより検索する場合に、検索対象となるデータをそのデータが有する何らかの値（関数）をキーとしていくつかに分類されたグループより検索する名標検索装置に関する。
【０００２】
【従来の技術】
従来の名標検索装置として、まず、検索対象データとして、文字列を入力すると、当該文字列をキーとして、ファイルをシーケンシャルに総当たり的に検索する方法がある。
【０００３】
また、検索対象データが包含されるグループ名と検索対象データを指定して、当該クループに属するデータを当該グループの先頭のデータからシーケンスに検索する方法がある。
また、検索対象のデータが曖昧である場合には、曖昧検索を用いて、曖昧な検索対象データを入力すると、検索された複数の検索候補からユーザが最適であるデータを選択する方法がある。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の検索方法は、ファイルやデータベース等から検索対象データを検索する場合には、シーケンシャルに検索するため、ファイル内のデータ量に比例して検索時間が多大になるという問題がある。
【０００５】
また、グループ化されたデータの検索においても、ファイル全体を検索するのに比較して、多少検索時間が短縮されるが、分類されているグループ名が不明である場合には使用できない。
また、曖昧検索においては、検索候補にユーザが望むデータが提示されるまでに、種々検索対象データを入力し、試行錯誤により候補を提示して選択するという処理が必要となり、検索対象データが曖昧な程時間を要する。
【０００６】
本発明は、上記の点に鑑みなされたもので、上記従来の問題点を解決し、入力されたキーワードに対して近似する名標を検索・出力可能な名標検索装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
第１の発明は、検索対象となる登録名標を予め分類し、曖昧性を含む記号であるワイルドカードが含まれていない登録名標のみが登録されるハッシュテーブルと、登録名標の文字列の先頭からのワイルドカードまでの有効文字数毎に登録される複数のハッシュテーブルを用いて、入力された検索名標の検索を行う名標検索装置であって、
複数のハッシュテーブルに登録名標を登録する登録手段と、
検索名標につき、登録手段により登録されたハッシュテーブルのうち、ワイルドカードが含まれていない登録名標が登録されているハッシュテーブルを最初に検索し、検索できなかった場合には、登録名標の文字列の先頭からワイルドカードまでの文字数が多い順に検索するよう検索順序を設定する検索順序設定手段と、
検索順序設定手段が設定した検索順序で検索名標に近似または一致する名標をハッシュテーブルから検索する検索手段と、を有する。
【０００８】
これにより、第１の発明は、ワイルドカードの有効文字数毎に、ハッシュテーブルを作成し、名標の定義を行い、検索時には入力されたキーワードに基づいて当該ハッシュテーブルを検索することにより、ワイルドカードを含む名標の定義を、１つのハッシュテーブルで管理して検索することができる。ハッシュテーブルは、検索対象となるデータを当該データが有する何等かの値をキーとしていくつかのグループ毎に分類することで検索の速度を上げることが可能なテーブルである。本発明では、文字列中任意の文字で置き換え可能なワイルドカードが文字列内に存在する検索対象文字列において、当該ワイルドカードの位置以前の有効文字数毎、及び検索対象文字列数毎にハッシュテーブルを作成することにより、検索名標が入力された場合に、当該ワイルドカード位置以前の有効文字数及び検索対象文字列数に対応するハッシュテーブルの位置を特定して検索することにより検索時間が短縮できる。
【０００９】
また、登録手段により、ワイルドカード迄の有効文字数毎、キーワード文字数毎に名標が登録されているため、検索時には、これらのテーブルを辿ればよい。
また、ワイルドカードが含まれていない名標が登録されているハッシュテーブルから検索し、以降入力されたキーワードに基づいて有効文字数が多い順に検索するよう検索順序を設定することにより、有効文字数が多い、つまり、ワイルドカードではないものを最初に検索し、検索できない場合には、検索対象となる名標の有効文字数を減らして検索を行なうため、検索精度が向上する。
第２の発明の登録手段は、登録名標の先頭にワイルドカードが存在する場合には、該ワイルドカードが先頭に位置するエントリ及び該ワイルドカードを含む該登録名標の文字数に対応するハッシュテーブルの位置に、該登録名標の先頭から２文字目から末尾までの文字を登録する先頭位置ワイルドカード名標登録手段を含む。
【００１０】
これにより、ワイルドカード迄の有効文字数毎、キーワード文字数毎にハッシュテーブルに登録することにより、有向文字数毎、キーワード文字数毎にグループ化して登録することが可能である。
また、第３の発明の登録手段は、登録名標の先頭以外の位置にワイルドカードが存在する場合には、該登録名標の先頭から該ワイルドカード迄の文字数に対応するエントリ及び該ワイルドカードを含む該登録名標の文字数に対応するハッシュテーブルの位置に、該ワイルドカードが存在する位置までの該登録名標の文字を登録する中間位置ワイルドカード名標登録手段を含む。
【００１１】
これにより、どの登録名標のどの位置にワイルドカードが存在していても、ワイルドカード以前の文字を登録することが可能である。つまり、ワイルドカードが登録名標の末尾に存在する場合には、文字列の末尾より１つ前までの文字列を登録する。
【００１２】
第４の発明の登録手段は、登録名標にワイルドカードが存在しない場合には、該ワイルドカードを含まないエントリ及び該登録名標の文字数に対応するハッシュテーブルの位置に、該登録名標の全ての文字を登録する非ワイルドカード名標登録手段を含む。
【００１３】
これにより、本発明は、検索名標が入力された場合に、ワイルドカードを含まないエントリ（有効文字のみ）を最優先して検索するため、このときハッシュテーブルの先頭（検索順序が最優先される位置）に登録しておくため、当該検索対象を短時間で検索することが可能となる。
【００１６】
第５の発明の検索順序設定手段は、
検索名標の検索対象とする文字数を１ずつ減算して、ハッシュテーブルより検索するよう検索順序を設定する。
これにより、入力されたキーワードの有効文字数を１ずつ減算して、当該キーワード文字数に対応するハッシュテーブルを検索していくことにより、ワイルドカードまでの有効文字数及びキーワードの文字数に対応するハッシュテーブルのグループを順に検索することにより、総当りで検索する場合に比較して検索時間が短縮される。
【００１７】
【発明の実施の形態】
図１は、本発明の名標検索装置の構成を示す。同図に示す名標検索装置は、登録要求に基づいて登録名簿等の登録名標を登録する登録部１００、登録部１００により登録された名標を格納する辞書部２００、検索名標等の検索要求に応じて検索名標により辞書部２００を検索して、名標を取得する検索部３００より構成される。
【００１８】
上記の構成において、辞書部２００の構成を説明する。図２は、本発明の辞書部の構成を示す。同図に示す様に辞書部２００は、文字列の先頭からワイルドカードまでの文字数を示すワイルドカード位置情報テーブル（以下、テーブルＷと記す）、ワイルドカードを含む文字数テーブル（以下、テーブルＨと記す）及びワイルドカード無し、または、ワイルドカードを有するエントリを登録するハッシュテーブルより構成される。
【００１９】
同図の例において、登録名標が「ワイルドカード無し」である場合には、ワイルドカード“＊”を含まない文字列をハッシュテーブルに登録する。例えば、「ワイルドカード無し」かつキーワードの有効文字数が“３１”である場合には、テーブルＷの項目“ワイルドカード無し”からキーワード数“３１”のテーブルＨを辿り、ハッシュテーブルには、“＊”を含まない３１文字の文字列が設定される。
【００２０】
また、例えば、名標の文字列の２番目にワイルドカードが含まれている名標を登録する場合には、『ａ＊』は、図２に示すように、テーブルＷの項目が「ワイルドカード迄１文字」を辿り、かつキーワードの文字数が「２」であるテーブルＨを辿り、ハッシュテーブルの該当位置に登録される。同図の例では、ハッシュテーブルの最も上に登録されている。
【００２１】
図３は、本発明の登録部の動作を説明するためのフローチャートである。
ステップ１０１）  登録部１００は、まず、登録名標にワイルドカードが含まれるかを判定し、含まれない場合にはステップ１０２に移行し、含まれている場合にはステップ１０４に移行する。
【００２２】
ステップ１０２）  辞書部２００のワイルドカード無しのハッシュテーブルを指定する。図２の例では、テーブルＷの最も下位に位置する“ワイルドカード無し”を辿り、登録名標の文字数に対応するテーブルＨを辿る。
ステップ１０３）  名標をテーブルＨの文字数に対応するハッシュテーブルの該当位置に登録する。登録処理を終了する。
【００２３】
ステップ１０４）  ステップ１０１において、登録名標にワイルドカードが指定されている場合において、当該ワイルドカードを含む登録名標がワイルドカードのみであるか判断し、全文字列がワイルドカードである場合には、ステップ１０５に移行し、そうでない場合には、ステップ１０７に移行する。
【００２４】
ステップ１０５）  登録名標の文字列が全てワイルドカードである場合には、ハッシュテーブルのエントリは、ワイルドカードのみとなる。
ステップ１０６）  エントリがワイルドカードのみであるため、ハッシュテーブルに検索対象候補として設定する。
【００２５】
ステップ１０７）  次に、登録名標の文字列の先頭にワイルドカードが存在しているかを判定し、先頭にある場合には、ステップ１０８に移行し、先頭以外の位置にある場合にはステップ１１１に移行する。
ステップ１０８）  ワイルドカードが文字列の先頭に存在している場合には、テーブルＷのワイルドカードが先頭のエントリを辿る。
【００２６】
ステップ１０９）  ワイルドカード（＊）を含む文字数に対応するテーブルＨを辿る。
ステップ１１０）  先頭から２文字目から末尾までの文字をテーブルＨで指し示されるハッシュテーブルの該当する位置に、登録名標を設定し、登録処理を終了する。
【００２７】
ステップ１１１）  ステップ１０７において、登録名標が有するワイルドカードの位置が先頭以外の位置にある場合には、先頭からワイルドカード迄の文字数に対応するテーブルＷのエントリを辿る。
ステップ１１２）  ワイルドカードを含む文字数のキーワード（Ｈ）を辿る。
【００２８】
ステップ１１３）  ワイルドカード指定位置までの文字数に該当するハッシュテーブルの位置に、登録名標を設定し、登録処理を終了する。
上記の登録部１００により登録する登録名標としては、例えば、『＊＊＊』のようにワイルドカードのみから構成されるもの、『ａｂｃｄ』のようにワイルドカードを含まないものと、『＊ａｂ』のように名標の先頭にワイルドカードを有するもの、『ａｂ＊ｃｄ』のように名標の中間にワイルドカードを有するもの、『ａｂｃｄ＊』のように名標の末尾部分にワイルドカードを有するもの等がある。これは、それぞれ、登録の方法が異なる。
【００２９】
登録名標がワイルドカードのみで作成されている場合には検索対象の候補として設定する。
また、登録名標がワイルドカードを含まない場合には、ワイルドカードなしのハッシュテーブルに登録する。
【００３０】
登録名標の先頭にワイルドカードが存在する場合には、先頭の２文字目から末尾までの文字をハッシュテーブルに登録する。
登録名標の先頭以外にワイルドカードが存在する場合には、ワイルドカード指定位置までの文字をハッシュテーブルに登録する。
【００３１】
次に、検索部３００の処理を説明する。
図４、図５は、本発明の検索部の動作を説明するためのフローチャートであり、そのうち、図５は、検索名標の先頭にワイルドカードが存在する場合の動作を示す。
【００３２】
ステップ２０１）  最初に、検索名標として、文字数を“ＡＬＬ”即ち、ワイルドカードを含まない文字列を設定する。
ステップ２０２）  ここでは、ワイルドカードを含まない名標を検索するため、辞書部２００の「ワイルドカード無し」のテーブルＷを辿り、ワイルドカード無しに該当する名標の文字数に対応するハッシュテーブルを検索する。
【００３３】
ステップ２０３）  ハッシュッテーブルを検索した結果、検索名標が見つかった場合には、ステップ２３０に移行し、見つからなかった場合にはステップ２０４に移行する。
ステップ２０４）  ステップ２０３において、ハッシュテーブルから検索名標が見つからなかった場合には、検索名標の文字列の先頭からワイルドカードまでの文字数Ｗを検索名標の文字列の数より１引く。（Ｗ＝ＡＬＬ−１）
ステップ２０５）  ここで、Ｗの値が０である場合には、ステップ２２７に移行する。
【００３４】
ステップ２０６）  ステップ２０５においてＷ≠０である場合には、Ｗ≧１であるかを判定し、Ｗ≧１である場合にはステップ２０７に移行し、そうでない場合には、ワイルドカードが先頭に存在しているためステップ２１９に移行する。
ステップ２０７）  Ｗ文字に対応するテーブルＷを辿る。
【００３５】
ステップ２０８）  キーワードの数（Ｈ）を検索名標の文字列の数とする。
ステップ２０９）  文字数がＨに対応するテーブルＨの位置からハッシュエントリを辿る。
ステップ２１０）  Ｗ文字まで一致するかを判定し、一致する場合にはステップ２１１に移行し、不一致の場合には、ステップ２１４に移行する。
【００３６】
ステップ２１１）  キーワードの数（Ｈ）から１を引いた数とＷが一致するか判定する。一致する場合には、検索対象が見つかったのでステップ２３０に移行する。不一致の場合には、検索対象は見つからないためステップ２１２に移行する。
【００３７】
ステップ２１２）  検索名標の文字列の（ＡＬＬ−Ｈ＋Ｗ＋２）番目の文字から文字列末までと、Ｗ＋２文字目から文字列末までを比較する。
ステップ２１３）  比較の結果一致した場合には、検索対象が見つかったことになるので、ステップ２３０に移行する。
【００３８】
ステップ２１４）  比較の結果不一致の場合には、続くエントリがあるかを判定し、ある場合にはステップ２１５に移行し、ない場合にはステップ２１６に移行する。
ステップ２１５）  次のエントリを対象とする処理を行うためにステップ２１０に移行する。
【００３９】
ステップ２１６）  キーワード（Ｈ）から１引く（Ｈ＝Ｈ−１）。
ステップ２１７）  キーワード（Ｈ）と先頭からワイルドカードまでの文字数（Ｗ）が一致すればステップ２１８に移行し、不一致の場合にはステップ２０９に移行する。
【００４０】
ステップ２１８）  ＨとＷが一致した場合には、先頭からワイルドカードまでの文字数（Ｗ）から１を引き、ステップ２０６に移行する。
ステップ２１９）  以降の処理は、ワイルドカードが先頭にある場合の処理である。まず、キーワード数（Ｈ）を検索名標の全文字数（ＡＬＬ）とする。
【００４１】
ステップ２２０）  （ＡＬＬ−Ｈ＋２）番目の文字から、検索名標の文字列末迄のハッシュテーブルの位置を求める。
ステップ２２１）  文字数がＨのテーブルを辿り、対応するハッシュテーブルのエントリの位置を決める。
【００４２】
ステップ２２２）  （ＡＬＬ−Ｈ＋２）番目の文字から文字列末迄と２文字目から文字列末を比較する。
ステップ２２３）  比較の結果、一致した場合には、検索対象が見つかったことになるため、ステップ２３０に移行し、不一致の場合には、ステップ２２４に移行する。
【００４３】
ステップ２２４）  次に続くエントリがある場合にはステップ２２５に移行し、ない場合には、ステップ２２６に移行する。
ステップ２２５）  次のエントリを処理対象としてステップ２２２に移行する。
【００４４】
ステップ２２６）  次に続くエントリがない場合には、キーワード数（Ｈ）から１引く。
ステップ２２７）  キーワード数（Ｈ）が１であるかを判定し、１でない場合にはステップ２２０に移行し、１である場合には、ステップ２２８に移行する。
【００４５】
ステップ２２８）  “＊”のみであるかを判定し、＊のみである場合にはステップ２３０に移行し、そうでない場合にはステップ２２９に移行する。
ステップ２２９）  この場合には、検索対象が検索されなかったものとしてメッセージ等を出力する。
【００４６】
ステップ２３０）  検索対象が検索されたため、検索対象として設定する。
【００４７】
【実施例】
以下に、本発明の実施例を図面と共に説明する。
〈名標登録〉
図６は、本発明の一実施例の登録対象の登録名標を登録する際の第１の例を説明するための図である。
【００４８】
最初に、辞書部２００に名標を登録する処理について説明する。
第１の例として、登録対象『ａ＊ｚｚ』を登録する場合について説明する。当該登録対象名標は、ワイルドカード“＊”が名標の文字列の先頭から２番目に位置している例である。以下に図３のフローチャートに沿って、ワイルドカードを含む登録名標の登録処理を説明する。
【００４９】
まず、この登録名標は、先頭から２文字目にワイルドカードが設定されているため、ステップ１０１において、ワイルドカード指定有りとなるため、ステップ１０４の処理に移行する。ここでは、登録名標の文字列には有効文字も含まれるため、ステップ１０７に移行する。ステップ１０７では、ワイルドカードが先頭ではないため、ステップ１１１の処理移行する。ここで、ワイルドカード位置に該当するエントリは、図６の例において、先頭からワイルドカードまでの文字数が１文字であるため、テーブルＷの『ワイルドカード迄一文字』のエントリを辿る（▲１▼）。
【００５０】
次に、キーワード数が４文字であるため、テーブルＨのキーワードのエントリ（▲２▼）を辿る。
最後に、テーブルＨから見たハッシュテーブル上の▲３▼の位置に登録される（ステップ１１１、１１２、１１３）。
【００５１】
次に、第２の例として、先頭にワイルドカードが存在する登録対象『＊ｃｃｃ』を登録する場合について説明する。図７は、本発明の一実施例の登録対象名標を登録する際の第２の例を説明するための図である。
この登録対象名標『＊ｃｃｃ』の登録動作を図３のフローチャートに沿って説明する。
【００５２】
まず、この登録名標は、先頭にワイルドカードが設定されているため、ステップ１０１において「ワイルドカード有り」と判定され、ステップ１０４の処理に移行する。ここでは、“ｃｃｃ”の有効文字も存在するため、ステップ１０７に移行する。ここで、ワイルドカードが先頭に位置するため、ステップ１０８に移行する。
【００５３】
辞書部２００のテーブルＷのワイルドカードが先頭のエントリ（▲１▼）を辿る。次に、登録名標の全文字数は４文字であるため、テーブルＨのキーワード数（Ｈ＝４）のエントリ（▲２▼）を辿る。
最後に、先頭から２文字目から末尾までの文字数に該当するハッシュテーブル上の▲３▼の位置に登録される（ステップ１０８，１０９，１１０）。
【００５４】
〈名標検索〉
次に、名標検索の例を説明する。
名標検索の第１の例として、ワイルドカード“＊”を含まない文字列である検索対象名標『ａｂｃｚｚ』を検索するものとする。図８は、本発明の一実施例の検討対象名標を検索する際の第１の例を説明するための図である。同図に示すハッシュテーブルには、検索名標『ａｂｃｚｚ』は登録されていないものとして説明する。
【００５５】
まず、全文字数（ＡＬＬ）を５と設定し（ＡＬＬ＝５）（ステップ２０１）、ワイルドカード指定なしのテーブルＷ（▲１▼）を検索する（ステップ２０２）。ここで、テーブルＨを辿りハッシュテーブルを検索しても当該ハッシュテーブルには『ａｂｃｚｚ』は登録されていないので、検索できない（ステップ２０３，Ｎｏ）。
【００５６】
これにより、先頭からワイルドカード迄の文字数（Ｗ＝５）から１を減算して、ワイルドカード迄４文字のテーブルＷ（▲２▼）を検索する（ステップ２０４）。ここで、Ｗ＝４であり、Ｗ＝０ではないので（ステップ２０５、Ｎｏ）、Ｗ＝４でハッシュ値を求める（ステップ２０７）。検索名標の総文字数は５文字であるため、Ｈ＝５とし、テーブルＨの▲３▼の位置を辿る（ステップ２０８）。
【００５７】
次に、文字数がＨ（＝５）キーワードに該当する位置▲３▼からハッシュテーブル▲４▼の位置を参照する（ステップ２０９）。しかし、図８の例では、該当するものが存在しないため、Ｗ＝Ｗ−１とし、ワイルドカードまで３文字のテーブルＷのエントリ（▲５▼）を辿る。
【００５８】
この場合もハッシュテーブルには、該当するものが存在しないため、さらに、Ｗ＝Ｗ−１としてワイルドカード迄２文字のエントリ（▲６▼）を辿る。
この場合もハッシュテーブルには、該当するものが存在しないため、Ｗ＝Ｗ−１としてワイルドカードまで１文字のエントリ（▲７▼）を辿る。このときのキーワード数はＨ＝４であるため、キーワードＨのエントリ（▲８▼）からハッシュテーブル（▲９▼）のエントリを見ると、“ａ＊ｚｚ”が存在するため、当該“ａ＊ｚｚ”を検索結果として取得できる。
【００５９】
即ち、上記の例では、ＡＬＬ（＝５）−Ｈ（＝４）＋Ｗ（＝１）＋２＝４、及びＷ（＝１）＋２＝３となり、ステップ２１２により比較した結果『ａｂｃｚｚ』の“ｚｚ”と『ａ＊ｚｚ』の“ｚｚ”をステップ２１３で比較することにより、検索が成功する。
【００６０】
次に、本発明をデータベース検索に適用した例を説明する。
図９は、本発明の一実施例のデータベース検索に本発明を適用した例を示す。同図に示すシステムは、図１に示した構成に端末４００とデータベース５００を付加したものである。データベース５００は、辞書２００に登録されている名標毎にデータが登録されているものとする。
【００６１】
登録部１００によって、辞書に名標を登録しておき、検索部３００により検索要求により入力されたキーワード（検索名標）を用いて辞書２００から名標を検索して端末４００に表示する。ここで、ユーザが当該名標によるデータベース５００の検索要求を発行すると、検索部３００は、データベース５００を検索し、取得した名標に対応するデータを端末４００に提供する。
【００６２】
このように、本発明によれば、データベース検索において入出力装置４００から検索名標を入力し、辞書２００から取得した名標に基づいてデータベース５００を検索することが可能であるため、情報検索時においてキーワードを容易に指定することが可能となる。
【００６３】
なお、本発明は、上記の実施例に限定されることなく特許請求の範囲内で種々変更・応用が可能である。
【００６４】
【発明の効果】
本発明によれば、ワイルドカードまでの有効文字数と、キーワード数毎にハッシュテーブルをグループ分けして登録しているため、ワイルドカードを含む名標の検索時には、入力されたキーワード（検索対象名標）の有効文字数に応じてハッシュテーブルを検索することにより、上記のようにグループ分けされているハッシュテーブルにおける検索対象の位置を絞り込んで、位置を特定し、検索対象の検索を行なうことにより、効率のよい検索が可能となる。
【００６５】
本発明によれば、登録名標の先頭にワイルドカードが存在する場合には、登録名標の２番目の文字以降以降をハッシュテーブルに登録するため、検索対象名標により検索時に有効文字による検索が可能となる。つまり、検索名標の文字列の第１番目の文字が何であっても、２番目以降の文字列において一致していれば検索が可能となる。
【００６６】
本発明によれば、登録名標の先頭以外の位置にワイルドカードが含まれている場合には、ワイルドカードの存在している位置以前の有効文字を登録するため、検索対象により検索時に有効文字による検索が可能となる。従って、例えば、検索名標の２文字までが一致した検索対象を候補として出力することが可能となる。これにより、データベース検索に適用した場合に、当該検索対象候補を用いて検索することにより、所望のデータベース検索結果を取得することが可能となる。
【００６７】
本発明によれば、ワイルドカードが登録名標に存在しない場合には、文字列全て（有効文字）をハッシュテーブルに登録することにより、検索対象名標が入力された場合に、最初に当該名標が検索されるため、検索速度が速くなり、検索効率が良くなる。
【００６８】
本発明によれば、有効文字数の多い順に検索することにより、検索対象名標に最も近似する検索名標を短時間で取得することができる。
本発明によれば、検索対象となる名標の文字数を１ずつ引いて、有効文字数を減らすと共に、グループ分けされているワイルドカードまでの有効文字数と、キーワード数毎に検索することにより、総当りで検索を行なう方法とは異なり、ワイルドカードまで有効文字数が多い順に検索することにより、検索効率が向上する。
【００６９】
さらに、本発明をデータベースの検索システムに適用した場合においても、キーワード入力時において、ハッシュテーブルを有する辞書を検索して取得した検索名標を用いて、データベースを検索することにより、効率のよいキーワードの取得が可能となる。
【図面の簡単な説明】
【図１】本発明の名標検索装置の構成図である。
【図２】本発明の辞書部の構成図である。
【図３】本発明の登録部の動作を説明するためのフローチャートである。
【図４】本発明の検索部の動作を説明するためのフローチャート（その１）である。
【図５】本発明の検索部の動作を説明するためのフローチャート（その２）である。
【図６】本発明の一実施例の登録対象名標を登録する際の第１の例を説明するための図である。
【図７】本発明の一実施例の登録対象名標を登録する際の第２の例を説明するための図である。
【図８】本発明の一実施例のワイルドカードを含まない検索対象名標を検索する際の例を説明するための図である。
【図９】本発明の一実施例のデータベース検索に本発明を提供した例を示す図である。
【符号の説明】
１００  登録部
２００  辞書部
３００  検索部
４００  入出力装置
５００  データベース
【図１】
0003657680.tif 000002
【図２】
0003657680.tif 000003
【図３】
0003657680.tif 000004
【図４】
0003657680.tif 000005
【図５】
0003657680.tif 000006
【図６】
0003657680.tif 000007
【図７】
0003657680.tif 000008
【図８】
0003657680.tif 000009
【図９】
0003657680.tif 000010