JP2000105770A - ハッシュテーブル検索方法および装置 - Google Patents

ハッシュテーブル検索方法および装置

Info

Publication number
JP2000105770A
JP2000105770A JP10274009A JP27400998A JP2000105770A JP 2000105770 A JP2000105770 A JP 2000105770A JP 10274009 A JP10274009 A JP 10274009A JP 27400998 A JP27400998 A JP 27400998A JP 2000105770 A JP2000105770 A JP 2000105770A
Authority
JP
Japan
Prior art keywords
key
hash
search
data
hash table
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
JP10274009A
Other languages
English (en)
Inventor
Yukio Takase
瀬 行 夫 高
Hiroyuki Ito
藤 博 之 伊
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP10274009A priority Critical patent/JP2000105770A/ja
Publication of JP2000105770A publication Critical patent/JP2000105770A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 テーブルに格納したデータをキー項目により
高速に検索し、かつテーブル容量を小さくすること。 【解決手段】 キー取得部104は、ハッシュ計算部1
03のハッシュ値によりハッシュ表格納部108からキ
ーを取得して、キー一致判定部105により検索キーと
比較することにより検索対象のキーであるかを判定す
る。不一致の場合は、テーブル未登録と判断する。一致
した場合は、シノニムが発生しないので目的のキーとな
りデータ取得部106によりデータを取得してデータ格
納部107に格納する。ハッシュ計算部103の演算量
が少なく、シノニム対策が不要であるため、検索の高速
化を図れる。また、ハツシュ表格納部108の空きエリ
アを利用して、データそのものを格納しているためテー
ブルの容量を小さく抑えられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、テーブルに格納し
たデータをキー項目により検索するために、ハッシュ関
数を利用したデータの検索および装置に関するものであ
り、テーブルに格納するデータが事前に決定し、データ
の追加が発生しない分野で有効である。
【0002】
【従来の技術】検索キーをもとにテーブルを直接参照し
て検索する手法としては、キーからテーブルの番地に変
換する写像関数であるハッシュ関数が知られている。参
考文献としては、「アルゴリズム+データ構造=プログ
ラム」 N.Wirth著日本コンピュータ協会、「アルゴリズ
ムC++」R.セジウィック著、近代科学社、等がある。
【0003】ハッシュ関数は、キーの集合Kから番地の
集合Aへの多対1の写像Hであり、テーブルTの大きさ
をNとすると(式1)となる。 A=H(K)=Hash(K)mod N ・・・(式1) 検索の手順は、以下のステップからなる。 (1)検索キーKにより、H(K)を計算してインデッ
クスAを求める。 (2)インデックスAにより示されるテーブル中のキー
項目がキーKによるものかを検証する。すなわち、T
[H(K)]=Kが成立するか確認する。これは、相異
なるキーが相異なる番地に写像されるのが理想である
が、H(K)が多対1の写像関数であるために、複数の
キーが同じ番地に写像されるシノニムという衝突現象が
発生するためである。 (3)シノニムが発生していない場合は、インデックス
Aにより示されるデータ項目が検索結果のデータとな
る。 (4)シノニムが発生した場合は、複数のキーが同一の
インデックスAに写像されているので、二次検索を行い
目的のキーが格納されたインデックスを再び求めること
になる。
【0004】ハッシュ関数において、シノニムの発生を
抑えるために、一般的にテーブルの大きさNは素数であ
ることが推奨されている。また、シノニム対策の二次検
索方法には、一次インデックスH(K)が同一のすべて
の項目を連結リストにより直接チェイニングしリンクを
辿り、目的のキーを検索する方法や、項目が見つかるか
空の場所に出会うまで、A=H(K)+G(I)により
次の検索位置を決める方法がある。
【0005】ハッシュテーブルの検索を高速化する方法
として、二分木構造でキー管理を行う特開平10−40
255号公報や二次関数を用いて衝突管理を行う特開平
−3599号公報に記載された技術が知られている。ま
た、検索効率・メモリ使用効率の良いハッシュテーブル
の生成方法として特開平7−18841号公報、シノニ
ムの管理方法として特開昭1−42032号公報記載の
技術が知られている。
【0006】
【発明が解決しようとする課題】しかしながら、上記従
来の手法では、ハッシュ関数を演算するために素数Nに
よる剰余を求める必要があり、除算器を搭載していない
DSPやマイクロプロセッサ等においては、計算量が大
きくなるために処理が遅くなり、さらにシノニム対策の
二次検索処理のためにさらに計算量が大きくなり、高速
性を要求する場合には不向きという問題を有していた。
【0007】本発明は、上記従来の問題を解決するもの
であり、ハッシュ関数の計算量を少なくすることにより
処理の高速化を図り、さらにシノニムの発生を防ぐこと
によりシノニム対策そのものを不要とすると共に、ハッ
シュテーブルのメモリ使用効率の良いテーブル検索方法
および装置を提供することを目的とする。
【0008】
【課題を解決するための手段】上記目的を達成するため
に本発明は、ハッシュテーブルの大きさNを2のべき乗
とすることにより、Nの剰余を求める演算を論理積によ
るマスク演算で代用可能として演算量を少なくしたもの
であるが、Nを素数から2のべき乗とするとハッシュ効
果が薄れ、ハッシュ関数の結果がある一部に固まってし
まうので、検索キーそのものをハッシュ関数の演算対象
とするのではなく、検索キーを構成するキー項目に対し
てハッシュ演算するためにキー分離を行なうようにした
ものである。
【0009】また、ハッシュテーブルをデータ件数の2
倍程度に充分大きく取り、シノニムの発生を減少させる
と共に、テーブルに格納するデータが事前に決定してい
るので、ハッシュ計算に用いる係数を変化させてシノニ
ムの発生しない係数を選択することにより、シノニム対
策部を不要とし、検索の高速化を図っている。また、ハ
ッシュテーブルを大きく取ると、キーが格納されない空
きエリアが発生するが、空きエリアにデータそのものを
格納することにより、メモリの使用効率を向上させてい
る。
【0010】
【発明の実施の形態】本発明の請求項1に記載の発明
は、検索キーによりテーブルを検索する方法であって、
検索キーを構成する複数のキー項目に分離するキー分離
手順と、ハッシュ関数の演算を行うハッシュ計算手順
と、ハッシュ表からキーを取得する手順と、取出したキ
ーと検索キーの一致を判定する手順と、ハッシュ表から
データを取得する手順を含むことを特徴とするハッシュ
テーブル検索方法であり、ハッシュ関数の計算量を少な
くすることにより処理の高速化を図り、さらにシノニム
の発生を防ぐことによりシノニム対策そのものを不要に
することができるという作用を有する。
【0011】本発明の請求項2に記載の発明は、請求項
1記載のハッシュテーブル検索方法において、キーとデ
ータを同じハッシュ表に格納することを特徴とするハッ
シュテーブル検索方法であり、メモリの使用効率を向上
できるという作用を有する。
【0012】本発明の請求項3に記載の発明は、検索キ
ーによりテーブルを検索する装置であって、検索キーを
構成する複数のキー項目に分離するキー分離手段と、ハ
ッシュ関数の演算を行うハッシュ計算手段と、ハッシュ
表からキーを取得する手段と、取出したキーと検索キー
の一致を判定する手段と、ハッシュ表からデータを取得
する手段を含むことを特徴とするハッシュテーブル検索
装置であり、ハッシュ関数の計算量を少なくすることに
より処理の高速化を図り、さらにシノニムの発生を防ぐ
ことによりシノニム対策そのものを不要にすることがで
きるという作用を有する。
【0013】本発明の請求項4に記載の発明は、請求項
3記載のハッシュテーブル検索装置において、キーとデ
ータを同じハッシュ表に格納することを特徴とするハッ
シュテーブル検索装置であり、メモリの使用効率を向上
できるという作用を有する。
【0014】本発明の請求項5に記載の発明は、検索キ
ーによりテーブルを検索するためのプログラムを記録し
た媒体であり、検索キーを構成する複数のキー項目に分
離するキー分離手段と、ハッシュ関数の演算を行うハッ
シュ計算手段と、ハッシュ表からキーを取得する手段
と、取出したキーと検索キーの一致を判定する手段と、
ハッシュ表からデータを取得する手段を含むことを特徴
とするハッシュテーブル検索プログラムを記録した媒体
であり、上記したハッシュテーブル検索方法または装置
をプログラムとして媒体に記録できるという作用を有す
る。
【0015】(実施の形態)以下、本発明の実施の形態
を図面を参照して説明する。図1は本発明の実施の形態
におけるハッシュテーブル検索装置の構成を示すブロッ
ク図である。図1において、101は複数の検索キーを
格納する検索キー格納部、102は検索キーを構成する
複数のキー項目に分離するキー分離部、103はハッシ
ュ関数の演算を行うハッシュ計算部、104はハッシュ
表格納部108からキーを取得するキー取得部、105
は取出したキーと検索キーの一致を判定するキー一致判
定部、106はハッシュ表格納部108からデータを取
得するデータ取得部、107は取得したデータを格納す
るデータ格納部、108はキーとデータとを同じハッシ
ュ表示に格納するハッシュ表格納部である。
【0016】次に、本実施の形態における動作について
説明する。ハッシュ表格納部108の大きさNを2のべ
き乗とすることにより、ハッシュ計算部103でNの剰
余を求める演算(式2)を、N−との論理積によるマス
ク演算(式3)で代用することが可能であり、除算器を
持たないDSPやマイクロプロセッサにおいて演算量を
小さくすることができる。 A=Hash (K)mod N ・・・(式2) A=Hash (K)and (N−1) ・・・(式3)
【0017】しかしながら、Nを素数から2のべき乗と
するとハッシュ効果が薄れ、ハッシュ関数の結果がある
一部に固まってしまう。そこで、ハッシュ計算部103
で検索キーを直接にハッシュ関数の演算対象とはせず、
検索キー格納部101に格納された検索キーをキー分離
部102でキーを構成する複数のキー項目に分離し、
(式4)に示す演算を行い、ハッシュ関数の結果を分散
させる。 A=Hash (K1,K2,K3)and (N−1) ・・・(式4)
【0018】ハッシュ表格納部108の大きさは、デー
タ件数の2倍程度に十分大きく取り、シノニムの発生頻
度を減少させると共に、テーブルに格納するキー(K
1,K2,K3)の組み合わせに対して、(式4)の結
果Aがユニークとなるハッシュ関数Hash( )を採用
することにより、シノニムが発生しないようにハッシュ
表格納部108にキーを格納する。
【0019】キー取得部104は、ハッシュ計算部10
3の計算結果によりハッシュ表格納部108からキーを
取得して、キー一致判定部105により検索キーと比較
して検索対象のキーであるか判定する。不一致の場合
は、テーブルに存在しないキー(K1’,K2’,K
3’)の組み合わせによる計算結果A’がAと等しくな
ったわけであり、テーブル未登録となる。一致した場合
は、シノニムが発生しないハッシュ関数なので目的のキ
ーとなる。従って、ハッシュ計算の演算量を小さくする
ことと、シノニム対策による二次検索が不要であるた
め、高速な検索を行うことができる。
【0020】一方、ハッシュ表格納部108のテーブル
の大きさをデータ件数の2倍程度に充分大きく取ったた
め、テーブルの半分はキーが格納されない空きエリアと
なっている。そこで、データのビット列をキーとみなし
て分離したキー(D1,D2,D3)の組み合わせによ
り、(式5)の結果D以外の空きエリアにデータそのも
のを格納してキーとリンクで結ぶことによりハッシュ表
格納部108のメモリ使用効率を高めている。すなわ
ち、テーブルに存在しないキー(K1’,K2’,K
3’)の組合わせによる計算結果A’がDと一致しない
ことを保証する。 D=Hash (D1,D2,D3)and (N−1) ・・・(式5)
【0021】ハッシュ表格納部108において、キーも
データも格納されない空きエリアには、すべてのビット
が0であるビット列を格納する。データ取得部106
は、キー一致判定部105により検索対象のキーである
ことが確定した場合に、キー部のリンクをたどることに
よりデータを取得してデータ格納部107に格納する。
【0022】
【実施例】図2は本発明の実施例を示し、MPEG−4
画像符号化におけるINTRAVLCテーブルの検索方
法についての実施例である。図2において、201は検
索キーをキー項目に分離するキー分離部、202はキー
項目によりハッシュ関数を計算するハッシュ計算部、2
03はハッシュ表格納部206からキーを取出すキー取
得部、204は検索キーと取出したキーを比較するキー
一致判定部、205はハッシュ表格納部206からデー
タを取出すデータ取得部、206はキー毎の一致キーと
データとポインタを格納するハッシュ表格納部である。
【0023】MPEG−4画像符号化においては、下記
に示すキー項目によりVLCコードを検索する。 キー項目1 LEVEL 1〜27の範囲の値 5bit キー項目2 RUN 0〜20の範囲の値 5bit キー項目3 LAST 0〜1 の範囲の値 1bit
【0024】INTRA VLCテーブルのデータ件数
は102件であるので、ハッシュ表格納部206の大き
さNを25とし、各々のキーを(式6)により計算した
番地Aに格納する。 A=(LEVEL*23+RUN*3+LAST*17)and (25−1) ・・・(式6) また、VLCコードのビット列をキー項目として取出
し、(式6)を計算した値をDとすると、ハッシュ表格
納部206の番地D以外の位置にデータを格納する。
【0025】図3から図7にはINTRA VLCテー
ブルのハッシュ表格納部についての一例を示す。これら
の図において、ixはハッシュ表に格納する番地を示
し、LAST/RUN/LEVELはキー項目を示し、
OFSはVLCデータを格納した番地とキーほ格納した
番地とのオフセットによりポインタを現す。VLCは、
検索対象のデータである。TBLは、完成したハッシュ
表格納部である。
【0026】図8に示すように、検索キーはキー分離部
201により3つのキー項目LASTとRUNとLEV
ELに分離される。ハッシュ計算部202は、3つのキ
ー項目より(式6)のハッシュ計算を行い、キーが格納
されている番地を計算する。キー取得部203は、ハッ
シュ表格納部206から計算した番地により一致キーを
取出す。キー一致判定部204は、取出したキーと検索
キーを比較し、検索対象のキーであるか判定する。一致
した場合は、データ取得部205は、ポインタをたど
り、データであるVLCコードを取出し、検索が完了す
る。
【0027】なお、本発明はプログラムによって実現す
ることも可能であり、そのソフトウェアをフロッピーデ
ィスク等の記録媒体に記録して移送することにより、独
立した他のコンピュータ・システムで、このソフトウェ
アを収めた記録媒体から読み出して、本発明を容易に実
施することができる。そして、コンピュータ・システム
に接続されたフロッピーディスク装置により、フロッピ
ーディスクに対してプログラムを記録再生することがで
きる。記録する場合は、コンピュータ・システムからプ
ログラムをフロッピーディクス装置よって、フロッピー
ディスクに記録する。再生する場合は、フロッピーディ
スク装置によってプログラムをフロッピーディスクから
読み出し、コンピュータ・システムに転送する。
【0028】記録媒体としては、フロッピーディスクの
他に、光ディスク、光磁気ディスク等を用いても同様に
行うことができる。また、記録媒体は、これらに限られ
ず、ICカード、ROMカセット等、プログラムを記録
できるものであれば、同様に実施することができる。
【0029】
【発明の効果】以上のように本発明は、画像符号化のR
UN/LEVEL/LASTの組み合わせからVLCコ
ードを検索するような、テーブルに格納するデータが事
前に決定しているテーブル検索において、ハッシュ関数
の計算量を小さくし、シノニム発生を防ぎ、ハッシュテ
ーブルの使用効率を上げることにより、テーブルに格納
したデータをキー項目により高速に検索し、かつテーブ
ル容量を小さく抑えることが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるハッシュテーブル
検索装置の構成を示すブロック図
【図2】本発明の実施例におけるハッシュテーブル検索
装置の構成を示すブロック図
【図3】
【図4】
【図5】
【図6】
【図7】本発明の実施例におけるINTRA VLCテ
ーブルのハッシュ表格納部におけるデータ一覧図
【図8】本発明の実施例における動作を説明する模式図
【符号の説明】
101 検索キー格納部 102 キー分離部 103 ハッシュ計算部 104 キー取得部 105 キー一致判定部 106 データ取得部 107 データ格納部 108 ハッシュ表格納部 201 キー分離部 202 ハッシュ計算部 203 キー取得部 204 キー一致判定部 205 データ取得部 206 ハッシュ表格納部

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 検索キーによりテーブルを検索する方法
    であって、検索キーを構成する複数のキー項目に分離す
    るキー分離手順と、ハッシュ関数の演算を行うハッシュ
    計算手順と、ハッシュ表からキーを取得する手順と、取
    出したキーと検索キーの一致を判定する手順と、ハッシ
    ュ表からデータを取得する手順を含むことを特徴とする
    ハッシュテーブル検索方法。
  2. 【請求項2】 請求項1記載のハッシュテーブル検索方
    法において、キーとデータを同じハッシュ表に格納する
    ことを特徴とするハッシュテーブル検索方法。
  3. 【請求項3】 検索キーによりテーブルを検索する装置
    であって、検索キーを構成する複数のキー項目に分離す
    るキー分離手段と、ハッシュ関数の演算を行うハッシュ
    計算手段と、ハッシュ表からキーを取得する手段と、取
    出したキーと検索キーの一致を判定する手段と、ハッシ
    ュ表からデータを取得する手段を含むことを特徴とする
    ハッシュテーブル検索装置。
  4. 【請求項4】 請求項3記載のハッシュテーブル検索装
    置において、キーとデータを同じハッシュ表に格納する
    ことを特徴とするハッシュテーブル検索装置。
  5. 【請求項5】 検索キーによりテーブルを検索するため
    のプログラムを記録した媒体であって、検索キーを構成
    する複数のキー項目に分離するキー分離手段と、ハッシ
    ュ関数の演算を行うハッシュ計算手段と、ハッシュ表か
    らキーを取得する手段と、取出したキーと検索キーの一
    致を判定する手段と、ハッシュ表からデータを取得する
    手段を含むことを特徴とするハッシュテーブル検索プロ
    グラムを記録した媒体。
