JPH09101965A - 情報登録方法および情報検索方法 - Google Patents

情報登録方法および情報検索方法

Info

Publication number
JPH09101965A
JPH09101965A JP7260420A JP26042095A JPH09101965A JP H09101965 A JPH09101965 A JP H09101965A JP 7260420 A JP7260420 A JP 7260420A JP 26042095 A JP26042095 A JP 26042095A JP H09101965 A JPH09101965 A JP H09101965A
Authority
JP
Japan
Prior art keywords
hash
search
key
character
bit
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.)
Granted
Application number
JP7260420A
Other languages
English (en)
Other versions
JP3596696B2 (ja
Inventor
Masakazu Fujimoto
正和 藤本
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP26042095A priority Critical patent/JP3596696B2/ja
Publication of JPH09101965A publication Critical patent/JPH09101965A/ja
Application granted granted Critical
Publication of JP3596696B2 publication Critical patent/JP3596696B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 ハッシュ検索法において、データ構造の追加
や全データの参照を行なわずに、ワイルドカード検索な
どの柔軟な検索を可能とすること。 【解決手段】 部分一致検索の検索キーを構成する各要
素の情報によってハッシュ値の値域を限定するハッシュ
関数を用いると共に、限定された値域に属する全てのハ
ッシュ値に対して検索を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キーに基づいた検
索を行なう検索方法に関し、特にワイルドカード検索、
部分一致検索等の柔軟な検索の可能な情報登録方法およ
び情報検索方法に関する。
【0002】
【従来の技術】キーに基づいた完全一致検索における高
速な検索方法としてハッシュ法が良く知られている。し
かし、ハッシュ法では、データ構造上、ワイルドカード
検索などの柔軟な検索が困難であるとされ、ハッシュ法
に関しては、衝突による検索速度の低下を抑えるために
提案されたもの(例えば特開昭63−271525号公
報、特開平04−358266号公報など)、ハッシュ
法を適用することによって装置の高速化を行うために提
案されたもの(例えば特開平05−061910号公
報)などが見受けられるものの、部分一致検索に関する
提案は全くなされておらず、これまでは、ハッシュ法を
用いた検索装置で柔軟な検索を行うためには、全文検索
などの他の方法を併用しなければならなかった。
【0003】
【発明が解決しようとする課題】ハッシュ法では実デー
タの他に、少なくともハッシュ表を必要とする。ハッシ
ュ表は、キーワードの異なり語数をNとして、おおよそ
ポインタ長*Nの大きさになる。ここで、部分一致検索
のために他の検索方法を併用すると、さらに別途インデ
ックスデータを持つ必要があり、データサイズが非常に
大きくなるという欠点がある。また、実データを直接参
照する全文検索方法を併用すれば、余分のインデックス
データは必要ないものの、全データを参照するため、実
データのサイズが大きくなると検索速度が非常に遅くな
り、実用的な速度が出せないという欠点がある。
【0004】本発明は、これらの問題を解決するため、
ハッシュ法において、データ構造の追加や全データの参
照を行なわずに、ワイルドカード検索などの柔軟な検索
が可能な検索装置を提供することを目的とする。
【0005】
【課題を解決するための手段】本発明に係わる情報登録
方法および情報検索方法では、部分一致検索の検索キー
を構成する各要素の情報によってハッシュ値の値域を限
定するハッシュ関数を用いるようにし、限定された値域
に属する全てのハッシュ値に対して検索を行う手段を設
ける。複数のハッシュ値に対する検索は、繰り返し検索
を行なうように構成してもよいし、並列計算によって検
索を行なうように構成してもよい。
【0006】
【作用】データの登録の際に、ハッシュ値がキーを構成
する要素に対応した値域内に入ることを保証するハッシ
ュ関数を用いる。そして、部分一致検索において、部分
キーが与えられると、ハッシュ関数が部分キーの構成要
素に対応する値域を求める。続いて、この値域内の全て
のハッシュ値を使用して検索する。この値域外には、与
えられた部分キーを含むキーが登録されていないため、
余分なデータに対して検索を行なう必要がなく、さらに
データ構造の追加も必要としない。このようにしてハッ
シュ法において、完全一致検索のみならず、部分一致検
索をも実現することが可能になる。
【0007】すなわち、検索を行なう際にハッシュ表を
参照するためのハッシュ値が、たとえば、0〜15であ
るとき、0〜15の全ての数について検索すれば全レコ
ードが検索できるが、ここで、ハッシュ値の値域をたと
えば奇数に限定すれば検索量は半分となる。このように
ハッシュ関数を工夫することにより部分一致検索が可能
となる。
【0008】
【発明の実施の形態】図1に、本発明のハッシュ検索方
法の原理を説明するための簡略化したハッシュ関数の例
を示す。また、図2に、図1のハッシュ関数を用いて検
索を行なう例を示す。
【0009】図1の例では、検索キーを構成する要素が
A,B,C,Dからなるものとする。ハッシュ関数とし
て、A,B,C,Dのそれぞれに対して、ハッシュ値の
1ビットを割り当て、キーの要素に「A」がある場合に
は、ビットフィールドAを1にし、キーの要素に「A」
がない場合には、ビットフィールドAを0にする関数を
用いる。これは、「A」が存在する場合のハッシュ値が
8から15の間の値になり、「A」が存在しない場合の
ハッシュ値が0から7の間の値に限定されることを意味
しており、0と1は逆転していても同様の効果がある。
また、同様なハッシュ値の値域の限定ができればビット
操作である必要はない。データの登録および完全一致検
索では、ビットフィールドA,B,C,Dの全てにこの
演算を行い、例えば「ABC」に対するハッシュ値は、
2進数で1110すなわち14とする。続いて、図2に
示すように、ハッシュ表を参照し、ハッシュ値14に対
応する「さしすせそ・・・」というデータが検索され
る。
【0010】図1の例で「AB*」は部分キーを表し、
キーの一部にAが含まれ、かつ、キーの一部にBが含ま
れるもの全てを検索することを示している。これは、
「A」が検索キーに存在し、かつ、「B」が検索キーに
存在するという条件であり、図1のハッシュ関数の例で
は、「A」が存在する場合のハッシュ値が、必ず8から
15の間の値になり、「B」が存在する場合のハッシュ
値が、必ず4から7の間の値か12から15の間の値の
どちらかになるという性質が利用できる。この2つの条
件の論理積をとると、「AB*」に対応するハッシュ値
は、12,13,14,15の4つであることがわか
る。
【0011】実際のハッシュ値を求める演算は、確定し
た「A」および「B」に対するビットフィールド、すな
わちビットフィールドAとビットフィールドBを1と
し、確定しない要素に対するビットフィールドは0と1
の全ての組み合わせをとればよい。この結果、12,1
3,14,15の4つが求められる。それぞれについ
て、図2に示すように、ハッシュ表を参照し、「あいう
えお・・・」「かきくけこ・・・」「さしすせそ・・
・」「たちつてと・・・」というデータが検索される。
【0012】以下に、本発明のハッシュ検索方法を電子
辞書に適用する実施例を用いた動作を説明する。図3
は、本発明のハッシュ検索方法を適用した電子辞書の構
成例である。図4は、本発明のハッシュ検索方法を電子
辞書に適用するためのデータ構造の構成例である。また
図5は、動作の概略のフローを示す。
【0013】図3に示す電子辞書は、表示画面上に各種
のデータなどを表示するCRT2lと、前記CRT21
での表示を制御するCRTドライバ22と、コマンドや
文字列、数値などの入力を行うキーボード23と、ポイ
ンティングデバイスであるマウス24と、ユーザーによ
るキーボード23やマウス24の操作によって、各種の
データを出力するキーボード/マウスドライバ25と、
ディスク装置26、ディスク装置ドライバ27、主記憶
装置28、CPU(中央処理装置)29とから構成され
ている。
【0014】ディスク装置26は、大量のデータを格納
するための二次記憶装置であり、後述するチェイン付き
インデックスや実データファイルなどが格納されてい
る。また、ディスク装置26のデータの入出力は、ディ
スク装置ドライバ27で制御されている。
【0015】主記憶装置28は、アプリケーションプロ
グラム、及びキーボード23やマウス24から入力され
た文字や数値などのデータのほか、後述するハッシュ表
を格納している。また、後述するフローチャートを実現
するプログラムも格納されている。
【0016】CPU29は、システム全体の制御を行う
と共に、各種の命令に基づいて所定のデータに対する演
算処理を行う回路であり、後述のフローチャートに基づ
いてデータの検索処理を実行する。実際には、主記憶装
置28に格納されているプログラムに従って、CPU2
9がフローチャートの処理を実行する。なお、この検索
処理を実現するための基本的な構成及び動作は、特開平
05−028194号公報などに開示されているものと
同様なものである。
【0017】上記電子辞書におけるデータ構造の概要を
図4に示す。図4のデータ構造は、基本的には、ハッシ
ュ表11、チェイン付きインデックス12、実データフ
ァイル13の3つから構成されている。
【0018】本実施例の電子辞書においては、図4に示
すように、通常の見出し語(「a」,「A」など)から
の検索に加え、転置キーの設定により単語の語義(「ひ
とつの」、「イ音」など)や発音のカタカナ表記
(「エ」、「ア」など)からの検索を行えるようになっ
ており、このため、キー/レコード数ともに非常に多
く、またあるキーに対するレコードも一意ではない。
【0019】最初に上記電子辞書におけるチェイン付き
ハッシュ法による検索の基本的な動作について説明す
る。
【0020】まず、ハッシュ表11は、検索キーkのハ
ッシュ値h(k)が指すアドレスよりチェイン付きイン
デックス12へのポインタを、たとえば、3バイトで保
持する。対応するキーが未登録の場合、FFFFFFH
を保持する。但し、Hは16進表示を意味する。つま
り、FFFFFFHとは、24ビット全てが“1”であ
ることを表している。
【0021】次に、チェイン付きインデックス12の詳
細を説明する。チェイン付きインデックス12は、デー
タレコードに一対一で対応する情報を持つインデックス
レコードの集合である。インデックスレコードの構造を
図6に示す。インデックスレコードは、レコードに設定
された全てのキーに関するチェインポインタl〜n(C
l-n)と、キー識別子1〜n(KDl-n)のペアの並
び、及びデータファイルヘのポインタ(データポインタ
(DP))を保持している。なお、キー識別子とは、登
録語そのもののコピーである。
【0022】チェインポインタは、対応するキーに関す
る次のインデックスレコードへのポインタであり、衝突
により同じハッシュ値を持つ登録キーのリスト(データ
のつながり)が構成される。
【0023】ここで衝突とは、異なる検索キーがハッシ
ュ関数により同じハッシュ値を持つことを意味する。こ
の場合の解決策として、本実施例ではチェインポインタ
を採用している。
【0024】各リストの先頭はハッシュ表11から直接
指されており、衝突がある場合、各ポインタは図7に示
すように、次のチェインポインタのアドレスを保持し、
リストの終端の場合にはnilとして000000Hが
格納される。チェインポインタは、たとえば、3バイト
で表現され、000000Hから7FFFFFHの値を
取り得る。
【0025】キ一識別子は、チェインポインタの直後に
存在し、入力キーが登録キーに対応するか否か、すなわ
ちハッシュ値の衝突の検出に用いられる。この実施例に
おけるキ一識別子の記述ルールを以下に示す。
【0026】(i)通常の検索キーにおいては、キ一識
別子の開始を示す81Hに続いて登録キーの文字列を格
納し、続いてキ一識別子の終了を示す82Hを格納す
る。
【0027】(ii)登録キーがチェインの直前と同じ
である場合は省略する。省略された場合は、キ一識別子
のあるべき位置に、次のチェインポインタまたはデリミ
タが格納されている。チェインポインタの1バイト目は
最大で7FHであり、デリミタはFFHであるため、省
略された場合でも、キ一識別子がある場合の81Hとは
明白に区別が可能である。
【0028】このようにキ一識別子を導入することによ
り、衝突のチェックのために実データを参照する必要が
なくなる。なお、実データにキーワードを格納するフィ
ールドを設け、実データのキーワードフィールドを参照
して、衝突のチェックを行うように構成しても構わな
い。
【0029】データポインタには、実データにおける実
際のデータレコードの先頭を指すアドレスが、デリミタ
FFHに続けて3バイトで格納されている。データポイ
ンタがFFFFFFHである場合は、データレコードが
削除されていることを示す。
【0030】実データファイル13はデータレコードの
集合であり、データレコードは次の形式を持つ。
【0031】(見出し語)(見出し区切り[NUL
L])(内容部)(レコード区切り[LF:Line
Feed]) キー識別子に前述のように80Hが用いられた場合、こ
のデータレコードの見出し語を参照することでキーの識
別を行う。チェイン付インデックスファイルのキー識別
子80Hが使用されている場合のみ実データファイルを
参照する。
【0032】実データファイル13(内容部)は、実際
の辞書記述部分であるが、この実施例ではキー識別子に
より検索キーの情報を含まないため、この内部にフィー
ルドなどの概念は不要であり、内容はフラットなテキス
卜でよい。ここでフラットとは、フィールド区切りの記
号を含まない文字コードだけからなるデータを意味す
る。データレコードは全体でーつのテキストファイルと
なる。
【0033】次に、上述した電子辞書によるデータ検索
のアルゴリズムを、図8のフローチヤートを用いて詳細
に説明する。
【0034】まず、初期化(ステップ101)の後、検
索キーのハッシュ値hを求め、ハッシュ表の位置hの内
容をインデックスポジションipとして読み込む(ステ
ップ102)。なお、ここで初期化とは、内部で使用す
るフラグ等を初期化し、また、キー識別子のバッファも
クリアすることを意味する。次に、ip=FFFFFF
Hであるかどうかを判定する(ステップ103)。ここ
で、ip=FFFFFFHであれば未登録キーとわかる
ので処理を終了する。また、ip=FFFFFFHでな
いときは、チェイン付きインデックス12上の位置ip
から3バイトをチェインポジションcpとしてチェイン
付インデックスのファイルから読み込み(ステップ10
4)、チェインポジションcpの次のバイトの値(キー
識別子の格納位置)≧80Hかどうかを判定する(ステ
ップl05)。
【0035】80H未満またはFFHの場合には、チェ
インの前のものと同じであるので前のものを使用する。
また、80H以上の場合には、キーワードを読み込む
(ステップ106)。このようにして衝突の判別を行な
う。次に、krに基づいて現在のインデックスレコード
がキーに対応するか否かを判定し(ステップ107)、
対応するときはチェイン付きインデックス12上のFF
Hまでスキップし、続く3バイトをデータポインタdp
として読み込む(ステップ108)。なお、ステップ1
07における判定は、ハッシュ値を求めた入力文字列の
下位バイトと80Hの論理和を求め、キー識別子と一致
するか否かを判別することにより行なう。続いて、dp
=FFFFFFHであるかどうかを判定する(ステップ
l09)。ここで、dp=FFFFFFHでなければデ
ータレコードは存在するので、データファイル上の位置
dpから、データレコードのフォーマットに従い、0A
H(=LF)までを結果のリストに追加する(ステップ
110)。次に、cp=0かどうかを判定し(ステップ
11l)、cp=0であるなら終了、そうでなければチ
ェインが続いているので、ipにcpを代入して(ステ
ップ112)、ステップ104へ戻る。
【0036】次に上述したようなチェイン付きハッシュ
法による検索を行なう電子辞書において、部分一致検索
を行なう場合の動作について説明する。
【0037】本実施例では、キーワードを構成する文字
の出現位置(1文字目,2文字目,...)を3で割っ
たときの剰余と、キーワードを構成する文字のコード
(キャラクタコード)を5で割ったときの剰余からハッ
シュ値を求めるものとする。具体的には、15ビットの
ハッシュ値を、nを0以上の整数とした場合の、(3n
+1)文字目、(3n+2)文字目、(3n+3)文字
目の5ビットづつのフィールドに区切り、文字コードを
xとして、各5ビットの値を、2を(xmod5)乗し
たもの(2xmod5)の論理和とする。なお、xmod5
は、xの5で割ったときの剰余を表すものとする。
【0038】図9は、この方法によって、文字列「ab
cd」のハッシュ値を求める例を示す。完全一致検索お
よびデータ登録においては、この値をそのままハッシュ
値として利用する。
【0039】図9に示す例においては、1文字目の’
a’のキャラクタコード61H(16進数)(10進数
では97)を5で割った余りが2であるので、22=4
である。従って、フィールド1は、00100(2進
数)(10進数では4)と元のフィールド1の値000
00(2進数)との論理和をとり、00100(2進
数)となる。同様に、4文字目の’d’のキャラクタコ
ードが64H(10進数では100)、これを5で割っ
た余りが0であるので20=1である。従って、000
01(2進数)とフィールド1(00100)との論理
和をとる。この結果、フィールド1は2進数で0010
1となる。
【0040】なお、本実施例では、先に説明したよう
に、図4のチェイン付きインデックス内のチェインポイ
ンタに、キーに関する情報を示す識別子を付加し、この
キー識別子によって衝突時のチェックを行うものとす
る。
【0041】部分一致検索においては、ビットが1にな
っている部分を1のまま固定し、ビットが0になってい
る部分を0と1の両方の場合の組合せとして、ハッシュ
値の集合を求めて全てについて検索を行う。文字の出現
位置を用いる際には、文字列の開始位置に注意する必要
がある。例えば「*abcd*」という場合には、aの
出現位置が、「abcde」などのように(3n+1)
文字目、「zabcd」などのように(3n+2)文字
目、「yzabcd」のように(3n+3)文字目の全
ての場合が存在するので、1文字づつずらした3通りの
パターンが必要である。
【0042】ハッシュ関数を用いて部分一致検索を行う
場合の、概略フローを図5に示す。
【0043】先ず、与えられた検索キーのハッシュ値を
求め(ステップ151)、ハッシュ表の該当する位置の
内容を読み込む(ステップ152)。ここで、チェイン
ポインタにキー識別子が付加されているときは、このキ
ー識別子に基づいて衝突を検出し (ステップ15
3)、検索結果を格納する(ステップ154)。全ハッ
シュ値の検索が完了するまで、上記ステップ152〜1
54を繰り返し(ステップ155)、全ハッシュ値の検
索が完了したら検索結果を出力表示する(ステップ15
6)。
【0044】次に、ハッシュ関数を用いて部分一致検索
を行う場合の、詳細なフローを図10に示す。部分キー
が、図9に示すように、「abcd」である場合を例に
取り、動作を説明する。なお、ここでは、ビットが1に
なっている部分を「固定ビット」、ビットが0になって
いる部分を「不定ビット」と呼んでいる。
【0045】S1:まず、部分キーが与えられると、部
分キーの文字開始位置を初期化する。すなわち、文字開
始位置をまず(3n+1)文字目とする。ハッシュ値は
nに無関係であるので、n=0,開始位置=1とする。
【0046】S2:続いて、部分キーにより固定される
ビットを算出する。開始位置が1である場合は、図9に
示されるように、フィールド1のビット2、フィールド
1のビット0、フィールド2のビット3、フィールド3
のビット4が固定されるビットである。
【0047】S3:次に、この固定ビットの列を、固定
ビット列リストとして保存する。これは、文字の開始位
置をずらして検索する際に、固定ビットと不定ビットを
組み合わせると、既に検索したハッシュ値と同じになる
場合があるため、以前に検索した固定ビットの列と比較
することによって2度検索する手間を省くためである。
【0048】S4:次に、不定ビットを初期値として全
て1にする。すなわち、フィールド1のビット2、フィ
ールド1のビット0、フィールド2のビット3、フィー
ルド3のビット4を除く全てのビットを1にする。以
下、不定ビットを、固定ビットのビット数を除いたビッ
ト数の一つの数として扱う。これによって、例えば、1
5ビットから固定ビットである4ビットを除いた11ビ
ットの0と1の組合せは、0から2047(10進数)
までの2進数で網羅することができる。
【0049】S5:不定ビットと固定ビットを連結す
る。すなわち、不定ビットを表す2進数に、固定ビット
を挟みこむ。図11に、不定ビットと固定ビットを連結
する例を示す。すなわち、S4または後述するS7bで
作成された不定ビット数を、本来のビット位置に置き、
固定ビットを挿入したものである。
【0050】S6:連結によって生成されたハッシュ値
が、最小値以下になったらS12に飛ぶ。ここで、検索
キーが1文字もないということはあり得ないので、1文
字目のフィールドに一つも1になるビットがない状況は
あり得ない。したがって、大きな数値から検索を始め
て、1文字目のフィールドが0になった時点を最小値、
すなわち、ハッシュ値を求める終了条件としている。
【0051】S7:S3において保存されている一つ前
の文字開始位置までの固定ビットリストとハッシュ値を
比較し、固定ビットリストの固定ビットと同じビット位
置にあるハッシュ値のビットが全て1の場合は、以前に
検索したハッシュ値のパターンに含まれるので(S7
a)、次の不定ビットを求め(S7b)、S5に戻る。
なお、S7aの判定は、不定ビットの0,1の組合せに
より、既に検索した組合せが出現する可能性が有るの
で、重複して検索しないようにするための判定である。
またS7bでは、不定ビット列が表す数値から1を減じ
た値を新たに不定ビット列とする。
【0052】S8:求めたハッシュ値によりハッシュ表
を読み出す。
【0053】S9:インデックス内に登録語がなければ
(S9)、該当するデータレコードがないので、S7b
と同じ処理で不定ビットを変更して次の不定ビットを求
め(S7b)、S5に戻る。
【0054】S10:キー識別子により、部分キーが含
まれるかどうかを比較し、部分文字列が含まれる場合
は、検索結果のリストに登録する(S10a)。
【0055】S11:次のインデックス内の次のチェイ
ンポインタヘスキップし、S9へ戻る。
【0056】S12:文字開始位置を1つずらす。
【0057】S13:文字開始位置が3以下であれば、
S2に戻る。これは、文字開始位置が1,2,3の場合
の全てを検索するためである。
【0058】S14:結果リストに登録された検索結果
を表示する。
【0059】以上の手順で、ハッシュ法においても、部
分一致検索が可能になる。さらに、前方一致検索の場合
は、文字開始位置が1の場合のみを検索すればよい。ま
た、後方一致検索の場合は、図12に示すように、キー
識別子による判別を行う際に、後方の文字から行うよう
にすればよい。また、前後方一致の場合は、前方一致の
部分キーを文字開始位置を1とし、後方一致の部分キー
をずらしてハッシュ値を求め、検索すればよい。同様に
してワイルドカードを*として、「*A*B*」のよう
な柔軟な検索も容易に実現できる。
【0060】なお、本実施例では、1つ1つのハッシュ
値に対して、繰り返し検索を行うように構成している
が、各ハッシュ値を並列計算の可能な計算機を用いて、
並列に検索しても構わない。
【0061】
【発明の効果】以上述べたように、本発明によれば、高
速な検索方法でありながら、完全一致検索のみでワイル
ドカード検索などの柔軟な検索が不可能であったハッシ
ュ法において、データ構造の追加も全データの参照をも
行うことなく、部分一致検索が可能になる。さらに、本
発明の検索方法では、前方一致、後方一致、前後方一
致、中間一致等の全ての部分一致検索がデータ構造の追
加なしに実現できる。
【図面の簡単な説明】
【図1】 部分一致検索の可能なハッシュ関数の例を示
す説明図である。
【図2】 ハッシュ法における部分一致検索の原理を示
す例である。
【図3】 本発明のハッシュ検索方法を適用した電子辞
書の構成例を示すブロック図である。
【図4】 本発明のハッシュ検索方法を電子辞書に適用
するためのデータ構造成例を示す説明図である。
【図5】 本発明のハッシュ検索方法を適用した電子辞
書の部分一致検索の概略のフローチャートである。
【図6】 インデックスレコードの構造を示す図であ
る。
【図7】 インデックスレコードにおけるチェインポイ
ンタのリストを示す図である。
【図8】 電子辞書によるデータ検索のアルゴリズムを
示すフローチャートである。
【図9】 部分一致検索の可能なハッシュ関数の例を用
いてハッシュ値を求める例を示す説明図である。
【図10】 部分一致検索の実現例を示す詳細なフロー
チャートである。
【図11】 部分キーに対応する複数のハッシュ値の中
の1つを求める例を示す説明図である。
【図12】 後方一致検索におけるキー識別方法の例を
示す説明図である。
【符号の説明】
l1…ハッシュ表、12…チェイン付きインデックス、
l3…実データファイル、21…CRT、22…CRT
ドライバ、22…キーボード、24…マウス、15…キ
ーボード/マウスドライバ、26…ディスク装置、27
…ディスク装置ドライバ、28…主記憶装置、29…C
PU

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】登録語を入力し、 入力された登録語の各文字の出現している位置をハッシ
    ュ値として表すハッシュ関数により、入力された登録後
    の格納すべき位置を算出し、 その算出された位置に入力された登録語を格納すること
    を特徴とする情報登録方法。
  2. 【請求項2】前記ハッシュ関数は、入力された登録語の
    1文字づつを、ハッシユ値の部分領域であるフィールド
    に対応させて、それぞれ変換することにより、入力され
    た登録語の各文字の出現している位置をハッシユ値とし
    て表すことを特徴とする請求項1記載の情報登録方法。
  3. 【請求項3】検索すべき語である検索キーを入力し、 入力された検索キーの各文字の出現している位置をハッ
    シュ値として表すハッシュ関数により、入力された検索
    キーを検索すべき位置を算出し、 その算出された位置に基づいて入力された検索キーを検
    索することを特徴とする情報検索方法。
  4. 【請求項4】前記ハッシュ関数は、入力された検索キー
    の1文字づつを、ハッシュ値の部分領域であるフィール
    ドに対応させて、それぞれ変換することにより、入力さ
    れた検索キーの各文字の出現している位置をハッシュ値
    として表すことを特徴とする請求項3記載の情報検索方
    法。
JP26042095A 1995-10-06 1995-10-06 情報検索装置 Expired - Fee Related JP3596696B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26042095A JP3596696B2 (ja) 1995-10-06 1995-10-06 情報検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26042095A JP3596696B2 (ja) 1995-10-06 1995-10-06 情報検索装置

Publications (2)

Publication Number Publication Date
JPH09101965A true JPH09101965A (ja) 1997-04-15
JP3596696B2 JP3596696B2 (ja) 2004-12-02

Family

ID=17347695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26042095A Expired - Fee Related JP3596696B2 (ja) 1995-10-06 1995-10-06 情報検索装置

Country Status (1)

Country Link
JP (1) JP3596696B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227656A (ja) * 2010-04-19 2011-11-10 Nec Corp 情報検索システム、情報検索方法およびプログラム
JP2012150562A (ja) * 2011-01-17 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> N分木内部ノードの圧縮方法及び装置及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62165238A (ja) * 1986-01-16 1987-07-21 Sharp Corp 電子辞書の検索方法
JPH05324722A (ja) * 1992-03-24 1993-12-07 Ricoh Co Ltd 文書検索方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62165238A (ja) * 1986-01-16 1987-07-21 Sharp Corp 電子辞書の検索方法
JPH05324722A (ja) * 1992-03-24 1993-12-07 Ricoh Co Ltd 文書検索方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227656A (ja) * 2010-04-19 2011-11-10 Nec Corp 情報検索システム、情報検索方法およびプログラム
JP2012150562A (ja) * 2011-01-17 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> N分木内部ノードの圧縮方法及び装置及びプログラム

Also Published As

Publication number Publication date
JP3596696B2 (ja) 2004-12-02

Similar Documents

Publication Publication Date Title
US5721899A (en) Retrieval apparatus using compressed trie node and retrieval method thereof
US8095526B2 (en) Efficient retrieval of variable-length character string data
EP1578020B1 (en) Data compressing method, program and apparatus
JP2832988B2 (ja) データ検索システム
JP3003915B2 (ja) 単語辞書検索装置
JPH09179872A (ja) 有限状態トランスデューサを用いてデータベースのインデックス付けを行う方法及び装置
JP3852757B2 (ja) 文字列照合方法、これを用いた文書処理装置及びプログラム
JPH09101965A (ja) 情報登録方法および情報検索方法
US6469643B1 (en) Information processing system
US6167400A (en) Method of performing a sliding window search
JP3728264B2 (ja) インデックス作成装置、検索システム、及び制御方法
JP4584359B2 (ja) ユニコード・コンバータ
JP5041003B2 (ja) 検索装置および検索方法
KR20050043884A (ko) 중국어 데이타 및 사용자에 의해 정정된 데이타를작성하고 사용하는 방법 및 시스템
US20030187843A1 (en) Method and system for searching for a list of values matching a user defined search expression
JP4195780B2 (ja) プログラム、データ処理システム及び記憶媒体
JP2722684B2 (ja) ファイルシステムの検索装置
US8176051B2 (en) Search via fast case insensitive ASCII tree
JP4139805B2 (ja) 字句をデータに変換する装置、方法及びプログラム
JP3062119B2 (ja) 文字列探索用テーブル、その作成方法及び文字列探索方法
JP3847836B2 (ja) 文字列検索方法とその装置
JP4061283B2 (ja) 字句をデータに変換する装置、方法及びプログラム
JPH10149367A (ja) テキスト蓄積検索装置
JP2773657B2 (ja) 文字列検索装置
JPH0528194A (ja) データアクセス方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040409

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040707

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040902

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070917

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080917

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090917

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100917

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110917

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120917

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120917

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130917

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees