JP2002049645A - ハッシュ値算出方法、ハッシュ値算出装置、検索方法、検索装置、記録媒体 - Google Patents

ハッシュ値算出方法、ハッシュ値算出装置、検索方法、検索装置、記録媒体

Info

Publication number
JP2002049645A
JP2002049645A JP2000234735A JP2000234735A JP2002049645A JP 2002049645 A JP2002049645 A JP 2002049645A JP 2000234735 A JP2000234735 A JP 2000234735A JP 2000234735 A JP2000234735 A JP 2000234735A JP 2002049645 A JP2002049645 A JP 2002049645A
Authority
JP
Japan
Prior art keywords
hash value
character string
hash
character
storage device
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
JP2000234735A
Other languages
English (en)
Inventor
Kazuaki Asakawa
和明 浅川
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.)
NEC Solution Innovators Ltd
Original Assignee
NEC Solution Innovators 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 NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP2000234735A priority Critical patent/JP2002049645A/ja
Publication of JP2002049645A publication Critical patent/JP2002049645A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 ハッシュ値が偏るためシノニムが多くなり、
シノニム内からの検索に時間がかかるため、類似した文
字列の多いデータに対して検索速度が落ちる。 【解決手段】 記憶装置4はハッシュテーブル部41
と、文字列記憶部42とを備える。データ処理装置2は
ハッシュ値算出手段21と、テーブル検索手段22とを
備える。ハッシュ値算出手段21は、入力装置1から与
えられた文字列の各文字の文字コードと係数記憶装置3
の数列の各要素との積を取り、その総和を求めてハッシ
ュ値とする。テーブル検索手段22はハッシュ値算出手
段21の求めたハッシュ値に対応するハッシュテーブル
部41を探索し、与えられた文字列に該当するデータを
文字列記憶部42から検索する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はハッシュテーブルを
用いた検索方法に関し、特に、類似した文字列の多い、
特に固定長文字列のデータを高速に検索するためのハッ
シュテーブル用ハッシュ値算出方法に関する。
【0002】
【従来の技術】従来、大量の文字列データを高速に検索
する手段としてハッシュテーブルが用いられている。
【0003】特開平5ー143648号公報「情報登録
検索装置」には、ハッシュ値によりハッシュテーブルの
エントリを検索し、ハッシュ値が同じでキー名が異なる
場合にはキーテーブルにより通常のシノニムチェインを
作ってデータを登録し、またハッシュ値及びキー名が同
じ場合には対応するキーテーブルからデータテーブルに
より同名チェインを作ってデータを登録する技術が開示
されている。
【0004】
【発明が解決しようとする課題】従来技術には次のよう
な問題点があった。第1の問題点は、類似した文字列の
多いデータに対して検索速度が落ちやすい事である。そ
の理由は、ハッシュ値が偏りやすいためシノニムが多く
なり、シノニム内からの検索に時間がかかるためであ
る。第2の問題点は、類似した文字列の多いデータに対
してメモリ使用効率が落ちやすい事である。その理由
は、ハッシュ値が偏りやすく、使用されないエントリが
多くなりやすいためである。
【0005】特開平5ー143648号公報「情報登録
検索装置」は、ハッシュ値の偏りを減らすことについて
は開示されていない。
【0006】本発明は、以上の問題を解決するハッシュ
テーブル用ハッシュ値算出方法、装置を提供する。
【0007】
【課題を解決するための手段】本発明のハッシュ値算出
装置は、ハッシュ値算出のための係数をあらかじめ記憶
する係数記憶装置と、ハッシュテーブル部と文字列記憶
部を記憶する記憶装置と、ハッシュ値算出手段を有し、
前記ハッシュ値算出手段が入力装置から与えられた文字
列の各文字の文字コードを数値とした値と前記係数記憶
装置の数列の各要素との積を取り、前記積の総和を求め
てハッシュ値とするデータ処理装置とを有する。
【0008】本発明の検索装置は、ハッシュ値算出のた
めの係数をあらかじめ記憶する係数記憶装置と、ハッシ
ュテーブル部と、文字列記憶部を記憶する記憶装置と、
前記入力装置から与えられた文字列の各文字の文字コー
ドを数値とした値と前記係数記憶装置の数列の各要素と
の積を取り、前記積の総和を求めてハッシュ値とする前
記ハッシュ値算出手段と、前記ハッシュ値算出手段の求
めた前記ハッシュ値に対応する前記ハッシュテーブル部
を探索し、与えられた前記文字列を文字列記憶部から検
索するテーブル検索手段から構成されるデータ処理装置
とを有する。
【0009】本発明のハッシュ値算出方法は、文字列か
らハッシュ値を算出する方法であって、ハッシュ値算出
のための複数の係数をあらかじめ計数テーブルに記憶す
る第一の処理と、与えられた文字列の各文字の文字コー
ドを数値とした値と前記計数テーブル内に格納されてい
る計数との積を取る第二の処理と、前記積の総和を求め
てハッシュ値とする第三の処理から構成される。
【0010】本発明の検索方法は、複数の文字からなる
文字列を文字列記憶部から検索する検索方法であって、
ハッシュ値算出のための複数の係数をあらかじめ計数テ
ーブルに記憶する第一の処理と、前記文字列のそれぞれ
の前記文字の文字コードを数値とした値と前記計数テー
ブル内に格納されている計数との積を取る第二の処理
と、前記積の総和を求めてハッシュ値とする第三の処理
と前記ハッシュ値に対応する前記ハッシュテーブル部を
探索し、前記文字列を前記文字列記憶部から検索する第
四の処理から構成される。
【0011】本発明第一の記録媒体は、本発明のハッシ
ュ値算出方法の各処理をコンピュータに実行させるプロ
グラムを記録した。
【0012】本発明第二の記録媒体は、本発明の検索方
法の各処理をコンピュータに実行させるプログラムを記
録した。
【0013】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。
【0014】図1は、本発明実施の形態のハッシュ値算
出装置の構成を示すブロック図である。図1を参照する
と、本発明のハッシュ値算出装置は、入力装置1と、デ
ータ処理装置2と、係数記憶装置3と、文字列情報を記
憶する記憶装置4とから構成される。係数記憶装置3は
ハッシュ値算出のための係数をあらかじめ記憶してい
る。この計数は経験的に最適な数値を選択している。
【0015】記憶装置4は、ハッシュテーブル部41
と、文字列記憶部42とを記憶している。データ処理装
置2はハッシュ値算出手段21と、テーブル検索手段2
2とを備える。ハッシュ値算出手段21は、入力装置1
から与えられた文字列の各文字の文字コードを数値とし
た値と係数記憶装置3の数列の各要素との積を取り、そ
の総和を求めてハッシュ値とする。テーブル検索手段2
2はハッシュ値算出手段21の求めたハッシュ値に対応
するハッシュテーブル部41を探索し、与えられた文字
列に該当するデータを文字列記憶部42から検索する。
【0016】次に、図1及び図2を参照して本実施例の
動作について詳細に説明する。図2は、本発明第一の実
施の形態のハッシュ値算出方法を用いた検索方法の動作
を示すフローチャートである。以下の式によりハッシュ
値を求める。
【0017】H(s[]) = s[1] × k[1] + s[2] × k[2] +
... + s[n] × k[n]。
【0018】H() : ハッシュ値。(十進数) s[i] : 入力装置1から与えられた文字列のi番目の文字
の文字コードを十進数にした値。
【0019】k[] : 係数記憶装置3に記憶されている
係数数列のi番目の要素(十進数)。
【0020】まず、入力装置1から与えられた入力文字
列は、ハッシュ値算出手段21に供給される(ステップ
A−1)。総和を計算するための返却値を0にする(ス
テップA−2)。ハッシュ値算出手段21は、係数記憶
装置3の数列の各要素を求め(ステップA−4)と入力
装置1から与えられた文字列の各文字の文字コードを数
値とした値との積を取り(ステップA−5)、その総和
を求めてハッシュ値とする(ステップA−3)。このよ
うにする事で、与えられた文字列から以下の式に対応す
るハッシュ値が得られる。テーブル検索手段22はハッ
シュ値算出手段21の求めたハッシュ値に対応するハッ
シュテーブル部41を探索し、入力装置1から与えられ
た文字列を文字列記憶部42から検索する(ステップA
−6)。
【0021】次に、図3と4に示す具体例を用いて本実
施例の動作を説明する。図3は、本発明第一の実施の形
態のハッシュ値算出方法において、実際の文字列とハッ
シュテーブルの内容を示す図である。図4は、本発明第
一の実施の形態のハッシュ値算出方法において、実際の
文字列とハッシュ値とインデックスの内容を示す図であ
る。
【0022】図3に示すように、例えば、係数記憶装置
3には以下の数列が記憶されている。{ 31, 117, 111,
43, 3, 25, 17, 101, 59, 125, 49, 7, 97,
19,45, 23, 57, 63, 13, 41, 73, 55, 85,
35, 11, 115, 103, 1,29, 5, 91, 79 }。
【0023】入力文字列として、"TABLE001△△△△△
△△△△△△△△△△△△△△△△△△△"が与えられ
たする。ハッシュ値算出手段21は各文字の文字コード
を数値とした値と係数記憶装置3の係数との積を順次計
算し、その総和を算出する(A3及びA4)。この計算
を文字列の長さ分繰り返し(A2)、ハッシュ値 68935
を得る。計算方法は、( 'T' × 31 + 'A' × 117 + 'B'
× 111 + ... + '△'× 79 = 68935 )である。ここ
で、 'A' は、ASCIIコードで41(16進数)で
あるから、十進数で65である。 'B' は、ASCII
コードで42(16進数)であるから、十進数で66で
ある。'△'ASCIIコードで20(16進数)である
から、十進数で32である。
【0024】テーブル検索手段22はハッシュ値をハッ
シュテーブルサイズ(例えば128、十進数)で割った余
りを計算し、ハッシュテーブルのインデックス値 71
(十進数)を得る。テーブル検索手段22はハッシュテ
ーブル部41のインデックス値71 内を探索し、入力さ
れた文字列を検索する。同様に以下の様な文字列が与え
られた場合、ハッシュ値算出手段21はそれぞれの文字
列についてハッシュ値を求め、テーブル検索手段22は
それぞれのハッシュ値に対応するハッシュテーブルのイ
ンデックスを探索する。
【0025】次に、本発明第二の実施例について図面を
参照して詳細に説明する。図5は、本発明第二の実施の
形態のハッシュ値算出方法を用いた検索方法の動作を示
すフローチャートである。図5を参照すると、本実施例
は、ハッシュ値算出手段21が、図2に示された実施例
におけるハッシュ値算出手段21に対し、係数記憶装置
3の数列の長さを超える文字列に対してハッシュ値を求
める機能を有する点で異なる。
【0026】まず、入力装置1から与えられた入力文字
列は、ハッシュ値算出手段21に供給される(ステップ
B−1)。総和を計算するための返却値を0にする(ス
テップB−2)。ハッシュ値算出手段21は、係数記憶
装置3の数列の各要素を求め(ステップB−5)と入力
装置1から与えられた文字列の各文字の文字コードを数
値とした値との積を取る(ステップB−6)。ハッシュ
値算出手段21は、係数記憶装置3の最後の係数を使う
と、次からはもう一度最初の係数から使い始める(図4
のB3及びB7)。このようにする事で可変長文字列に
対してもハッシュ値を得られるようにしている。返却値
の総和を求めてハッシュ値とする(ステップB−4)。
このようにする事で、与えられた文字列から以下の式に
対応するハッシュ値が得られる。テーブル検索手段22
はハッシュ値算出手段21の求めたハッシュ値に対応す
るハッシュテーブル部41を探索し、入力装置1から与
えられた文字列を文字列記憶部42から検索する(ステ
ップB−8)。
【0027】次に、具体例について図6を用いて説明す
る。図6は、本発明第二の実施の形態のハッシュ値算出
方法において、実際の文字列とハッシュ値とインデック
スの内容を示す図である。
【0028】図3の例では、"TABLE000000000000000000
0000000001"という文字列は係数記憶装置3に記憶され
ている係数の数よりも文字列の方が長いため処理できな
い。図5のシステムは係数記憶装置3の全(すべ)ての
係数を使った後は、最初の係数から使い始める。このた
め、最後の文字"1"を処理する時は、数列の最初の数字
31 を使用する。計算方法は、( 'T' × 31 + 'A' × 11
7 + 'B' × 111 + ... + '1' × 31 = 89314 )である。
この方法によりハッシュ値及びインデックス値を求める
と図6の様になる。
【0029】上述の各ステップは、コンピュータ60と
そのコンピュータ60上で走行するのプログラムを用い
た処理により実現することが可能である。図7は、本発
明実施の形態のハッシュ値算出方法をコンピュータ60
に実行させるプログラムを記録した記録媒体61とコン
ピュータ60を示す図である。
【0030】
【発明の効果】本発明の効果は、類似した文字列の多い
データに対して検索効率・メモリ使用効率の良いハッシ
ュテーブルを作成する事により、検索速度、及びメモリ
使用率を向上させられる事である。その理由は、類似し
た文字列の多いデータに対しても偏りの少ないハッシュ
値を得られるためである。
【図面の簡単な説明】
【図1】本発明実施の形態のハッシュ値算出装置の構成
を示すブロック図である。
【図2】本発明第一の実施の形態のハッシュ値算出方法
を用いた検索方法の動作を示すフローチャートである。
【図3】本発明第一の実施の形態のハッシュ値算出方法
において、実際の文字列とハッシュテーブルの内容を示
す図である。
【図4】本発明第一の実施の形態のハッシュ値算出方法
において、実際の文字列とハッシュ値とインデックスの
内容を示す図である。
【図5】本発明第二の実施の形態のハッシュ値算出方法
を用いた検索方法の動作を示すフローチャートである。
【図6】本発明第二の実施の形態のハッシュ値算出方法
において、実際の文字列とハッシュ値とインデックスの
内容を示す図である。
【図7】本発明実施の形態のハッシュ値算出方法をコン
ピュータ60に実行させるプログラムを記録した記録媒
体61とコンピュータ60を示す図である。
【符号の説明】
1 入力装置 2 データ処理装置 3 係数記憶装置 4 記憶装置 21 ハッシュ値算出手段 22 テーブル検索手段 41 ハッシュテーブル部 42 文字列記憶部 60 コンピュータ 61 記録媒体

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ハッシュ値算出のための係数をあらかじ
    め記憶する係数記憶装置と、ハッシュテーブル部と文字
    列記憶部を記憶する記憶装置と、ハッシュ値算出手段を
    有し、前記ハッシュ値算出手段が入力装置から与えられ
    た文字列の各文字の文字コードを数値とした値と前記係
    数記憶装置の数列の各要素との積を取り、前記積の総和
    を求めてハッシュ値とするデータ処理装置とを有するこ
    とを特徴とするハッシュ値算出装置。
  2. 【請求項2】 ハッシュ値算出のための係数をあらかじ
    め記憶する係数記憶装置と、ハッシュテーブル部と、文
    字列記憶部を記憶する記憶装置と、前記入力装置から与
    えられた文字列の各文字の文字コードを数値とした値と
    前記係数記憶装置の数列の各要素との積を取り、前記積
    の総和を求めてハッシュ値とする前記ハッシュ値算出手
    段と、前記ハッシュ値算出手段の求めた前記ハッシュ値
    に対応する前記ハッシュテーブル部を探索し、与えられ
    た前記文字列を文字列記憶部から検索するテーブル検索
    手段から構成されるデータ処理装置とを有することを特
    徴とする検索装置。
  3. 【請求項3】 文字列からハッシュ値を算出する方法で
    あって、ハッシュ値算出のための複数の係数をあらかじ
    め計数テーブルに記憶する第一の処理と、与えられた文
    字列の各文字の文字コードを数値とした値と前記計数テ
    ーブル内に格納されている計数との積を取る第二の処理
    と、前記積の総和を求めてハッシュ値とする第三の処理
    から構成されることを特徴とするハッシュ値算出方法。
  4. 【請求項4】 複数の文字からなる文字列を文字列記憶
    部から検索する検索方法であって、 ハッシュ値算出のための複数の係数をあらかじめ計数テ
    ーブルに記憶する第一の処理と、前記文字列のそれぞれ
    の前記文字の文字コードを数値とした値と前記計数テー
    ブル内に格納されている計数との積を取る第二の処理
    と、前記積の総和を求めてハッシュ値とする第三の処理
    と前記ハッシュ値に対応する前記ハッシュテーブル部を
    探索し、前記文字列を前記文字列記憶部から検索する第
    四の処理から構成されることを特徴とする検索方法。
  5. 【請求項5】 請求項3記載のハッシュ値算出方法の各
    処理をコンピュータに実行させるプログラムを記録した
    記録媒体。
  6. 【請求項6】 請求項4記載の検索方法の各処理をコン
    ピュータに実行させるプログラムを記録した記録媒体。