JP10274009A 1998-09-28 1998-09-28 ハッシュテーブル検索方法および装置 Pending JP2000105770A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10274009A JP2000105770A (ja) 1998-09-28 1998-09-28 ハッシュテーブル検索方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10274009A JP2000105770A (ja) 1998-09-28 1998-09-28 ハッシュテーブル検索方法および装置

Publications (1)

Publication Number Publication Date
JP2000105770A true JP2000105770A (ja) 2000-04-11

Family

ID=17535692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10274009A Pending JP2000105770A (ja) 1998-09-28 1998-09-28 ハッシュテーブル検索方法および装置

Country Status (1)

Country Link
JP (1) JP2000105770A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524946A (ja) * 2004-02-05 2007-08-30 エヌイーシー ラボラトリーズ アメリカ インク コンテンツ・ベースの情報検索アーキテクチャー
WO2007119540A1 (ja) * 2006-03-31 2007-10-25 Kyushu Institute Of Technology 連想メモリ
JP2011215765A (ja) * 2010-03-31 2011-10-27 Nec Corp テーブル構成方法、データアクセス方法、コンピュータプログラム、テーブル構成装置及びデータ処理装置
JP2012003773A (ja) * 2010-06-21 2012-01-05 Samsung Sds Co Ltd アンチマルウェアデバイス、サーバ及びマルウェアパターンマッチング方法
JP2012517064A (ja) * 2009-02-05 2012-07-26 ダブリューダブリューパス コーポレイション 安全なプライベート・データ記憶装置を有する集中型の認証システム、および方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524946A (ja) * 2004-02-05 2007-08-30 エヌイーシー ラボラトリーズ アメリカ インク コンテンツ・ベースの情報検索アーキテクチャー
JP4727594B2 (ja) * 2004-02-05 2011-07-20 エヌイーシー ラボラトリーズ アメリカ インク コンテンツ・ベースの情報検索アーキテクチャー
WO2007119540A1 (ja) * 2006-03-31 2007-10-25 Kyushu Institute Of Technology 連想メモリ
JP4934825B2 (ja) * 2006-03-31 2012-05-23 国立大学法人九州工業大学 連想メモリ
US8352677B2 (en) 2006-03-31 2013-01-08 Kyushu Institute Of Technology Associative memory
JP2012517064A (ja) * 2009-02-05 2012-07-26 ダブリューダブリューパス コーポレイション 安全なプライベート・データ記憶装置を有する集中型の認証システム、および方法
JP2011215765A (ja) * 2010-03-31 2011-10-27 Nec Corp テーブル構成方法、データアクセス方法、コンピュータプログラム、テーブル構成装置及びデータ処理装置
JP2012003773A (ja) * 2010-06-21 2012-01-05 Samsung Sds Co Ltd アンチマルウェアデバイス、サーバ及びマルウェアパターンマッチング方法

Similar Documents

Publication Publication Date Title
US6668263B1 (en) Method and system for efficiently searching for free space in a table of a relational database having a clustering index
US7461233B2 (en) Method for identifying data characteristics for flash memory
US8032534B2 (en) Method and system for indexing and searching high-dimensional data using signature file
US6983289B2 (en) Automatic identification of DVD title using internet technologies and fuzzy matching techniques
EP1582964A1 (en) Detection and identification methods for software
US11281645B2 (en) Data management system, data management method, and computer program product
EP1607868A1 (en) Data processing device, data processing program, and recording medium
JP3251138B2 (ja) ハッシュ方式
JP2000105770A (ja) ハッシュテーブル検索方法および装置
CN116881739B (zh) 一种面向空间关键字相似性的密文安全检索方法
CN113076562A (zh) 基于gcm加密模式的数据库加密字段模糊检索方法
JP3647940B2 (ja) データ管理装置
JP2990000B2 (ja) 検索システム
JP3639480B2 (ja) 類似データ検索方法,類似データ検索装置,および類似データ検索用プログラム記録媒体
JP2001134593A (ja) 近傍データ検索方法及び装置及び近傍データ検索プログラムを格納した記憶媒体
JP2886308B2 (ja) データ登録装置及び方法とデータ検索装置及び方法
US20050019008A1 (en) Automatic identification of DVD title using internet technologies and fuzzy matching techniques
CN115577070B (zh) 一种财务数据查询管理系统
KR20030006638A (ko) 셀 기반의 고차원 데이터 색인 장치 및 그 방법
JP2004152239A (ja) ファイル管理装置、ファイル管理方法及びプログラム
KR102172219B1 (ko) 객체의 메타데이터 처리 장치 및 방법
CN106777131A (zh) 一种高维空间数据的查询方法、装置及计算机可读介质
JPH05314188A (ja) 範囲をもつデータの検索処理方式
KR20010075870A (ko) 시그니처 파일을 이용한 데이터베이스 검색시스템에서의프레임 분할 병렬 처리 방법
JP3847836B2 (ja) 文字列検索方法とその装置