JPH06195381A - データ検索装置 - Google Patents

データ検索装置

Info

Publication number
JPH06195381A
JPH06195381A JP4346443A JP34644392A JPH06195381A JP H06195381 A JPH06195381 A JP H06195381A JP 4346443 A JP4346443 A JP 4346443A JP 34644392 A JP34644392 A JP 34644392A JP H06195381 A JPH06195381 A JP H06195381A
Authority
JP
Japan
Prior art keywords
data
stored
keyword
memory block
search
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
JP4346443A
Other languages
English (en)
Inventor
Kazuhiro Nishito
一浩 西都
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP4346443A priority Critical patent/JPH06195381A/ja
Publication of JPH06195381A publication Critical patent/JPH06195381A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 キャッシュメモリの利用効率を向上させ、デ
ータ検索をより高速にすることを目的とする。 【構成】 データ検索部4がキャッシュメモリ7にアク
セスするとき、このアクセス先のアドレスをデータ検索
部4による物理的なアドレスより、データファイル3を
構築するハッシュコードによる論理的なアドレスにアド
レス翻訳部6が翻訳する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ハッシュ法により構築
された大量のデータからなるデータベースの中より、高
速にデータを検索するデータ検索装置に関する。
【0002】
【従来の技術】近年のプラントでは、情報化が進むに従
い扱うデータ量が増大する傾向にある。しかし、コンピ
ュータの処理能力向上にともなって、データ検索に許さ
れる時間も、より高速性が求められている。そこで、こ
のような大量のデータの中から任意のデータを高速に検
索するための技術の1つにハッシュ法と呼ばれるものが
ある。図6は、従来のハッシュ法によるデータ検索装置
の構成を示す構成図である。同図において、1は検索し
たいデータ中に存在してこのデータを検索するときの手
がかりとなるキーワードを入力する入力手段、2は入力
されたキーワードをハッシュ関数により数値化(ハッシ
ュコード化)するハッシュコード変換部、3はデータが
論理的な番地であるハッシュコードに対応したスロット
番号毎に格納されているデータファイル、3aはデータ
ファイル3内のデータのキーワードが格納されるキー領
域、3bはキー領域3a内に格納されているキーワード
に対応するデータが格納されているデータ領域である。
また、4はハッシュコード化されたキーワードに対応す
るデータをデータファイル3の中より検索して抽出する
データ検索部、5はデータ検索部4で検索したデータを
表示する表示部である。
【0003】次に、図6のデータ検索装置の動作を図7
のフローチャートを用いて説明する。まず、検索したい
データのキーワードを入力部1より入力する(ステップ
S71)。キーワードが入力されると、ハッシュコード
変換部2でハッシュ関数によりキーワードがハッシュコ
ードに変換される(ステップS72)。ここでは、ある
キーワードがハッシュコード「3」に数値化(ハッシュ
コード化)された場合を考える。次いで、データ検索部
4では、入力されたハッシュコードが「3」なので、デ
ータファイル3のスロット番号「3」にアクセスし(ス
テップS73)、このスロット番号「3」のキー領域3
a内に格納されているキーワードと入力されたキーワー
ドとで一致するものを検索する(ステップS74)。
【0004】ここで、入力されたキーワードと同じもの
がこのスロット内に存在すれば(ステップS75)、こ
のキーワードに対応するデータをデータ領域3b内より
読みだし(ステップS76)、このデータを検索データ
表示部5に表示する(ステップS77)。一方、このス
ロット内に入力されたキーワードと同じキーワードが存
在しなければ(ステップS75)、このキーワードに対
応するデータがデータファイル3内には存在しない旨を
検索データ表示部5に表示する(ステップS78)。
【0005】ハッシュ法によるデータ検索では、データ
のキーワードをハッシュ関数によりハッシュコード化し
たときの数でそのデータを分類した構造でデータベース
を構築する。そして、そのデータベース内より所望のデ
ータを検索するときは、その検索データのキーワードを
ハッシュコードに変換して検索する。したがって、前述
したように、データ検索時に全てのデータを検索しなく
ても、ハッシュコードに対応する領域だけを探せばよい
ので、高速な検索を行うことができる。
【0006】ところで、データ検索部4のアクセスする
データファイル3は何らかの記憶手段に記憶されている
が、この記憶手段にはアクセスが高速だが高価な半導体
メモリや、アクセスは速くないが安価で大容量が確保で
きる磁気デスク記憶手段などがある。ここで、データフ
ァイル3は一般に大量のデータを有しており、これを全
て半導体メモリに格納することにはコストなどの観点よ
り無理がある。したがって、速度の点では半導体メモリ
より遅いが、非常に大きな容量を半導体メモリに比較し
て安価に使用できる磁気デスク記憶手段を、一般にはデ
ータファイル3として使用する。このため、上述のよう
に構成されたデータ検索装置でも、その検索対象のデー
タベースが大きくなればなるほど、検索に時間がかかる
といった問題があった。
【0007】ところで、データ検索部4がある限られた
短い時間内でアクセスするデータ量はそれほど大きくな
い。そこで、図6に示す、データ検索部4とデータファ
イル3との間に、小容量のアクセスが高速な半導体メモ
リをキャッシュメモリとして配置し、これにデータ検索
部4がアクセスする頻度の高そうなデータをデータファ
イル3から移送するようにしておけば、より高速なデー
タ検索が可能となる。図8において、87はメモリアク
セスが高速の半導体メモリからなり、複数のメモリブロ
ックから構成されているキャッシュメモリであり、他は
図6と同様である。データファイル3の1つのスロット
には複数のデータが格納されているが、キャッシュメモ
リ87のメモリブロック1つの容量は、データ1つが入
る容量である。また、このメモリブロックは物理的な番
地(アドレス)により配置されている。
【0008】キャッシュメモリ87のメモリブロック
は、データ検索部4による一定量毎に区切られた物理的
なメモリアクセスアドレスと1対1に対応している。す
なわち、データ検索手段4の持つ物理的なメモリアクセ
スアドレスが、H0000〜HFFFF番地までだとす
ると、これを256に区切って、アドレスがH00〜H
FF番地までの256個のメモリブロックからキャッシ
ュメモリ87は構成されている。検索動作をする場合、
データ検索部4では、入力された論理アドレスであるハ
ッシュコード「3」は、物理アドレスに翻訳される。そ
して、データ検索部4は、この物理アドレスに対応する
キャッシュメモリ87のメモリブロックにアクセスし、
このブロック内で入力部1より入力されたキーワードと
同じキーワードを検索する。同じキーワードがあった場
合はこのキーワードに対応するデータを抽出して、検索
データ表示部5に表示する。
【0009】一方、同じキーワードがキャッシュメモリ
87のそのブロック内に無かった場合、データ検索部4
はハッシュコード「3」に対応するデータファイル3の
スロット番号「3」のキー領域3aに格納されている検
索対象のキーワードを検索し、検索したキーワードに対
応するデータをデータ領域3b内より抽出する。そして
同時に、キャッシュメモリ87のハッシュコード「3」
を翻訳した物理アドレスのメモリブロック内の現在の状
態をクリアし、代わりに検索によりデータファイル3よ
り抽出したデータとそのキーワードとを格納する。次に
同じデータの検索が実行された場合は、データ検索部4
はキャッシュメモリ7にあるデータを検索抽出すれば良
いので、より高速なデータ検索が可能となる。
【0010】ところで、データ検索部4がハッシュコー
ド「3」によりデータファイル3にアクセスするとき、
上記したキャッシュメモリ87に対するアクセスと同様
に、実際にはこの論理アドレスであるハッシュコード
「3」を物理アドレスに翻訳し、この物理アドレスでデ
ータファイル3にアクセスする。データファイル3内の
各データは、物理アドレス上では統一性が無くバラバラ
に存在しているが、論理アドレス上では、各データのキ
ーワードをハッシュコード化したハッシュコードにより
整理されて格納されている。すなわち、データファイル
3内のスロットは、論理アドレスである。
【0011】前述したように、データ検索部4がキャッ
シュメモリ87やデータファイル3にデータ検索のため
にアクセスするときは、実際には論理アドレスであるハ
ッシュコードを物理アドレスに翻訳し、この物理アドレ
スによりアクセスをする。したがって、キャッシュメモ
リ87の各メモリブロックに対するアクセスは、物理ア
ドレスにより行われ、データファイル3の各スロットへ
のアクセスは論理アドレスにより行われていることにな
る。
【0012】
【発明が解決しようとする課題】従来は以上のように構
成されており、論理アドレスと物理アドレスとが一致し
ていないので、ハッシュコード「3」に対応するデータ
ファイル3のスロット番号「3」から読みだしたデータ
の物理アドレスがH12DDで、ハッシュコード「5」
に対応したデータファイル3のスロット番号「5」から
読みだしたデータの物理アドレスがH1222で、ハッ
シュコード「7」に対応したデータファイル3のスロッ
ト番号「7」から読みだしたデータの物理アドレスがH
1299という場合もある。
【0013】この場合、3つのデータの物理アドレスの
上2桁はおなじH12なので、キャッシュメモリ87で
は同じメモリブロックに対応するアドレスとなる。従っ
て、上記の3つのデータの検索では、これらの検索が繰
り返し行われても、キャッシュメモリ87では常にアド
レスH12のメモリブロックが使用され、このメモリブ
ロックが消去書き込みが成されるだけで、他のメモリブ
ロックは使用されない。すなわち、キャッシュメモリ9
7のキャッシュ効果が発揮されず、キャッシュメモリ8
7が有効に使用されないという問題があった。
【0014】この発明では、上記のような課題を解決す
るためになされたものであり、キャッシュメモリの利用
効率を向上させ、データ検索をより高速にすることを目
的とする。
【0015】
【課題を解決するための手段】この発明のデータ検索装
置は、キーワードをハッシュ法によるハッシュ関数によ
りコード化してそのコード毎に分類したスロットにキー
ワードとそれに対応したデータを格納しているデータ格
納手段と、データを検索するために入力されたキーワー
ドをハッシュ関数によりコード化するコード変換手段
と、データ検索のためにデータ格納手段にアクセスする
とき、コード変換手段によりコード化されたキーワード
を用いて、データ格納手段のなかでこのコードと対応す
るスロットをアクセス対象とするデータ検索手段と、デ
ータ格納手段のスロットに対応したメモリブロックから
構成され、データ検索手段とデータ格納手段との間に設
けられ、データ検索手段が検索するデータ格納手段に格
納されているデータの中で検索が頻繁に行われるデータ
を記憶しておく一時記憶手段と、データ検索手段が一時
記憶手段にアクセスするためのメモリブロックの番地
を、データ格納手段にアクセスするときのスロット番号
に対応するように翻訳するアドレス翻訳手段とを有する
ことを特徴とする。
【0016】また、この発明のデータ検索装置は、一時
記憶手段に記憶されるデータにそのデータの格納される
位置情報を付加し、一時記憶手段のデータの無い位置に
はデータが無いことを示す情報を記憶させる、1次記憶
手段に記憶されるデータの位置を管理する一時保管管理
手段を有することを特徴とする。そして、この発明のデ
ータ検索装置は、一時記憶手段に記憶されるデータにそ
のデータの格納される位置情報と一時記憶手段の中の他
の位置に格納されているデータ位置との位置関連情報と
を付加し、 一時記憶手段のデータの無い位置にはデー
タが無いことを示す情報を記憶させる、1次記憶手段に
記憶されるデータの位置を管理する一時保管管理手段を
有することを特徴とする。
【0017】
【作用】一時記憶手段に記憶されるデータは、ハッシュ
関数によるコードに対応した位置に記憶される。また、
一時記憶手段に記憶されるデータは、ハッシュ関数によ
るコードに対応しない位置にも記憶され、その時はその
データに記憶されている位置がハッシュ関数によるコー
ドに対応していない旨の情報が付加される。そして、一
時記憶手段に記憶されるデータがハッシュ関数によるコ
ードに対応していない場合は、そのデータがその位置に
記憶されている旨の情報が、ハッシュ関数によるコード
に対応した位置に記憶されているデータに付加される。
【0018】
【実施例】
実施例1.以下この発明の1実施例を図を参照して説明
する。図1は、この発明の1実施例であるデータ検索装
置の構成を示す構成図である。同図において、6はアド
レス翻訳部、7はデータファイル3のスロット数と同数
のメモリブロックより構成されたキャッシュメモリ、7
aはキャッシュメモリ7内のデータのキーワードが格納
されるキー領域、7bはキー領域7a内に格納されてい
るキーワードに対応するデータが格納されているデータ
領域であり、他は図8と同様である。アドレス翻訳部6
は、データ検索部4がキャッシュメモリ7にアクセスす
るときのアドレスを物理的なアドレスより、データファ
イル3の構成であるスロット番号に対応した論理的なア
ドレスに翻訳する。
【0019】次に、このデータ検索装置の動作につい
て、図2のフローチャートを用いて説明する。まず、検
索したいデータのキーワードが入力されると(ステップ
S21)、ハッシュコード変換部2においてこのキーワ
ードが対応するハッシュコード「3」に変換される(ス
テップS22)。次に、データ検索部4ではこのハッシ
ュコード「3」に対応するデータファイル3のスロット
3内のデータを検索する。このとき実際には、データ検
索部4はキャッシュメモリ7にアクセスする(ステップ
S23)。データ検索部4はキャッシュメモリ7上に検
索しようとするデータが存在すれば、このキャッシュメ
モリ7上のデータを読み出して、データを検索抽出した
こととする。
【0020】このときデータ検索部4は、ハッシュコー
ド「3」に対応するアクセス先のアドレスを物理アドレ
ス「H1200」に翻訳し、この物理アドレスに対して
アクセスしようとするが、アドレス翻訳部6によりこの
アクセス先の物理的アドレスをデータファイル3の構成
であるスロット番号に対応したものに翻訳する。キャッ
シュメモリ7では、この翻訳された論理アドレスである
ハッシュコード「3」に対応する3番目のメモリブロッ
クがアクセスされる。ところで、データファイル3で
は、物理アドレスと論理アドレスであるスロット番号と
は関連がなく、例えば、物理アドレス「H1200」は
スロット番号「3」と対応している。
【0021】ここで、1つのメモリブロックには1つの
データしか格納できないので、データ検索部4は、アク
セスしたキャッシュメモリ7の3番目のメモリブロック
内のキー領域7aに格納されているキーワードと、入力
されたキーワードとを比較する(ステップS24)。こ
のとき一致すれば(ステップS25)、このキーワード
に対応するデータをデータ領域7bより読み出して検索
データ表示部5に表示し(ステップS31)、検索動作
を終了する。
【0022】一方、キャッシュメモリ7の中の3番目の
メモリブロックのキー領域7aに格納されているキーワ
ードが、入力したキーワードと一致していなければ(ス
テップS25)、データ検索部4はデータファイル3の
スロット番号「3」のスロットにアクセスする(ステッ
プS26)。ここで、3番目のメモリブロック内にデー
タが無ければ、当然入力したキーワードと一致するもの
がないので、このときは不一致となる。そして、キー領
域3aの中で入力されたキーワードと一致するものを検
索し(ステップS27)、一致するキーワードがあれば
(ステップS28)、これに対応するデータをデータ領
域3bより読み出して、キャッシュメモリ7の3番目の
メモリブロック内をこのデータに書き換える(ステップ
S30)。同時に、検索データ表示部5に表示して(ス
テップS31)、検索動作を終了する。
【0023】一致するキーワードがキー領域3a内に存
在しなかった場合は(ステップS28)、検索したいデ
ータがデータファイル3内に無いことを検索データ表示
部5に表示し(ステップS32)、検索動作を終了す
る。
【0024】このように、キャッシュメモリ7は、デー
タ検索部4により実際にアクセスされるときのメモリブ
ロックのアドレスが、データファイル3のスロット番号
に対応し、すなわちハッシュコードと対応している。こ
のため、データ検索部4がアクセスするときに実際に使
用する物理アドレスが近いデータでも、ハッシュコード
に対応する論理アドレスが異なれば、異なるメモリブロ
ック上にキャッシュ(格納)される。従って、実際にデ
ータ検索をする上で、ハッシュコードが異なるキーワー
ドにより検索がなされれば、キャッシュメモリ7は異な
るメモリブロック7bにデータをキャッシュするので、
キャッシュメモリの有効利用が可能となる。
【0025】実施例2.上記実施例1では、検索動作を
何回行っても、検索するデータのキーワードをハッシュ
コード化した結果が全て同じだった場合、すなわち検索
するデータ全てがデータファイル3内の同一のスロット
に格納されているものであった場合は、キャッシュメモ
リ7の1つのメモリブロックしか使用されず、他のメモ
リブロックが全く使用されない状態が生じる。これを解
消するために、キャッシュメモリのメモリブロックを管
理するようにしたのが、この実施例2で示すデータ検索
装置である。
【0026】図3は、この発明の第2の実施例であるキ
ャッシュメモリのメモリブロックを管理するようにした
データ検索装置の構成を示す構成図である。同図におい
て、37はデータファイル3のスロットの数と同数のメ
モリブロックから構成されるキャッシュメモリ、37a
はキャッシュメモリ37内のデータのキーワードが格納
されるキー領域、37bはキー領域37a内に格納され
ているキーワードに対応するデータが格納されているデ
ータ領域、37cはキャッシュメモリ37のメモリブロ
ックの情報として管理フラグが格納される管理フラグ領
域、38はデータ検索におけるデータファイル3とキャ
ッシュメモリ37に対するアクセスとデータの入出力に
対応して、キャッシュメモリ37の管理フラグ領域37
cに管理フラグを格納するメモリブロック管理部であ
り、他は図1と同様である。
【0027】管理フラグ領域37cに格納される管理フ
ラグは、そのメモリブロックにデータが存在するかしな
いかを区別するための、「有効フラグ」,「無効フラ
グ」および、データファイル3のスロット番号とは対応
していないが、データが格納されていることを示す「リ
ンクフラグ」との3つから構成される。例えば、キャッ
シュメモリ37の8番目のメモリブロックに、ハッシュ
コードに変換した場合そのハッシュコードが「8」にな
らないキーワードとそれに対応するデータが格納されて
いる場合に、この8番目のメモリブロックの管理フラグ
領域37cには、「リンクフラグ」が格納される。これ
とは異なり、ハッシュコードに変換した場合そのハッシ
ュコードが「8」になるキーワードとそれに対応するデ
ータが格納されている場合には、「有効フラグ」が格納
される。
【0028】次に、この実施例2に示すデータ検索装置
の動作を、図4のフローチャートを用いて説明する。ま
ず、検索対象のデータのキーワードはハッシュコード化
されると「3」となり、このデータがキャッシュメモリ
37の8番目のメモリブロックに格納されている場合に
ついて説明する。また、キャッシュメモリ37では、3
番目のメモリブロックにはハッシュコード化されると
「3」となるキーワードとそのデータとが格納され、す
なわち「有効フラグ」が格納され、5番目のメモリブロ
ックにはハッシュコード化されると「9」となるキーワ
ードとそのデータが格納され、すなわち「リンクフラ
グ」が格納されているものとする。
【0029】まず、この検索対象のデータのキーワード
が入力部1より入力されると(ステップS41)、この
キーワードはハッシュコード「3」に変換される(ステ
ップS42)。ついで、このハッシュコード「3」に対
応するキャッシュメモリ37の3番目のメモリブロック
の管理フラグ領域37cにアクセスし(ステップS4
3)、管理フラグを参照し(ステップS44)、「有効
フラグ」が格納されているかどうか判断する(ステップ
S45)。
【0030】ここでは、3番目のメモリブロックにはデ
ータが存在するので、このメモリブロックの管理フラグ
領域37cには「有効フラグ」が格納されている。「有
効フラグ」が格納されているので、この3番目のメモリ
ブロックのキー領域37aに格納されているキーワード
と入力されたキーワードとが比較される(ステップS4
6)。比較の結果、一致しないので(ステップS4
7)、3番目のメモリブロック以降で「リンクフラグ」
が格納されているメモリブロックを検索する(ステップ
S49)。
【0031】5番目のメモリブロックに「リンクフラ
グ」が格納されているので(ステップS50)、この5
番目のメモリブロックのキー領域37aに格納されてい
るキーワードと入力されたキーワードとを比較し(ステ
ップS51)、一致していないので(ステップS5
2)、次に同様に「リンクフラグ」の格納されているメ
モリブロックがまだあるかどうか検索する(ステップS
53)。ここで、8番目のメモリブロックに「リンクフ
ラグ」が格納されているので、すなわちまだ「リンクフ
ラグ」の格納されているメモリブロックが存在するの
で、ステップS49に戻って再び「リンクフラグ」の格
納されている5番目以降のメモリブロックを検索する
(ステップS49)。
【0032】8番目のメモリブロックに「リンクフラ
グ」が格納されているので(ステップS50)、このメ
モリブロックのキー領域37aに格納されているキーワ
ードと入力されたキーワードとを比較し(ステップS5
1)、一致するので(ステップS52)、この8番目の
メモリブロックのデータ領域37bよりデータを読み出
して、検索データ表示部5に表示し(ステップS4
8)、1連の検索動作を終了する。
【0033】前述の場合では、キャッシュメモリ73の
3番目のメモリブロックにはキーワードをハッシュコー
ド化したら「3」となるが、検索対象とは異なるデータ
が格納され、他のメモリブロックに検索対象のデータが
格納されている場合について説明した。次に、キャッシ
ュメモリ73には、3番目のメモリブロックにハッシュ
コード化されると「3」となるキーワードとそのデータ
とが格納され、5番目のメモリブロックにキーワードを
ハッシュコード化したら「9」となるデータが格納され
ているが、キーワードをハッシュコード化したら「3」
となった検索対象のデータは存在せず、このデータはデ
ータファイル3に存在する場合について説明する。いう
までもないが、この場合3番目のメモリブロックの管理
フラグ領域37cには「有効フラグ」が格納され、5番
目のメモリブロックの管理フラグ領域37cには「リン
クフラグ」が格納され、他のメモリブロックの管理フラ
グ領域37cには「無効フラグ」が格納されている。こ
の場合、ステップS47までは同一なのでこの説明を省
略する。
【0034】キャッシュメモリ73において、3番目の
メモリブロックに関する「リンクフラグ」が格納されて
いるメモリブロックを検索し(ステップS49)、5番
目のメモリブロックに「リンクフラグ」が格納されてい
るので(ステップS50)、このメモリブロックのキー
領域37aに格納されているキーワードと入力されたキ
ーワードとを比較する(ステップS51)。比較の結果
一致しないので(ステップS52)、他に「リンクフラ
グ」の格納されているメモリブロックがまだあるかどう
か判断する(ステップS53)。
【0035】他にはもう「リンクフラグ」の格納されて
いるメモリブロックは存在しないので、キャッシュメモ
リ73には検索対象のデータがキャッシュされていない
と判断し、データファイル3のスロット番号「3」のス
ロットにアクセスをする(ステップS54)。3番目の
スロットにアクセスし、このスロットのキー領域3a内
を検索し(ステップS55)、入力したキーワードと一
致するものを検索し(ステップS56)、一致するキー
ワードがあるので(ステップS56)、このキーワード
に対応するデータをデータ領域3bより読み出す(ステ
ップS57)。
【0036】データファイルよりデータを読み出した
ら、キャッシュメモリ37に「無効フラグ」の格納され
ているデータの格納されていないメモリブロックがある
かどうか探す(ステップS58)。ここで、「無効フラ
グ」が格納されているメモリブロックがある場合は、こ
のメモリブロックに読み出したデータを書き込み(ステ
ップS60)、このデータを検索データ表示部5に表示
し(ステップS48)、1連の検索動作を終了する。
【0037】一方、「無効フラグ」の格納されているメ
モリブロックが存在しないときは(ステップS59)、
入力したキーワードをハッシュコード化したハッシュコ
ード「3」に対応する、3番目のメモリブロックに格納
されているキーワードとデータとを消去して、新たに読
み出したデータとそのキーワードとをそれぞれ格納する
(ステップS61)。このとき、3番目のメモリブロッ
クの管理フラグ領域には、「有効フラグ」が格納され
る。そして、このデータを検索データ表示部5に表示し
(ステップS48)、1連の検索動作を終了する。
【0038】ところで、ステップS45の判断で「有効
フラグ」がどのメモリブロックにも格納されていない場
合、すなわち、検索するデータのキーワードのハッシュ
コード「3」に対応する、キャッシュメモリ37の3番
目のメモリブロックには何もデータがない場合、ステッ
プS63〜S67に示すように、実施例1と同様の動作
を行う。以上のようにすることにより、検索動作を行え
ば行うほど、キャッシュメモリ7内のメモリブロックに
空きがなくなり、キャッシュヒット率が向上し、より高
速なデータ検索が可能になる。また、以上のようにする
ことにより、データ検索部4がキャッシュメモリ37に
アクセスする場合、まず管理フラグ領域37cを見るこ
とになる。したがて、ハッシュコードに対応するメモリ
ブロックにデータが存在しない場合には、キー領域37
a内を見て入力されたキーワードと一致しているキーワ
ードがあるかどうかという動作をしなくて済むので、よ
り高速なデータ検索が可能となる。
【0039】実施例3.ところで、上記実施例2ではキ
ャッシュメモリ37の管理フラグ領域37cに「リンク
フラグ」が格納されているメモリブロックを探す場合、
メモリブロックを順に見ていくよにしていた。ここで、
実施例2における「有効フラグ」の格納されているメモ
リブロックの管理フラグ領域に同一のハッシュコード分
類となる「リンクフラグ」の格納されているメモリブロ
ックの位置を示す情報を格納し、「リンクフラグ」の格
納されているメモリブロックの管理フラグ領域には、他
に同一のハッシュコード分類となる「リンクフラグ」の
格納されているメモリブロックが存在するかどうかを示
す情報を格納するようにすれば、より高速にキャッシュ
メモリ内の検索が可能となる。
【0040】図5は、この発明の第3の実施例であるデ
ータ検索装置の構成を示す構成図である。同図におい
て、57キャッシュメモリ、57aはキャッシュメモリ
57内のデータのキーワードが格納されるキー領域、5
7bはキー領域57a内に格納されているキーワードに
対応するデータが格納されているデータ領域、57cは
「有効フラグ」,「無効フラグ」,「ブロック番号」が
格納される管理フラグ領域、58はデータ検索における
データファイル3とキャッシュメモリ57に対するアク
セスとデータの入出力に対応して、キャッシュメモリ5
7の管理フラグ領域57cに管理フラグを格納するメモ
リブロック管理部であり、他は図3と同様である。
【0041】この実施例3におけるメモリブロック管理
部58が格納する「有効フラグ」は、これが格納されて
いるメモリブロックにはデータファイル3のハッシュコ
ードに対応したスロット内のデータが存在していること
を示し、加えて他のメモリブロックには入力されたキー
ワードを変換したハッシュコードに対応するデータファ
イル3のスロット内のデータが存在していないことを示
す。すなわち、データ検索部4は、この「有効フラグ」
の存在により、入力されたキーワードのハッシュコード
に対応したデータファイル3のスロット内に存在するデ
ータが、このキャッシュメモリ57のハッシュコードに
対応するメモリブロック以外には存在しないことを知る
ことになる。したがって、キャッシュメモリ57のハッ
シュコードに対応するメモリブロックにアクセスしたと
き、「有効フラグ」が格納されていると、このメモリブ
ロックに格納されているキーワードが入力された検索対
象のキーワードと異なる場合、直ちにデータファイルの
対応するスロットにアクセスする。
【0042】一方、メモリブロック管理部58が格納す
る「ブロック番号」には、「−」がついた数字とつかな
い数字とがある。メモリブロックの管理フラグ領域57
cに格納されている「ブロック番号」に「−」がついて
いない場合、このメモリブロックには、データファイル
3のハッシュコードに対応したスロット内のデータが存
在していることを示している。そして、キャッシュメモ
リ57の他のメモリブロックにも、データファイル3の
ハッシュコードに対応したスロット内のデータが存在し
ていることを示している。そして、この「ブロック番
号」の数字がそのメモリブロックの位置を示している。
【0043】例えば、3番目のメモリブロックの管理フ
ラグ領域57cに「8」が「ブロック番号」として格納
されている場合、このメモリブロックに格納されている
データはそのキーワードをハッシュコード化すると
「3」になり、かつやはりハッシュコード化すると
「3」になるキーワードとそのデータが8番目のメモリ
ブロックに格納されていることを示している。そして、
8番目のメモリブロックの管理フラグ領域57cには
「−3」の「ブロック番号」格納されている。
【0044】ところで、上述の場合は、ハッシュコード
化すると「3」になるキーワードとそのデータが、キャ
ッシュメモリ57内に2つだけ存在するときの状態であ
る。ハッシュコード化すると「3」になるキーワードと
そのデータが、キャッシュメモリ57内に3つ以上存在
する場合、例えば3つ存在する場合は以下に示すように
なる。すなわち、例えば、3番目のメモリブロックと5
番目のメモリブロックと8番目のメモリブロックとに、
ハッシュコード化すると「3」になるキーワードとその
データが格納されている場合である。
【0045】このとき、3番目のメモリブロックの管理
フラグ領域57cには「5」、5番目のメモリブロック
の管理フラグ領域57cには「8+n」、8番目のメモ
リブロックの管理フラグ領域57cには「−3」が格納
されている。ここで、5番目のメモリブロックの管理フ
ラグ領域57cに格納されている「8+n」のnは、メ
モリブロックの数、すなわちデータファイル3のスロッ
トの数を示しており、メモリブロックの数が256個場
合は「264」となる。
【0046】上述の場合、データ検索部4は、入力され
たキーワードのハッシュコードが「3」のとき、まず、
キャッシュメモリ57の3番目のメモリブロックにアク
セスし、この管理フラグが「5」なので、このメモリブ
ロックのキー領域57aに格納されているキーワードと
入力されたキーワードとを比較する。ここで一致しなけ
れば、つぎは5番目のメモリブロックにアクセスして同
様にキーワードを比較し、一致しなければ8番目のメモ
リブロックにアクセスし、同様にキーワードを比較す
る。8番目のメモリブロックのキーワードも入力された
キーワードと一致しなければ、データ検索部4はデータ
ファイル3のスロット番号3のスロットにアクセスし
て、一致するキーワードを探す。
【0047】キャッシュメモリ57の全てのメモリブロ
ックに何らかのデータが格納されているどのような場合
でも、以上のように、キャッシュメモリ57内に、入力
されたキーワードのハッシュコードに対応するデータフ
ァイル3のスロットに存在するデータが3つの場合は、
データ検索部4は最大で3回のアクセスをキャッシュメ
モリ57にするだけで済む。以上のように、メモリブロ
ック管理部58(図5)により、キャッシュメモリ57
のメモリブロックを管理すれば、データ検索部4がキャ
ッシュメモリ57にアクセスして入力されたキーワード
と一致するキーワードを検索する場合、全てのメモリブ
ロックを見る必要がないので、より高速な検索がデータ
検索が可能となる。なお、上記実施例2及び実施例3で
は、管理フラグの参照をキャッシュメモリ7後方に向か
って行っていたが、キャッシュメモリ7前方に向かって
参照しても同様である。
【0048】
【発明の効果】以上のように、この発明によれば、ハッ
シュ法によりデータが構築された大容量のデータベース
に対して、高価で高速なメモリ容量は節約しながら、高
速なデータ検索が可能となる。
【図面の簡単な説明】
【図1】本発明の1実施例であるデータ検索装置の構成
を示す構成図である。
【図2】図1のデータ検索装置の動作を示すフローチャ
ートである。
【図3】本発明の第2の実施例であるデータ検索装置の
構成を示す構成図である。
【図4】図2のデータ検索装置の動作を示すフローチャ
ートである。
【図5】本発明の第3の実施例であるデータ検索装置の
構成を示す構成図である。
【図6】従来のデータ検索装置の構成を示す構成図であ
る。
【図7】図6のデータ検索装置の動作を示すフローチャ
ートである。
【図8】従来のデータ検索装置の構成を示す構成図であ
る。
【符号の説明】
1 入力部 2 ハッシュコード変換部 3 データ検索部 3a キー領域 3b データ領域 4 データ検索部 5 検索データ表示部 6 アドレス翻訳部

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 検索のための手がかりとなるキーワード
    をハッシュ法によるハッシュ関数によりコード化してそ
    のコード毎に分類したスロットに前記キーワードとそれ
    に対応したデータを格納しているデータ格納手段と、 データを検索するために入力されたキーワードを前記ハ
    ッシュ関数によりコード化するコード変換手段と、 データ検索のために前記データ格納手段にアクセスする
    とき、前記コード変換手段によりコード化されたキーワ
    ードを用いて、前記データ格納手段のなかでこのコード
    と対応するスロットをアクセス対象とするデータ検索手
    段と、 前記データ格納手段のスロットに対応したメモリブロッ
    クから構成され、前記データ検索手段とデータ格納手段
    との間に設けられ、前記データ検索手段が検索するデー
    タ格納手段に格納されているデータの中で検索が頻繁に
    行われるデータを記憶しておく一時記憶手段と、 前記データ検索手段が前記一時記憶手段にアクセスする
    ための前記メモリブロックの番地を、前記データ格納手
    段にアクセスするときのスロット番号に対応するように
    翻訳するアドレス翻訳手段とを有することを特徴とする
    データ検索装置。
  2. 【請求項2】 請求項1記載のデータ検索装置におい
    て、 前記一時記憶手段に記憶されるデータにそのデータの格
    納される位置情報を付加し、 前記一時記憶手段のデータの無い位置にはデータが無い
    ことを示す情報を記憶し、 前記1次記憶手段に記憶されるデータの位置を管理する
    一時保管管理手段を有することを特徴とするデータ検索
    装置。
  3. 【請求項3】 請求項1記載のデータ検索装置におい
    て、前記一時記憶手段に記憶されるデータにそのデータ
    の格納される位置情報と前記一時記憶手段の中の他の位
    置に格納されているデータ位置との位置関連情報とを付
    加し、 前記一時記憶手段のデータの無い位置にはデータが無い
    ことを示す情報を記憶し、 前記1次記憶手段に記憶されるデータの位置を管理する
    一時保管管理手段を有することを特徴とするデータ検索
    装置。
