JPH06274545A - 検索方式 - Google Patents

検索方式

Info

Publication number
JPH06274545A
JPH06274545A JP5062321A JP6232193A JPH06274545A JP H06274545 A JPH06274545 A JP H06274545A JP 5062321 A JP5062321 A JP 5062321A JP 6232193 A JP6232193 A JP 6232193A JP H06274545 A JPH06274545 A JP H06274545A
Authority
JP
Japan
Prior art keywords
index
search
record
block
search condition
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.)
Withdrawn
Application number
JP5062321A
Other languages
English (en)
Inventor
Masaaki Sekine
正明 関根
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 JP5062321A priority Critical patent/JPH06274545A/ja
Publication of JPH06274545A publication Critical patent/JPH06274545A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 「×××方式」,「×××装置」または「×
××病院」(×××は1文字以上の任意の文字)のよう
に文字列の後方が一致した任意の長さのレコードを高速
に検索する。 【構成】 利用者が部分一致の検索条件を文字列として
入力すると、検索方法決定手段102により入力された
検索条件が後方一致検索であるかを判定し、検索条件が
後方一致でないと判定した場合には、従来の索引を用い
て検索条件を満たすレコード番号を求め、後方一致と判
定したときは検索文字列反転手段104により検索条件
の文字列を反転した文字コードを作成し、反転索引検索
手段105が索引値を反転して格納してある反転索引ブ
ロックを用いて、検索条件を満たすレコード番号を求め
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は検索方式、特にランダム
アクセス可能な記憶装置上に構成された索引を用いた文
字列の検索手段に関する。
【0002】
【従来の技術】従来の索引は、記憶装置との間に入出力
の単位でブロックとして階層構造を作り、最下位のブロ
ックにおいて索引値を文字コード値の大小比較により格
納していき、さらにブロック内で最小、または最大の文
字コード値を持つ索引値を上位のブロックに格納する。
この操作を繰返すことに階層化した索引をつくる。そし
てこの階層構造をアクセスすることにより、索引値の先
頭文字からの文字コード値順に昇順、または降順に高速
に検索するよう作成されている。従って、この従来の索
引の階層構造をアクセスする方式は検索文字列の後方一
致検索では使えず、後方一致の検索には利用者が入力し
た検索文字列と索引の最下位のブロックにある全ての索
引値との文字コード値の比較によって、条件を満たしレ
コードを求めなければならないようになっている。
【0003】
【発明が解決しようとする課題】上述した従来の検索方
式では文字列の後方一致検索は、利用者が入力した検索
文字列の文字コード値と索引値とを先頭文字からの文字
コード値順に昇順、または降順に比較する。特に、「×
××方式」や「×××装置」、または「×××病院」
(×××は1文字以上の任意の文字)のように文字列の
後方が一致した任意の長さのレコードを求める検索を行
う場合、従来の索引の階層構造をアクセスすることはで
きず、利用者が入力した検索文字列と索引の最下位のブ
ロックにある全ての索引値との文字コード値の比較によ
って、条件を満たすレコードを求めるため、条件を満た
すレコードを求めるために多くの時間を要するという問
題点がある。
【0004】
【課題を解決するための手段】本発明の検索方式は、ラ
ンダムアクセス可能な記憶装置に構成された索引を利用
して文字列の検索を行なう検索方式において、利用者が
部分一致の検索条件を文字列として入力する検索条件入
力手段と、この検索条件入力手段により入力された検索
条件が前方一致検索であるか後方一致検索であるかを判
定する検索方法決定手段と、この検索方法決定手段によ
り検索条件が前方一致検索であると判定された場合に従
来の索引を用いて検索条件を満たすレコード番号を求め
る通常索引検索手段と、前記検索方法決定手段により検
索条件が後方一致検索であると判定された場合に前記検
索条件入力手段により入力された検索条件の文字列を反
転する検索文字列反転手段と、この検索文字列反転手段
によって反転された文字列を検索条件として、予め索引
値を反転して格納してある反転索引を用いてレコード番
号を求める反転索引検索手段と、前記通常索引検索手段
または反転索引検索手段により求められた検索条件を満
たすレコード番号を出力する検索結果出力手段とを持つ
ことにより構成される。
【0005】
【実施例】次に、本発明について図面を参照して説明す
る。
【0006】図1は本発明の一実施例のフローチャート
である。図2,図3,および図4は図1の実施例を説明
するための具体的な例を示す図である。図2は実データ
のレコードを格納する実データファイル5と、実データ
ファイル5に対する反転索引ブロック1,2,3、およ
び4と、バッファ領域10とを示し、図3は実データフ
ァイル5に対する従来の索引ブロック6,7,8,およ
び9を示している。図4は図2および図3に示す索引ブ
ロックに格納されている文字コードを示した図であり、
図4(a)は検索文字列の文字コードの例を、図4
(b)は通常の索引内の文字コードの例を、図4(c)
は反転索引内の文字コードの例を示し、アルファベット
文字はJISコード、日本語文字はSHIFT−JIS
コードで、16進で表されている。
【0007】図2の実レコードファイル5には、図中に
例を示すようにデータに「NNN大学」を持つレコード
番号がRNのレコード51、データに「ZZZ大学」を
持つレコード番号がRZのレコード52、データに「M
MM病院」を持つレコード番号がRMのレコード53、
データに「YYY商店」を持つレコード番号がRYのレ
コード54、データに「CCC商店」を持つレコード番
号がRCのレコード55、データに「AAA大学」を持
つレコード番号がRAのレコード56、データに「BB
B病院」を持つレコード番号がRBのレコード57を格
納している。
【0008】一方、反転索引ブロック1,2,3および
4は、記憶装置との間での入出力の単位でブロック化し
て階層構造を持ち、それぞれのブロックには階層内で同
じレベルの次のブロックを示す識別子を持つ。上位の反
転索引ブロック1には下位の反転索引ブロック内で、最
小の索引値と下位のブロックを示すブロック番号とから
なる索引レコードを格納していて、最下位の反転索引ブ
ロック2,3および4には索引値とレコード番号とから
なる索引レコードを格納している。即ち図中の例に示す
ように上位の反転索引ブロック1には索引値「病院BB
B」とその索引値を格納する反転索引ブロック2のブロ
ック番号RIDX−2とを持つ索引レコード11、索引
値「学大NNN」と同様にブロック番号RIDX−3と
を持つ索引レコード12、索引値「学大ZZZ」と同様
にブロック番号RIDX−4とを持つ索引レコード13
とを格納している。最下位の反転索引ブロック2に格納
している索引レコードは、レコード番号RBが持つデー
タ「BBB病院」の文字コードを反転した値「院病BB
B」を索引値に、レコード番号をRBとした索引レコー
ド21、同様にレコード番号RMの値から得た索引値
「院病MMM」とレコード番号RMとを持つ索引レコー
ド22、レコード番号RAの値から得た索引値「学大A
AA」とレコード番号RAとを持つ索引レコード23で
ある。反転索引ブロック3に格納している索引レコード
は、レコード番号RNの値から得た索引値「学大NN
N」とレコード番号RNとを持つ索引レコード31のみ
である。また、反転索引ブロック4には、レコード番号
RZの値から得た索引値「学大ZZZ」とレコード番号
RZを持つ索引レコード41、レコード番号RCの値か
ら得た索引値「店商CCC」とレコード番号RCとを持
つ索引レコード42、レコード番号RYの値から得た索
引値「店商YYY」とレコード番号RYとを持つ索引レ
コード43を格納している。
【0009】また、反転索引ブロック1には階層内で同
じレベルの次のブロックへの識別子としてNULL値を
持ち、次のブロックが存在しないことを示す。反転索引
ブロック2には階層内で同じレベルの次の反転索引ブロ
ック3への識別子としてブロック番号RIDX−3を持
つ。反転索引ブロック3には階層内で同じレベルの次の
反転索引ブロック4への識別子としてブロック番号RI
DX−4を持つ。反転索引ブロック4には階層内で同じ
レベルの次の反転索引ブロックへの識別子としてNUL
L値を持ち、次の反転索引ブロックが存在しないことを
示す。
【0010】図3の従来の索引ブロック6,7,8およ
び9について説明すると、上位の索引ブロック6には索
引値「AAA大学」とその索引値を格納する索引ブロッ
ク7のブロック番号IDX−2とを持つ索引レコード6
1、索引値「MMM病院」と同様にブロック番号IDX
−3とを持つ索引レコード62、索引値「YYY商店」
と同様にブロック番号IDX−4とを持つ索引レコード
63を格納している。最下位の索引ブロック7は、レコ
ード番号RAが持つデータ「AAA大学」を索引値に、
レコード番号をRAとした索引レコード71、レコード
番号RBが持つデータ「BBB病院」を索引値に、レコ
ード番号をRBとした索引レコード72、レコード番号
RCが持つデータ「CCC商店」を索引値に、レコード
番号をRCとした索引レコード73を持つ。索引ブロッ
ク8はレコード番号RMが持つデータ「MMM病院」を
索引値に、レコード番号をRMとした索引レコード8
1、レコード番号RNが持つデータ「NNN大学」を索
引値に、レコード番号をRNとした索引レコード82を
持つ。索引ブロック9は、レコード番号RYが持つデー
タ「YYY商店」を索引値に、レコード番号をRYとし
た索引レコード91、レコード番号RYが持つデータ
「ZZZ大学」を索引値に、レコード番号をRZとした
索引レコード92を持つ。
【0011】また、索引ブロック6には階層内で同じレ
ベルの次のブロックへの識別子としてNULL値を持
ち、次のブロックが存在しないことを示す。索引ブロッ
ク7には階層内で同じレベルの次の索引ブロック8への
識別子としてブロック番号IDX−3を持つ。索引ブロ
ック8には階層内で同じレベルの次の索引ブロック9へ
の識別子としてブロック番号IDX−4を持つ。索引ブ
ロック9には階層内で同じレベルの次の索引ブロックへ
の識別子としてNULL値を持ち、次の索引ブロックが
存在しないことを示す。
【0012】さて、図1の実施例のフローについて説明
を進めると、先ず利用者は検索条件入力手段101によ
り、例えば「%商店」の文字列を後方一致の検索条件と
して入力する。その文字コードは「0×008FA49
358」である。ここで本実施例において検索条件内の
「%」は特殊文字として扱い、一つ以上の任意の文字列
を示し、文字コードを「0×00」とする。
【0013】次に、検索方法決定手段102は、利用者
が入力した検索条件が後方一致検索であると判断し、検
索には反転索引ブロック1,2,3,4を用いると決定
する。検索方法決定手段102により、利用者の入力し
た検索条件が後方一致検索以外であると判断した場合に
は従来の索引ブロック6,7,8,9を用いた検索処理
(通常索引検索手段103)を行うが、この説明では省
略する。
【0014】次に、検索文字列反転手段104は、利用
者が入力した検索条件の文字列「%商店」(文字コード
「0×008FA49358」)を反転し、「店商%」
(文字コード「0×93588FA400」)を新たな
検索条件の文字列とする。そこで反転索引検索手段10
5は、まず対象を最上位の索引のブロックである反転索
引ブロック1で索引を開始する。索引を用いた検索は、
まず対象を最上位の索引ブロックとし、対象ブロック内
で最小の索引値を持つ索引レコードから順に索引値と検
索条件の文字コードとの大小比較をしていくことにより
行う。検索条件の文字列の長さが索引値に満たなかった
場合は不足部分に0×00を補い大小比較を行う。対象
ブロックが階層内で最下位のブロックで無くて、検索条
件とブロック内の索引値と順に比較し、検索条件より索
引値の方が大きいと判断されたとき、次の対象ブロック
を直前の索引レコードが指すブロックとする。対象とし
ているブロック内に検索条件の文字コード値を越える索
引値がなかった場合には、階層内で同じレベルの次のブ
ロックを次の対象ブロックとする。また対象ブロック内
に検索条件の文字コード値を越える索引値がなかった場
合には、対象ブロック内で最大の索引値を持つ索引レコ
ードが指すブロックを次の対象ブロックとする。
【0015】この例では対象を最上位の反転索引ブロッ
ク1で、最初にブロック内で最小の索引値を持つ索引レ
コード11の索引値「院病BBB」と検索条件である
「店商%」のそれぞれの文字コードを大小比較し、ここ
で検索条件の方が大きいと判断する。次に大きい索引値
に持つ索引レコード12の索引値「学大NNN」と検索
条件「店商%」を比較し、これも検索条件の方が大きい
と判断する。次に、索引レコード13の索引値「学大Z
ZZ」と検索条件「店商%」を比較し、これも検索条件
の方が大きいと判断するが、索引レコード13は対象ブ
ロック内で最大の索引値を持つ最終の索引レコードであ
るため、次の対象ブロックを索引レコード13が持つ下
位の索引ブロックであるブロック番号RIDX−4とす
る。
【0016】次に、対象ブロックを最下位のブロック番
号RIDX−4である反転索引ブロック4とし、索引レ
コード41の索引値「学大ZZZ」と検索条件「店商
%」とを比較して、検索条件の方が大きいと判断する。
次に索引レコード42の索引値「店商CCC」と検索条
件「店商%」とを比較し、索引値の方が大きいと判断
し、条件を満たす索引レコードとして索引レコード42
を求める。
【0017】以上の検索の結果、検索結果出力手段10
6は利用者の入力した検索条件が「%商店」と後方一致
検索とであるため、反転索引検索手段105により求め
た索引レコード42を含む以降の索引レコードが持つレ
コード番号が、検索条件を満たすこととなり、索引レコ
ード42が持つレコード番号RC、索引レコード43が
持つレコード番号RYを検索結果として、バッファ領域
10に格納する。
【0018】
【発明の効果】以上説明したように本発明は、「×××
方式」や「×××装置」または「×××病院」(×××
は1文字以上の任意の文字)のように文字列の後方が一
致した任意の長さのレコードを求める検索を行う場合
に、従来の索引では不可能であった階層構造をアクセス
する方式が利用可能になるため、条件を満たすレコード
を高速に求めることが出来るという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例のフローチャートである。
【図2】図1の実施例に用いられる反転索引ブロック、
実データファイル、および検索条件を満たすレコード番
号を格納するバッファ領域の例を示す図である。
【図3】図1の実施例に用いられる従来の索引ブロック
の例を示す図である。
【図4】図2、および図3に示す索引に格納されている
文字コードの例を示す図である。
【符号の説明】
1,2,3,4 反転索引ブロック 5 実データファイル 6,7,8,9 索引ブロック 10 バッファ領域 11,〜13,21,〜23,31,41,〜43,6
1,〜63,71,〜73,81,82,91,92
索引レコード 51,52,〜57 レコード

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ランダムアクセス可能な記憶装置に構成
    された索引を利用して文字列の検索を行なう検索方式に
    おいて、利用者が部分一致の検索条件を文字列として入
    力する検索条件入力手段と、この検索条件入力手段によ
    り入力された検索条件が前方一致検索であるか後方一致
    検索であるかを判定する検索方法決定手段と、この検索
    方法決定手段により検索条件が前方一致検索であると判
    定された場合に従来の索引を用いて検索条件を満たすレ
    コード番号を求める通常索引検索手段と、前記検索方法
    決定手段により検索条件が後方一致検索であると判定さ
    れた場合に前記検索条件入力手段により入力された検索
    条件の文字列を反転する検索文字列反転手段と、この検
    索文字列反転手段によって反転された文字列を検索条件
    として、予め索引値を反転して格納してある反転索引を
    用いてレコード番号を求める反転索引検索手段と、前記
    通常索引検索手段または反転索引検索手段により求めら
    れた検索条件を満たすレコード番号を出力する検索結果
    出力手段とを持つことを特徴とする検索方式。
