JPH0546666A - 情報検索装置 - Google Patents

情報検索装置

Info

Publication number
JPH0546666A
JPH0546666A JP3205805A JP20580591A JPH0546666A JP H0546666 A JPH0546666 A JP H0546666A JP 3205805 A JP3205805 A JP 3205805A JP 20580591 A JP20580591 A JP 20580591A JP H0546666 A JPH0546666 A JP H0546666A
Authority
JP
Japan
Prior art keywords
data
key
hash
pointer
data elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3205805A
Other languages
English (en)
Inventor
Akihiro Saito
晃宏 齋藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba TEC Corp
Original Assignee
Tokyo Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokyo Electric Co Ltd filed Critical Tokyo Electric Co Ltd
Priority to JP3205805A priority Critical patent/JPH0546666A/ja
Publication of JPH0546666A publication Critical patent/JPH0546666A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】データ検索時間の短縮を図り検索処理効率の向
上を図る。 【構成】データエレメントがキーの長さ、ハッシュ中間
値、キー、データ及びポインタの格納部11a〜11e
で形成され、キーの長さがL以下の複数のデータエレメ
ントd1 〜d3 をポインタで連結したグループと、キー
の長さがLよりも大きい複数のデータエレメントd4 ,
d5 をポインタで連結したグループからなり、ハッシュ
テーブル14をキーの長さがL以下の連結した複数のデ
ータエレメントの最初のデータエレメントを指定するポ
インタの格納部14aと、キーの長さがLよりも大きい
連結した複数のデータエレメントの最初のデータエレメ
ントを指定するポインタの格納部14bとで構成し、ハ
ッシュ値及びキーの長さにより特定のグループを選択
し、そのグループからハッシュ中間値とキーの長さによ
り該当するデータエレメントを検索する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ハッシュテーブルを使
用してデータの検索を行う情報検索装置に関する。
【0002】
【従来の技術】データ検索する場合に文字列等、通常キ
ーと呼ばれる検索情報を使用し、このキーと一致するキ
ーを格納したデータエレメントを検索してデータの検索
を行うものがある。このようなデータ検索においてデー
タエレメントを単純にテーブル上に連続的に並べて格納
しておき、データ検索時にはテーブル上のデータエレメ
ントに格納されているキーとの一致を順次見て検索した
のでは検索に膨大な時間がかかるという問題がある。
【0003】そこで従来、データの検索を迅速に行う方
式としてハッシュ方式が知られている。この方式は検索
情報(キー)にハッシュ関数を加えてハッシュ値を求
め、このハッシュ値によって一意に定まる記憶領域に該
当するデータを格納するようになっている。しかしハッ
シュ方式では異なるキー、例えば「buffalo 」と「tige
r 」のハッシュ値が等しくなる、いわゆるハッシュ値の
衝突が発生することがある。
【0004】このようなことから従来においては、ハッ
シュ値から直接決定する記憶アドレスを先頭のデータ又
はデータのポインタへのアドレスとして同一のハッシュ
値に属する他のデータを先頭のデータ又は先頭のポイン
タから順次データ又はポインタの連鎖を作って格納する
方式が採用されている。同一ハッシュ値に属するデータ
群から目的のデータを検索するには、そのデータ又はポ
インタ中にある検索情報(キ−)と目的の検索情報(キ
ー)が一致するものをキーの照合操作により行うように
なっている。
【0005】すなわち従来は図8に示すように、記憶装
置1に同一ハッシュ値のデータエレメントd1 ,d2 ,
d3 及びデータエレメントd4 ,d5 をそれぞれ連鎖さ
せて格納している。各データエレメントd1 〜d5 はキ
ー格納部1a、データ格納部1b、ポインタ格納部1c
からなり、ポインタ格納部1cには連鎖する次のデータ
エレメントのアドレスが保持され、連鎖する次のデータ
エレメントが無い場合には最終データエレメントを示
す、例えば「0」が書込まれるようになっている。
【0006】そして検索情報レジスタ2に格納されてい
るキーをハッシュ関数部3に入力してハッシュ値を求
め、そのハッシュ値によりハッシュテーブル4から1つ
のエントリーを得る。ハッシュテーブル4の各エントリ
ーには該当するハッシュ値に属する先頭データのアドレ
スが書込まれている。
【0007】今、ハッシュテーブル4によりデータエレ
メントd1 のアドレスが指定されたとすると、データエ
レメントd1 のキー格納部1aを読出して検索情報レジ
スタ2のキーと比較する。そしてもし一致していればそ
のデータエレメントd1 のデータ格納部1bに格納され
ているデータが目的のデータとなる。また一致していな
ければデータエレメントd1 のポインタ格納部1cを読
出し、それをアドレスとして次に連鎖しているデータエ
レメントd2 のキー格納部1aを読出して検索情報レジ
スタ2のキーと比較する。そしてもし一致していればそ
のデータエレメントd2 データ格納部1bに格納されて
いるデータが目的のデータとなる。また一致していなけ
ればデータエレメントd2 のポインタ格納部1cを読出
し、それをアドレスとして次に連鎖しているデータエレ
メントd3 のキー格納部1aを読出して検索情報レジス
タ2のキーと比較する。以上のようにして記憶装置1か
ら目的のデータを検索するようになっている。
【0008】また他の例としては例えば特開昭1−11
3804号公報に見られるように、データ登録時、参照
するインデックステーブルの内容が空きの場合、登録可
能となり、使用中の場合インデックステーブルの空きレ
コードを検出するまで再ハッシング関数を繰り返し実行
する。またデータ検索時、インデックステーブルの内容
が使用中の場合は、インデックステーブルの内容が示す
データテーブル内のキーコードを比較し、キーコードが
一致する場合はデータ検出、不一致の場合は衝突と判定
する。そして衝突時は検出するまで登録時と同一のハッ
シング関数を使用して再ハッシングを繰り返すという処
理を行っている。
【0009】
【発明が解決しようとする課題】しかしながら図8に示
すものや公報に示すものでは、同一ハッシュ値に属する
データエレメントから目的のデータを検索する場合に、
各データエレメント毎にデータエレメント中にあるキー
の比較が行われるが、この比較処理に時間がかかり、こ
のためデータ検索に時間がかかるという問題があった。
【0010】また公報のものでは、さらにデータ検索の
際、キーの比較が一致しなかった場合目的のデータが得
られるまで再ハッシングを繰り返さなければならず、こ
の処理においても時間がかかるという問題があった。そ
こで本発明は、データ検索時間の短縮を図ることができ
て検索処理効率を向上できる情報検索装置を提供しよう
とするものである。
【0011】
【課題を解決するための手段】本発明は、キー情報から
ハッシュ関数によりハッシュ値を求め、そのハッシュ値
によりハッシュテーブルを参照して、キー情報から求め
られるハッシュ値が等しい複数のデータエレメントをポ
インタで連結したものから該当するキー情報を格納した
データエレメントを検索する情報検索装置において、複
数のデータエレメントをポインタで連結したものは、各
データエレメントがそれぞれキーの長さ、ハッシュ値計
算の途中で算出されるハッシュ中間値、キー、データ及
びポインタの格納部で形成され、キーの長さがL以下の
ハッシュ値が等しい複数のデータエレメントをポインタ
で連結したグループと、キーの長さがLよりも大きいハ
ッシュ値が等しい複数のデータエレメントをポインタで
連結したグループからなり、ハッシュテーブルは、キー
の長さがL以下の連結した複数のデータエレメントの最
初のデータエレメントを指定するポインタの格納部と、
キーの長さがLよりも大きい連結した複数のデータエレ
メントの最初のデータエレメントを指定するポインタの
格納部を設け、ハッシュ値及びキーの長さにより、ハッ
シュ値が等しい該当する複数のデータエレメントをポイ
ンタで連結したグループを選択し、そのグループからハ
ッシュ中間値とキーの長さにより該当するデータエレメ
ントを検索し、さらに検索すべきキー情報と検索された
データエレメントのキー情報の一致により情報検索を行
うものである。
【0012】
【作用】このような構成の本発明においては、検索すべ
きキー情報からハッシュ関数によりハッシュ値及びハッ
シュ中間値を求める。そして検索すべきキーの長さがL
以下か、Lよりも大きいかにより、同一ハッシュ値でも
ハッシュテーブルから選択されるポインタが異なる。例
えばキーの長さがL以下であればハッシュテーブルのボ
インタによりキーの長さがL以下でしかも同一ハッシュ
値の連鎖した複数のデータエレメントからなるグループ
の最初のデータエレメントが指定される。
【0013】そしてハッシュ中間値と検索すべきキーの
長さとデータエレメントとして格納されているハッシュ
中間値及びキーの長さを比較する。そして両者が一致し
ていればそのデータエレメントに該当するデータがある
ことになる。また不一致であればポインタにより指定さ
れる次のデータエレメントに対して同様の検索を行う。
【0014】
【実施例】以下、本発明の実施例を図面を参照して説明
する。
【0015】図1において11は記憶装置で、この記憶
装置11には同一ハッシュ値でキー長Lが5以下のデー
タエレメントd1 ,d2 ,d3 が連鎖して格納され、ま
た同一ハッシュ値でキー長Lが6以上のデータエレメン
トd4 ,d5 が連鎖して格納されている。また他のハッ
シュ値のデータエレメントd6 が格納されている。
【0016】前記各データエレメントd1 〜d6 はキー
の長さ格納部11a、ハッシュ中間値格納部11b、キ
ー格納部11c、データ格納部11d及びポインタ格納
部11eからなり、ポインタ格納部11eには連鎖する
次のデータエレメントのアドレスが保持され、連鎖する
次のデータエレメントが無い場合には最終データエレメ
ントを示す、例えば「NULL」が書込まれるようになって
いる。
【0017】そして検索情報レジスタ12に格納されて
いるキーをハッシュ関数部13に入力してハッシュ値を
求めるようになっている。このときハッシュ値の計算途
中で算出されるハッシュ中間値も求めるようになってい
る。
【0018】前記ハッシュ関数部13で求められたハッ
シュ値によりハッシュテーブル14から1つのエントリ
ーを得、このエントリーの内容をアドレスレジスタ15
に格納するようになっている。
【0019】前記ハッシュテーブル14はキーの長さが
5以下のポインタ部14aとキーの長さが6以上のポイ
ンタ部14bからなり、前記検索情報レジスタ12に格
納されているキーの長さによりいずれのポインタ部を選
択するか決定されるようになっている。
【0020】前記ハッシュテーブル14の各ポインタ部
14a,14bの各エントリーには該当するハッシュ値
に属するデータエレメントグループの最初のデータエレ
メントを指定するアドレスが書込まれている。
【0021】このような構成の実施例において、新たな
データの登録を行うときそのデータに対応するキーによ
って求められたハッシュ値により図2に示すようにハッ
シュテーブル14のポインタ部14からエントリーe1
が選択されたとすると、そのエントリーe1 の内容を点
線の矢印で示すようにアドレスレジスタ15に格納す
る。このときエントリーe1 の内容はデータエレメント
d11を指定しているものとする。
【0022】そして新規登録するデータエレメントd12
の領域を確保する。この状態で図3に示すようにハッシ
ュテーブル14におけるポインタ部14のエントリーe
1 の内容を新規作成したデータエレメントd12を指定す
るポインタに書き替える。
【0023】そして最後に新規作成したデータエレメン
トd12のポインタ格納部にアドレスレジスタ15の内容
を書き込む。その結果図4に示すように新規作成したデ
ータエレメントd12はデータエレメントd11に連鎖する
ようになる。このようにして新規登録するデータエレメ
ントd12の連鎖への追加ができる。
【0024】すなわち情報登録時には図5に示す処理を
行うようになっている。まずハッシュ関数部13により
ハッシュ値の算出処理を行う。ここでハッシュ値とハッ
シュ中間値を求める。続いてデータエレメント作成処理
を行う。
【0025】この作成時にはデータエレメントのポイン
タ格納部には「NULL」を書き込んでおく。そしてデータ
エレメントのキー長格納部にはキーの長さを、ハッシュ
中間値の格納部にはハッシュ中間値をそれぞれ書き込
む。例えばキーが「lemon 」で、ハッシュ値が「47」
で、ハッシュ中間値が「341」であったとすると、新
規作成されるデータエレメントは図6に示すようにな
る。
【0026】次にキーの長さとL=5を比較する。キー
が「lemon 」の場合はキーの長さが「5」であるからL
≧5となる。なお、基準となるキーの長さLの値は、キ
ーの長さがL以下の連鎖に含まれるデータエレメント数
とキーの長さがLより大きい連鎖に含まれるデータエレ
メント数とが略等しくなるような値にするのが良い。
【0027】そしてキーの長さの比較結果とハッシュ値
によりハッシュテーブル14のエントリーを参照する。
そして該当するエントリーの内容がデータエレメントへ
のポインタとなっているか否かを判断する。この判断に
ついては例えばオール「1」が格納されていればデータ
エレメントへのポインタでないと判断する。
【0028】そしてオール「1」のときにはそのエント
リーに作成したデータエレメントの先頭アドレスを格納
し登録を終了する。またオール「1」以外のときには作
成したデータエレメントを連鎖に追加して登録を終了す
る。
【0029】またデータ検索するときには図7に示す処
理が行われるようになっている。すなわち登録時と同
様、ハッシュ関数部13によりハッシュ値の算出処理を
行う。ここでハッシュ値とハッシュ中間値を求める。
【0030】そして求められたハッシュ値によりハッシ
ュテーブル14のエントリーを見つける。続いてこのエ
ントリーがデータエレメントへのポインタが否かをチェ
ックする。そしてオール「1」のときにはデータエレメ
ントへのポインタでないと判断する。このときにはデー
タが未登録と判断できるのでデータ検索を終了する。
【0031】またエントリーがデータエレメントへのポ
インタであれば、このエントリー内容をアドレスレジス
タ15に格納する。そして検索情報レジスタ12のキー
と同一のキーを格納しているデータエレメントを検索す
る。このときの検索は与えられた検索情報レジスタ12
のキーのハッシュ中間値及びキーの長さとデータエレメ
ントのハッシュ中間値及びキーの長さを比較する。
【0032】そしてハッシュ中間値及びキーの長さがい
ずれも一致すると、続いてキーの比較を行い、これも一
致するとそのデータエレメントからデータを読出して検
索を終了する。
【0033】ハッシュ中間値及びキーの長さのいずれか
が一致しなかったり、これが一致してもキーが一致しな
かったときには、データエレメントのポインタ格納部を
参照して連鎖する次のデータエレメントに対して同様の
比較処理を行う。そしてこれを繰り返すことによりデー
タ検索を行う。
【0034】このようにハッシュテーブル14にキーの
長さがL以下か、Lよりも大きいかによってポインタ部
を分けているので、同一ハッシュ値において連鎖するデ
ータエレメントの数を少なくできる。従ってそれだけデ
ータ検索が迅速に行える。またデータエレメントにキー
の長さとハッシュ中間値を格納し、データ検索時に与え
られたキーのキーの長さとハッシュ中間値とデータエレ
メントのキーの長さとハッシュ中間値を比較するように
しているので、これが一致したときにはキーが一致する
確率はかなり高くなり、従ってキーを比較する回数がそ
れだけ少なくなりこの点においてもデータ検索が迅速に
行える。従って全体としてデータ検索時間の短縮を図る
ことができて検索処理効率を向上できる。
【0035】
【発明の効果】以上詳述したように本発明によれば、デ
ータ検索時間の短縮を図ることができて検索処理効率を
向上できる情報検索装置を提供できるものである。
【図面の簡単な説明】
【図1】本発明の実施例を示すブロック図。
【図2】同実施例のデータ追加登録時の動作を説明する
ための図。
【図3】同実施例のデータ追加登録時の動作を説明する
ための図。
【図4】同実施例のデータ追加登録時の動作を説明する
ための図。
【図5】同実施例のデータ追加登録時の処理を示す流れ
図。
【図6】同実施例において追加登録されたデータエレメ
ントの構成を示す図。
【図7】同実施例のデータ検索処理を示す流れ図。
【図8】従来例を示すブロック図。
【符号の説明】
11…記憶装置、13…ハッシュ関数部、14…ハッシ
ュテーブル、14a,14b…ポインタ部、d1 〜d6
…データエレメント、11a…キー長格納部、11b…
ハッシュ中間値格納部、11c…キー格納部、11d…
データ格納部、11e…ポインタ格納部。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 キー情報からハッシュ関数によりハッシ
    ュ値を求め、そのハッシュ値によりハッシュテーブルを
    参照して、キー情報から求められるハッシュ値が等しい
    複数のデータエレメントをポインタで連結したものから
    該当するキー情報を格納したデータエレメントを検索す
    る情報検索装置において、 前記複数のデータエレメントをポインタで連結したもの
    は、各データエレメントがそれぞれキーの長さ、ハッシ
    ュ値計算の途中で算出されるハッシュ中間値、キー、デ
    ータ及びポインタの格納部で形成され、キーの長さがL
    以下のハッシュ値が等しい複数のデータエレメントをポ
    インタで連結したグループと、キーの長さがLよりも大
    きいハッシュ値が等しい複数のデータエレメントをポイ
    ンタで連結したグループからなり、 前記ハッシュテーブルは、キーの長さがL以下の連結し
    た複数のデータエレメントの最初のデータエレメントを
    指定するポインタの格納部と、キーの長さがLよりも大
    きい連結した複数のデータエレメントの最初のデータエ
    レメントを指定するポインタの格納部を設け、 ハッシュ値及びキーの長さにより、ハッシュ値が等しい
    該当する複数のデータエレメントをポインタで連結した
    グループを選択し、そのグループからハッシュ中間値と
    キーの長さにより該当するデータエレメントを検索し、
    さらに検索すべきキー情報と検索されたデータエレメン
    トのキー情報の一致により情報検索を行うことを特徴と
    する情報検索装置。