JP4346443A 1992-12-25 1992-12-25 データ検索装置 Pending JPH06195381A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4346443A JPH06195381A (ja) 1992-12-25 1992-12-25 データ検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4346443A JPH06195381A (ja) 1992-12-25 1992-12-25 データ検索装置

Publications (1)

Publication Number Publication Date
JPH06195381A true JPH06195381A (ja) 1994-07-15

Family

ID=18383466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4346443A Pending JPH06195381A (ja) 1992-12-25 1992-12-25 データ検索装置

Country Status (1)

Country Link
JP (1) JPH06195381A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322416A (ja) * 1999-05-06 2000-11-24 Ntt Data Corp 文書検索装置
CN111639099A (zh) * 2020-06-09 2020-09-08 武汉虹旭信息技术有限责任公司 全文索引方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322416A (ja) * 1999-05-06 2000-11-24 Ntt Data Corp 文書検索装置
CN111639099A (zh) * 2020-06-09 2020-09-08 武汉虹旭信息技术有限责任公司 全文索引方法及系统

Similar Documents

Publication Publication Date Title
US9858282B2 (en) Information searching apparatus, information managing apparatus, information searching method, information managing method, and computer product
US6658437B1 (en) System and method for data space allocation using optimized bit representation
US7526497B2 (en) Database retrieval apparatus, retrieval method, storage medium, and program
Lin et al. Frame-sliced signature files
JP2003044335A (ja) デジタルツリーデータ構造
CN100458784C (zh) 在数字图书馆中所采用的检索系统和检索方法
JP2000347935A (ja) 圧縮メイン・メモリの仮想非圧縮キャッシュ
US6532457B1 (en) Look-ahead tree structure
US7231383B2 (en) Search engine for large-width data
CN102867049A (zh) 一种基于单词查找树实现的汉语拼音快速分词方法
CN101236564A (zh) 一种海量数据高性能读取显示方法
US6470334B1 (en) Document retrieval apparatus
CN114691041A (zh) 键值存储系统、垃圾回收方法
KR100269114B1 (ko) 캐쉬 운영방법
JPH06195381A (ja) データ検索装置
JPH05101102A (ja) 検索装置
JPH04128946A (ja) アドレス変換方式
JP4327669B2 (ja) キャッシュ装置及び方法
JP2563645B2 (ja) 文書検索装置
Kocberber et al. Compressed multi-framed signature files: an index structure for fast information retrieval
JP2009175896A (ja) 情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体
JP2961888B2 (ja) 用語辞書による文書検索システム
JPH07271667A (ja) 情報管理方式
Ribeiro et al. Distributed parallel generation of pat arrays
JP2502811B2 (ja) 物理キャッシュ装置