JP5062321A 1993-03-23 1993-03-23 検索方式 Withdrawn JPH06274545A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5062321A JPH06274545A (ja) 1993-03-23 1993-03-23 検索方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5062321A JPH06274545A (ja) 1993-03-23 1993-03-23 検索方式

Publications (1)

Publication Number Publication Date
JPH06274545A true JPH06274545A (ja) 1994-09-30

Family

ID=13196767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5062321A Withdrawn JPH06274545A (ja) 1993-03-23 1993-03-23 検索方式

Country Status (1)

Country Link
JP (1) JPH06274545A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184893A (ja) * 1997-12-24 1999-07-09 Oki Electric Ind Co Ltd パターン照合装置及び文書処理装置
JP2012190379A (ja) * 2011-03-14 2012-10-04 Fujitsu Ltd 検索装置、プログラム及び方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184893A (ja) * 1997-12-24 1999-07-09 Oki Electric Ind Co Ltd パターン照合装置及び文書処理装置
JP2012190379A (ja) * 2011-03-14 2012-10-04 Fujitsu Ltd 検索装置、プログラム及び方法

Similar Documents

Publication Publication Date Title
US8838551B2 (en) Multi-level database compression
JP4261779B2 (ja) データ圧縮装置および方法
KR100739726B1 (ko) 문자열 매칭 방법 및 시스템과 그 방법을 기록한 컴퓨터판독 가능한 기록매체
US7526497B2 (en) Database retrieval apparatus, retrieval method, storage medium, and program
US8095526B2 (en) Efficient retrieval of variable-length character string data
US7756859B2 (en) Multi-segment string search
US6735600B1 (en) Editing protocol for flexible search engines
JPH09179872A (ja) 有限状態トランスデューサを用いてデータベースのインデックス付けを行う方法及び装置
US7130859B2 (en) Data structure for search
US8204882B2 (en) Method for accessing a storage unit during the search for substrings, and a corresponding storage unit
US8463759B2 (en) Method and system for compressing data
JPH06274545A (ja) 検索方式
JPH10261969A (ja) データ圧縮方法および装置
Kanda et al. Practical rearrangement methods for dynamic double‐array dictionaries
JP2005004560A (ja) インバーテッドファイル作成方法
JP2001022766A (ja) 多次元データベースの高速処理方法および装置
JP2000090115A (ja) インデクス作成方法および検索方法
JP2002140218A (ja) データ処理方法、コンピュータ読み取り可能な記録媒体及びデータ処理装置
JP2001052024A (ja) 類似特徴量の検索方法及び装置及び類似特徴量の検索プログラムを格納した記憶媒体
JPWO2009050797A1 (ja) 検索装置および検索方法
JP2009175896A (ja) 情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体
JP4061283B2 (ja) 字句をデータに変換する装置、方法及びプログラム
JP2001312517A (ja) インデクス生成装置及び文書検索装置
JP2722684B2 (ja) ファイルシステムの検索装置
JP3446866B2 (ja) データベース作成装置および方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000530