JP2000234735A 2000-08-02 2000-08-02 ハッシュ値算出方法、ハッシュ値算出装置、検索方法、検索装置、記録媒体 Pending JP2002049645A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000234735A JP2002049645A (ja) 2000-08-02 2000-08-02 ハッシュ値算出方法、ハッシュ値算出装置、検索方法、検索装置、記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000234735A JP2002049645A (ja) 2000-08-02 2000-08-02 ハッシュ値算出方法、ハッシュ値算出装置、検索方法、検索装置、記録媒体

Publications (1)

Publication Number Publication Date
JP2002049645A true JP2002049645A (ja) 2002-02-15

Family

ID=18727069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000234735A Pending JP2002049645A (ja) 2000-08-02 2000-08-02 ハッシュ値算出方法、ハッシュ値算出装置、検索方法、検索装置、記録媒体

Country Status (1)

Country Link
JP (1) JP2002049645A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008283703A (ja) * 2002-09-19 2008-11-20 Research In Motion Ltd 通信デバイス上で連絡情報にアクセスするシステムおよび方法
US8095526B2 (en) 2003-12-02 2012-01-10 Nec Corporation Efficient retrieval of variable-length character string data
JP4944266B1 (ja) * 2011-06-08 2012-05-30 義尚 神山 2分割文字検索ソフトウェア

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008283703A (ja) * 2002-09-19 2008-11-20 Research In Motion Ltd 通信デバイス上で連絡情報にアクセスするシステムおよび方法
US8095526B2 (en) 2003-12-02 2012-01-10 Nec Corporation Efficient retrieval of variable-length character string data
US8200646B2 (en) 2003-12-02 2012-06-12 Nec Corporation Efficient retrieval of variable-length character string data
JP4944266B1 (ja) * 2011-06-08 2012-05-30 義尚 神山 2分割文字検索ソフトウェア

Similar Documents

Publication Publication Date Title
JP3554459B2 (ja) テキストデータ登録検索方法
JPH05189490A (ja) 関数結果をセーブし検索する方法と装置
CN109828789A (zh) 加速压缩方法以及加速压缩装置
JP2002049645A (ja) ハッシュ値算出方法、ハッシュ値算出装置、検索方法、検索装置、記録媒体
JP3360693B2 (ja) 顧客情報検索方式
CN109802685A (zh) 加速压缩方法以及加速压缩装置
JP3534471B2 (ja) マージソート方法及びマージソート装置
CN109802686A (zh) 加速压缩方法以及加速压缩装置
CN109857463A (zh) 加速压缩方法以及加速压缩装置
JPH09245045A (ja) 鍵検索方法および装置
JP2596332B2 (ja) データ組合せ抽出方法およびその装置
JPS642970B2 (ja)
JPS61141036A (ja) デ−タ検索方式
JP3040114B2 (ja) レコード検索装置
JPS6373422A (ja) 情報検索装置
JPH10326283A (ja) 文書検索システム
JPH06162096A (ja) レコード検索方法
JP2004206631A (ja) 検索チューニング方法および情報検索システム
JPH01259418A (ja) 文字列検索装置
JPH07319888A (ja) 索引検索方式
JPH0546663A (ja) キーワード検索方式
JP3224159B2 (ja) エキスパートシステム
CN117290377A (zh) 一种关系型数据库间sql语句的转换方法以及装置
JPH04205173A (ja) 情報検索システム
JP2002269096A (ja) 文字列復元方法及びその装置並びに記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040727

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041124