JP3205805A 1991-08-16 1991-08-16 情報検索装置 Pending JPH0546666A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3205805A JPH0546666A (ja) 1991-08-16 1991-08-16 情報検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3205805A JPH0546666A (ja) 1991-08-16 1991-08-16 情報検索装置

Publications (1)

Publication Number Publication Date
JPH0546666A true JPH0546666A (ja) 1993-02-26

Family

ID=16512983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3205805A Pending JPH0546666A (ja) 1991-08-16 1991-08-16 情報検索装置

Country Status (1)

Country Link
JP (1) JPH0546666A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2048090A1 (es) * 1992-01-31 1994-03-01 Rovi Lab Farmaceut Sa Procedimiento para la obtencion de nuevos antitromboticos derivados de la cumarina.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2048090A1 (es) * 1992-01-31 1994-03-01 Rovi Lab Farmaceut Sa Procedimiento para la obtencion de nuevos antitromboticos derivados de la cumarina.

Similar Documents

Publication Publication Date Title
US5357431A (en) Character string retrieval system using index and unit for making the index
US5307494A (en) File name length augmentation method
JP2000357115A (ja) ファイル検索装置及びファイル検索方法
JP2693914B2 (ja) 検索システム
JPH0546666A (ja) 情報検索装置
JPH07146880A (ja) 文書検索装置及び方法
JPH1040255A (ja) ハッシュ表管理装置
JPH05108719A (ja) 情報検索装置
JPH05143648A (ja) 情報登録検索装置
JPH06162096A (ja) レコード検索方法
JPH09265472A (ja) 画像データベースシステム
JP2788303B2 (ja) 可変長データの格納方式
JPH05165891A (ja) データベースのデータ登録・検索方式
JPH06103307A (ja) 構造型データベースにおける検索高速化方法
JPH02148174A (ja) Ocrによる住所データベース検索装置
JP2000123014A (ja) データ検索システムおよび方法
JPH08272814A (ja) 文字列検索装置
JPH06332799A (ja) 木情報格納方式
JPS61281368A (ja) 画像情報検索装置
JPH1040145A (ja) レコード比較方法
JPS633351A (ja) バツフア検索制御方式
JPH09330322A (ja) データ検索装置
JPH0528194A (ja) データアクセス方式
JPH0764833A (ja) ファイル容量削減方法
JPS6373422A (ja) 情報検索装置