JPH0823865B2 - デ−タ検索方法および装置 - Google Patents

デ−タ検索方法および装置

Info

Publication number
JPH0823865B2
JPH0823865B2 JP62215937A JP21593787A JPH0823865B2 JP H0823865 B2 JPH0823865 B2 JP H0823865B2 JP 62215937 A JP62215937 A JP 62215937A JP 21593787 A JP21593787 A JP 21593787A JP H0823865 B2 JPH0823865 B2 JP H0823865B2
Authority
JP
Japan
Prior art keywords
block
index file
file
data
sub
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.)
Expired - Lifetime
Application number
JP62215937A
Other languages
English (en)
Other versions
JPS6458018A (en
Inventor
保 伊藤
崇 竹内
敏裕 松永
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62215937A priority Critical patent/JPH0823865B2/ja
Publication of JPS6458018A publication Critical patent/JPS6458018A/ja
Publication of JPH0823865B2 publication Critical patent/JPH0823865B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、カナ漢字変換辞書、言語翻訳辞書、特許情
報データベースなど、見出し語に対応するデータ(文字
列またはイメージ情報)を検索する方式に係り、特に、
大容量データを検索するのに好適なデータ検索方法およ
び装置に関する。
[従来の技術] 従来、辞書データファイルを検索する方法として、例
えば特開昭55-83962号、特開昭56-38661号に記載されて
いる方法がある。これらの方法は、見出し語の1文字目
もしくは2文字目までを第1次検索対象として検索し、
得られるアドレス情報より3文字目以降が格納されてい
る辞書本体を第2次検索する方法である。
[発明が解決しようとする問題点] 前記従来技術は、大容量辞書データファイルを接続し
た場合の辞書データ検索について配慮がなされておら
ず、1文字目と2文字目が一致する見出し語が大量にあ
るとき検索時間の増大を招くという問題があった。例え
ば、英単語であれば“re"や“in"等の接頭語を持つもの
は非常に多い。このように、外部メモリ装置に格納して
ある辞書データファイルを内部メモリ(バッファメモ
リ)に読込み、その後検索するのであれば、大量の辞書
データを検索するため時間がかかることに加えて、1)
大量の辞書データを読込むための時間がかかる、2)大
量の辞書データを読込むメモリが必要となる、などの問
題も生ずる。また内部メモリ容量の制限から一度に該当
する辞書データ全てが読込めない場合、数回に分けて読
込み、検索することになる。そのため、a)外部記憶装
置を制御する時間、b)外部記憶装置が続きの辞書デー
タのある場所をシークする時間、がさらに追加される。
辞書データが外部記憶装置において物理的に連続してい
た場合であっても、ディスク状記憶媒体を用いる外部記
憶装置では少なくとも回転待ち時間が生ずる。例えばCD
-ROMでは最大250msecに達し、5 1/4インチフロッピーで
は200msecになる。
以上のように、大容量の辞書データファイルの検索に
おいては、 1) 大量の辞書データを検索する、 2) 大量の辞書データを転送する、 ことによる検索時間の増大と、 3) 大量の辞書データを読込む大容量のバッファメモ
リの要求あるいは3)とトレードオフの関係にある、 3) 辞書データ転送回数の増大から生ずる検索時間の
増加の問題がある。
本発明の目的は、かかる大容量データファイルを少な
いバッファメモリで高速に検索できるデータ検索方法お
よび装置を提供することにある。
[問題点を解決するための手段] 上記目的を達成するために、本願第1発明は、 複数の記憶ブロックにわたり、予め定められた順序で
記憶された複数の見出し語および該見出し語に対応する
データからなるデータファイルを検索する方法であっ
て、 A) 上記データファイルの複数のブロックの先頭の見
出し語をブロック順に集めたサブインデックスファイル
と、該サブインデックスファイルの複数のブロックの先
頭の見出し語をブロック順に集めたマスタインデックス
ファイルとを用意し、 B) 上記データファイルの検索にあたり、 a) まず、検索すべきキーワードを上記マスタインデ
ックスファイルに記憶された見出し語と順次比較するこ
とにより、上記キーワードの記憶されている可能性のあ
る上記サブインデックスファイルのブロックを決定し
て、該ブロックの全見出し語を読出し、 b) 上記キーワードを上記ステップa)で読出したブ
ロックの見出し語と順次比較することにより、上記キー
ワードの記憶されている可能性のある上記データファイ
ルのブロックを決定して、該ブロックの全見出し語を読
出し、 c) 上記キーワードを上記ステップb)で読出した見
出し語と順次比較することにより、上記キーワードに該
当する見出し語の存否を確認し、検索結果を得る ようにしたものである。
また、本願第2発明は、 複数の記憶ブロックにわたり予め定められた順序で記
憶された複数の見出し語および該見出し語に対応するデ
ータからなるデータファイルを検索する方法であって、 上記データファイルの各ブロックの先頭見出し語をブ
ロック順に集めたサブインデックスファイルと、該サブ
インデックスファイルの各ブロックの先頭見出し語をブ
ロック順に集めたマスタインデックスファイルとを記憶
した第1記憶装置と、 上記見出し語を入力し上記見出し語に対する検索結果
を表示するための入出力装置と、 上記第1記憶装置および上記入出力装置を制御する中
央処理装置と、 該中央処理装置の動作を決定するプログラムおよび上
記第1記憶装置からのデータを一時記憶するための第2
記憶装置とを備える ことを特徴とするものである。
さらに、本願第3発明による検索用データ構造は、 複数の記憶ブロックにわたり予め定められた順序で記
憶された複数の見出し語および該見出し語に対応するデ
ータからなるデータファイルと、該データファイルの各
ブロックの先頭見出し語をブロック順に集めたサブイン
デックスファイルと、該サブインデックスファイルの各
ブロックの先頭見出し語をブロック順に集めたマスタイ
ンデックスファイルとからなりことを特徴とするもので
ある。
なお、本明細書において「データ検索」なる語は、広
義に解し、例えば、氏名による電話番号検索、キーワー
ド等による特許情報検索のように、任意の見出し語に基
づいて、その見出し語に関係する文字情報を検索するも
の、さらには、地名による地図検索のように、任意の見
出し語に基づいて文字情報だけでなくイメージ情報を検
索するものをも含むものとする。
[作用] 本発明では、階層構造の検索ファイル(インデックス
ファイル)を用いて大容量データファイルを検索するよ
うにしている。インデックスファイルの階層化は次のよ
うにして行なう:大容量データファイルが格納されてい
る外部記憶装置のデータ取扱い最小単位(セクタ)に基
づくデータの単位をブロックとして、データファイルの
各ブロックの先頭の見出し語だけを集めて第1の階層の
インデックスファイルを作る。第1の階層のインデック
スファイルが複数ブロックにわたる場合、第1の階層の
インデックスファイルの各ブロックの先頭の見出し語を
集めて第2の階層のインデックスファイルを作る。以
下、同様にしてインデックスファイルの大きさが1ブロ
ック以下(メモリ容量が許せばこの限りではない)にな
るまで繰返す。最後に作ったインデックスファイルが第
nの階層であるとき、データファイルの検索は次のよう
になる:まず、第nの階層のインデックスファイルを読
込み、検索し、第n−1の階層のインデックスファイル
の該当ブロックを求める。次に第n−1の階層のインデ
ックスファイルの該当ブロックを読込み、検索し、第n
−2の階層のインデックスファイルの該当ブロックを求
める。以下同様にして第1のインデックスファイルの該
当ブロックを読込むまで繰返す。最後に、第1のインデ
ックスファイルの該当ブロックを検索し、該当するデー
タファイルのブロックを求め、読込み、検索し、所望の
検索内容を得る。
この場合、毎回読出すデータの量は1ブロックに限ら
れるため、1ブロック分のバッファメモリを用意すれば
よい。検索する量は最大でブロックの大きさ×(n+
1)であり、読込み回数は(n+1)である。
本発明の動作を以下に説明する。
データファイル検索の目標となる見出し語をxとし、
各階層のインデックスファイルにはm個ずつの見出し語
が含まれているとする。データファイルを前記ブロック
単位に分割したとき、xに対応する見出し語がi(1)
番目のブロックに含まれていた場合、i(1)番目のブ
ロックの先頭の見出し語yi(1)に対して見出し語xはよ
り後にあるか一致する。また見出し語xは、データファ
イルの最後のブロックに含まれた場合を除いて、i
(1)+1番目のブロックの先頭の見出し語yi(1)+1
りも前にある。この関係を次のように表わす。
i(1)≦x<yi(1)+1 第1の階層のインデックスファイルは、データファイ
ルの各ブロックの先頭の見出し語を集めたものであるか
ら、yi(1)、yi(1)+1をi(1)番目、i(1)+1番
目の見出し語としている。第1の階層のインデックスフ
ァイルを前記ブロック単位に分割してyi(1)がi(2)
ブロック目に含まれていた場合、ブロックの先頭の見出
し語yi(2)に対して、 yi(2)≦yi(1) である。一方、yi(1)+1について次のブロックの先頭の
見出し語yi(2)+1に対して yi(1)+1≦yi(2)+1 であり、一致は、yi(1)がi(2)ブロック目の最後の
見出し語であった場合のみである。従って第2の階層の
インデックスファイルにおいて、 yi(2)≦yi(1)<yi(1)+1≦yi(2)+1 であり、すなわち、 yi(2)≦yi(1)≦x<yi(1)+1≦yi(2)+1 である。このyi(2)、yi(2)+1はまた、第2の階層のイ
ンデックスファイルの見出し語である。
第2の階層から第nの階層のインデックスファイルに
ついても同様にして下のような見出し語の関係が成立
つ。
i(n)≦yi(n-1)≦…≦yi(2)≦yi(1)≦x x<yi(1)+1≦yi(2)+1…≦yi(n-1)+1≦yi(n)+1 検索は以上の関係を利用し、次のように行なう。
まず、第nの階層のインデックスファイルを読込み、
第1番目より見出し語をカウントしながら yi(n)≦x<yi(n)+1i(n)=1,2,,m-1) yi(n)≦x (i(n)=m) となる見出し語yi(n)を探す。見出し語のカウント値k
=i(n)である。
次に第n−1の階層のインデックスファイルの第i
(1)ブロックを読込み、ブロック先頭より見出し語を
カウントしながら、 yi(n-1)≦x<yi(n-1)+1i(n-1)=1,2,,m-1) yi(n-1)≦x (i(n-1)=m) となる見出し語yi(n-1)を探す。見出し語のカウント値
k=i(n−1)−m×{i(n)−1}であり、次に
読込むのは第n−2の階層の第i(n−1)ブロックで
ある。
以下同様にして順次下位の階層のインデックスファイ
ルを読込み、検索し、最終的にはデータファイルの当該
ブロックである第i(1)ブロックを読込み、検索して
目標の見出し語xに対応するデータを得る。
以上の動作において、外部記憶装置から読込み、検索
するのは、各階層のインデックスファイルについて1ブ
ロックずつである。また、次に読込む下位のブロックを
求めた後は、上位のブロックは不要になるのでメモリか
ら削除してよい。すなわち、バッファメモリを順次書換
えることにより、バッファメモリは1ブロックでよい。
[実施例] 以下、図面を参照しながら、本発明の実施例につい
て、詳細に説明する。なお、以下の実施例では、辞書デ
ータの検索について説明するが、上記他の用途において
も同様である。
〈第1実施例〉 本実施例は第2の階層のインデックスファイルを最上
位とするものである。
第1図は、本発明第1実施例の辞書検索装置10のブロ
ック図である。辞書データ検索装置10は、CPU(中央演
算処理装置)11と、I/F(インタフェース)部12と、CD-
ROMドライブ(第1の記憶装置)13と、内部メモリ(第
2の記憶装置)14と、入力装置15と、出力装置16とから
構成される。
入力装置15は例えばキーボード装置であり、検索の目
標となる見出し語(キーワード)の入力など、辞書デー
タ検索装置10の操作に用いる。
出力装置16は例えばディスプレイ装置であり、辞書デ
ータ検索装置10の状態表示、操作指示、および検索の結
果得た辞書データの表示を行なう。
CPU11は、予め定めた手順(プログラム)に従って辞
書検索装置10の構成要素を制御・利用し、辞書検索処理
を実行する。
内部メモリ14は、CPU11から直接にバイト単位のラン
ダムアクセスが可能であり、用途別に次の三つの領域:
プログラム領域20、作業領域21およびバッファ領域22に
分割されている。プログラム領域20は、CPU11のプログ
ラムを格納する領域であり、読出し専用メモリでもよ
い。作業領域21は、スタック、変数の格納などCPU11が
演算処理に用いる領域である。バッファ領域22は、CD-R
OMドライブ13からデータを読込む領域で1ブロック分の
容量がある。
CD-ROMドライブ13は、I/F部12を介して送られてくるC
PU11からの命令に従って、辞書ディスク1の任意の位置
のデータを、I/F部12を介して内部メモリ14のバッファ
領域22へ送る。読出すデータの位置は、辞書ディスク1
に格納されたデータの先頭から何セクタ目にあたるか
(セクタアドレス)で指定する。この“セクタ”とは、
CD-ROMドライブ13が扱うデータの最小単位であり、その
容量は2048バイトである。したがってブロックの大きさ
は、2048バイト、4096バイト…のように2048バイトの整
数倍となるが、本実施例では1ブロック=2セクタ=40
96バイトとしている。また、辞書ディスク1は、辞書デ
ータファイル100、サブインデックスファイル(第1の
階層のインデックスファイル)200、マスタインデック
スファイル(第2の階層のインデックスファイル)300
を格納している。
辞書データ検索装置10の動作の概要は次のとおりであ
る。まず、入力装置15から検索したいキーワードを入力
する。CPU11は、プログラムに従って、I/F部12を介して
CD-ROMドライブ13から辞書ディスク1に格納されたマス
タインデックスファイル300を内部メモリ14のバッファ
領域22へ読込み、入力装置15から読取ったキーワードに
基づき検索しサブインデックスファイル200の該当ブロ
ックを特定する。次にCPU11は、サブインデックスファ
イル200の該当ブロックをバッファ領域22に読込み、検
索し、辞書データファイル100の該当ブロックを特定す
る。辞書データファイル100の該当ブロックを読込み、
キーワードに対応する見出し語を発見したら内容を出力
装置16に出力し、一連の動作を終了する。
以上の動作のうち、本発明の主要部分に関わる、辞書
ディスク1の検索処理について説明を加える。
まず、辞書ディスク1に含まれる、辞書データファイ
ル100、サブインデックスファイル200、マスタインデッ
クスファイル300の構造を、第2図および第3図を用い
て説明する。
辞書データファイル100は、見出し語と該見出し語に
対応する辞書内容との対を、該見出し語の順に複数個な
らべたものである。本実施例の辞書データファイル100
の見出し語は英単語であり、辞書内容は該英単語に対応
する発音記号、品詞分類、意味内容等である。
見出し語の順は、アルファベット順にもとづき、第3
図に示すアルゴリズムで決定する。例えば“abhor"と
“abide"の前後関係は次のようにして決定する。“abho
r"を文字列A、“abide"を文字列Bとして、まず最初の
ステップS1において、文字のポインタNを1に設定す
る。次のS2で文字列Aを検査し、N文字目に文字が存在
すればS3、存在しなければS7へ分岐する。文字列A:“ab
hor"にはN:1文字目が存在するのでS3に進む。S3では同
様にして文字列Bを検査する。N文字目が存在すればS4
へ、存在しなければ文字列Bは文字列Aよりも前であ
る、と判断する(たとえば“center"と“cent"はN=5
で判別される)。文字列B“abide"のN:1文字目は存在
するのでS4へ進む。S4で文字列Aおよび文字列Bからそ
れぞれN文字目をとり出し、それぞれXA、XBとする。次
にS5でXAとXBを比較し、一致したときS6へ、不一致のと
きS8へ行く。文字列A:“abhor"のN:1文字目XA:“a"と文
字列B:“abide"のN:1文字目XB:“a"は一致するのでS6へ
行く。S6でNは1加算され、S2へ戻るループとなる。こ
のS2→S3→S4→S5→S6を廻るループは、文字列Aと文字
列Bを先頭から比較していって、一致している間繰り返
される。したがって、N:2となった後、 S2…文字列A:“abhor"のN:2文字目あり→S3へ。
S3…文字列B:“abide"のN:2文字目あり→S4へ。
S4…XAは文字列A:“abhor"のN:2文字目“b"、 XBは文字列B:“abide"のN:2文字目“b"→S5へ。
S5…XA:“b"はXB:“b"と一致する→S6へ。
S6…N:2に加算(N:3となる)→S2へ。
S2…文字列A:“abhor"のN:3文字目あり→S3へ。
S3…文字列B:“abide"のN:3文字目あり→S4へ。
S4…XAは文字列A:“abhor"のN:3文字目“h"、 XBは文字列B:“abide"のN:3文字目“i"→S5へ。
S5…XA:“h"はXB:“i"と一致しない→S8へ。
S8では、XAとXBのアルファベット順を比べ、XAがXBよ
りも後であれば〈文字列Aは文字列Bの後〉にあたると
判断し、XAがXBよりも後ではない(既に一致しないこと
を検査しているのでXAがXBの前である場合を示してい
る)場合は〈文字列Aは文字列Bの前〉にあたると判断
し、決定のアルゴリズムを終了する。XA:“h"はXB:“i"
より前にあるので、文字列A:“abhor"は文字列B:“abid
e"の前である、と決定する。以上の説明で触れなかった
S7では、文字列Aの全ての文字が、文字列Bの文字が先
頭から文字列Aの文字数分一致して、かつ文字列Bが文
字列Aより長いか、一致するかを検索し、文字列Bが長
いとき〈文字列Aは文字列Bの前〉にあたると判断し、
一致したとき〈文字列Aと文字列Bは一致〉すると判断
する。
辞書データファイル100は、計算機可読な形態にする
ため、実際には文字をASCIIコード、EBSDIコード等によ
り数値化して格納している。この場合、文字の順序関係
は数値の大小関係で表わされ、ASCIIコードであれば、
数値の小さい方がアルファベット順で前にあたることに
なる。以下、文字(列)を用いて説明するとき、この相
関性を考慮して、文字(列)の順序関係を次のように表
記する。
・文字(列)Aは文字(列)Bの前にあたる:A<B ・文字(列)Aは文字(列)Bと一致する:A=B ・文字(列)Aは文字(列)Bの前にあたるか 一致す
る:A≦B 辞書データファイル100は、見出し語と辞書内容の各
対に256バイトずつ割当てている。その内訳は、見出し
語32バイト、辞書内容224バイトである。見出し語は32
文字以下のものもあるので、見出し語を先頭からつめた
余りの部分には文字コード以外の数値を充たす。ASCII
コードであれば、00は文字として使用しない数値である
ので、ここでは00を用いる。第3図のアルゴリズムのS
3、S4では、Nが32を超えるか、あるいは文字以外の数
値である00を検出することで文字列の終了を検出でき
る。
サブインデックスファイル200は、辞書データファイ
ル100を前記ブロック単位(4096バイト/ブロック)に
分割した、各ブロックの先頭の見出し語だけがブロック
順に並んだものである。すなわち、辞書データファイル
100の第1のブロック110の先頭の見出し語“A"111がサ
ブインデックスファイル200の第1の見出し語“A"211と
なり、辞書データファイル100の第2のブロック120の先
頭の見出し語“abhor"121がサブインデックスファイル2
00の第2の見出し語“abhor"212となり、以下同様にし
てサブインデックスファイル200が形成されている。サ
ブインデックスファイル200の各見出し語は、辞書デー
タファイル100の見出し語と同じく、32バイトずつ領域
を割当てられ、32バイト以下の見出し語には後の余白に
00を埋めている。また、サブインデックスファイル200
をブロック単位に分割したとき、1ブロックに満たない
余りが生じた場合も00を埋めて1ブロック分にする。し
たがってサブインデックスファイル200の最後のブロッ
ク230は途中から全て00の領域(=見出し語なしの領
域)が続いている。
マスタインデックスファイル300は、サブインデック
スファイル200をブロック単位に分割した各ブロックの
先頭の見出し語だけをブロックの順に並べたものであ
る。すなわち、サブインデックスファイル200の第1の
ブロック210の先頭の見出し語“A"211がマスタインデッ
クスファイル300の第1の見出し語“A"301となり、サブ
インデックスファイル200の第2のブロック220の先頭の
見出し語“brief"221がマスタインデックスファイル300
の第2の見出し語“brief"302となり、以下同様にし
て、マスタインデックスファイル300を構成する。マス
タインデックスファイル300の各見出し語にも32バイト
ずつの領域を割当てて、見出し語を先頭からつめて余っ
た部分には00を埋めている。また、マスタインデックス
ファイル300に含まれる見出し語が4096÷32=128個に満
たないとき、残りの領域には00を埋める。したがってマ
スタインデックスファイル300は途中から00の領域(す
なわち見出し語のない領域)が続いている。
本実施例の辞書ディスク1への項目の追加・削除を行
なう場合は、まず辞書データファイル100の然るべき位
置へ追加・挿入あるいは該当する対の削除を行なったあ
と、見出し語が連続した正しい順序関係を保つようにソ
ーティングする。次にサブインデックスファイル200、
マスタインデックスファイル300は全て棄却し、新たに
前記手順に従って構築し直す。このように、辞書ディス
ク1の内容変更は全体の変更を伴なうが、CD-ROMドライ
ブ13は再生専用の外部メモリ装置であり、辞書ディスク
1の書換えは不可能であることから、本実施例の辞書検
索装置10においては問題を生じない。
以上述べた構成の辞書ディスク1を用いた検索処理の
アルゴリズムを第4図、第5図に示す。例として、キー
ワードに“abide"を用いて、検索処理を説明する。
まず、入力装置15から読取ったキーワードを作業領域
21に格納する。第4図に示すように、以下K$という変
数に代入する形で表わす(S10)。続くS11でマスタイン
デックスファイル300をバッファ領域22へ読込む。マス
タインデックスファイル300のセクタアドレスは予め定
めてあり、CPU11は、プログラムに記されたセクタアド
レスの値を用いて、I/F部12を介してCD-ROMドライブ13
にアクセス命令と読出し命令を送り、マスタインデック
スファイル300全1ブロックを読込む。S12で見出し語数
カウンタIを1に設定する。
S13、S14、S20、S21、S22はループを成し、見出し語
を数えながら検査する。ループから抜けるのは、キーワ
ードより後になる見出し語を発見するか(S14)、また
は、1ブロック=128個の見出し語を検査し終るか(S2
1)、または、見出し語を全て検査し終るか(S22)、の
いずれかの条件が成立した場合である。この例では次の
ようにループを廻る。
S13…T$に第I:1の見出し語“A"301が入る。
第Iの見出し語は、バッファ領域22の先頭から(I−
1)×32バイト目から始まり、I×32−1バイト目まで
である。
S14…K$:“abide">T$:“A"であるからS20へ。
S20…Iに1加算、すなわちI=1+1=2。
S21…I:2<128ゆえS22へ。
S22…I:2番目の見出し語が存在するのでS13へ。
S13…T$に第I:2の見出し語“brief"302が入る。
S14…K$:“abide"<T$:“brief"でS15へ。
ループを抜けた後S15で、サブインデックスファイル2
00の第I−1:1ブロックをバッファ領域22へ読込む。サ
ブインデックスファイル200は、辞書ディスク1の定め
られた位置に格納されている。CPU11は、辞書ディスク
1上のサブインデックスファイル200が格納されている
領域の先頭のセクタアドレスをもとに、 (先頭セクタアドレス)+(I−2)×2 なる計算を行ない、該当するブロックのアドレスを求め
る。ここではI:2であるため、 (先頭セクタアドレス)+(2−2)×2 =(先頭セクタアドレス) であり、第1ブロックの先頭を得る。
S16で見出し語カウンタJを1に設定している。
S17、S18、S23、S24、S25はループをなし、見出し語
を数えながら検査する。ループから抜けるのは、1)キ
ーワードより後になる見出し語を発見するか(S18)、
2)1ブロック=128個の見出し語を検査し終る(S24)
および3)該当ブロックに含まれる全ての見出し語を検
査し終る(S25)のいずれかの条件が成立した場合であ
る。本例では以下のようにループを廻る。
S17…T$に第J:1の見出し語“A"211を入れる。
第Jの見出し語は、バッファ領域22の先頭から(J−
1)×32バイト目よりJ×32−1バイト目までである。
S18…K$:“abide">T$:“A"であるからS23へ。
S23…見出し語カウンタJを1加算する(J=2)。
S24…J:2<128であるからS25へ。
S25…J:2番目の見出し語があるからS17へ S17…T$に第J:2の見出し語“abhor"212を入れる。
S18…K$:“abide">T$:“abhor"であるからS23
へ。
S23…見出し語カウンタJを1加算する(J=3)。
S24…J:3<128であるからS25へ。
S25…J:3番目の見出し語があるからS17へ S17…T$へ第J:3番目の見出し語“about"213を入れ
る。
S18…K$:“abide"<T$:“about"からS19へ抜け
る。
ループを抜けたS19では、辞書データファイル200の第
{(I−2)×128+J−1}ブロックを読込む。これ
は、S18〜のループで検査したブロックは第I−1番目
のブロックであり、その前には(I−2)個のブロック
が存在する。各ブロックの見出し語数は4096バイト÷32
バイト=128個あることから、検査したブロックの前に
(I−2)×128個の見出し語が存在することになる。
よって、検査したブロックのJ番目の見出し語は、サブ
インデックスファイル200全体では{(I−2)×128+
J}番目にあたる。J番目の見出し語は、既にキーワー
ドの後になるので、読込む辞書データファイル100のブ
ロックは{(I−2)×128+J−1}番目である。ま
た、当該ブロックのあるセクタアドレスは、 (辞書データファイル100の先頭セクタアドレス)+
{(I−2)×128+J−2}×2 で求められ、本例では第2のブロック120が読込まれ
る。
次に、第5図の処理に移り、S26で見出し語数カウン
タIを1に設定する。
S27、S28、S29、S30、S31はループを成し、見出し語
を数えながら検査する。ループから抜けるのは、1)キ
ーワードと一致する見出し語を発見する(S28)、2)
1ブロック=4096÷256=16個の対の見出し語を検査し
終る(S30)、3)該当ブロックに含まれる全ての見出
し語を検査し終る(S31)、のうち、いずれかの条件を
満たした場合である。1)以外の条件でループを抜けた
場合、キーワードに対応する見出し語は辞書データファ
イル100内に存在しないので、該当内容不在で異常終了
する。1)の場合、見出し語に対応する辞書内容は、バ
ッファ領域22の先頭から(I−1)×256+32バイト目
より、I×256−1バイト目までに格納されている。本
例では以下のようになる。
S27…T$に第I:1の見出し語“abhor"121を入れる。
第Iの見出し語は、バッファ領域22の先頭から(I−
1)×256バイト目に始まり、I×3256−1バイト目ま
でに終る。
S28…K$:“abide">T$:“abhor"であるからS29
へ。
S29…Iを1加算する(I=2)。
S30…I:2<16であるからS31へ。
S31…I:2番目の見出し語があるのでS27へ S27…T$に第I:2の見出し語“abide"122を入れる。
S28…K$:“abide"=T$:“abide"であるから、検
索処理を正常終了する。
以上のように、辞書検索処理を実行する。
本実施例によれば、1ブロック=4096バイトのバッフ
ァメモリを書換えながら使用するので、省メモリ化の効
果がある。1ブロックのマスタインデックスファイルは
最大128個の見出し語を擁し、このとき128ブロックのサ
ブインデックスファイルを検索できる。サブインデック
スファイルの各ブロックにはそれぞれ128個までの見出
し語が格納され、それぞれ128ブロックずつの辞書デー
タファイルを検索できる。辞書データファイルの各ブロ
ックにはそれぞれ16個までの見出し語・辞書内容の対が
格納される。したがって、本実施例の辞書ディスクは、
最大で128×128×16=262144個の見出し語を持つことが
でき、そのときの辞書データファイルの容量は67108864
≒67MBに達する。
また、本実施例によれば、1度の検索でCD-ROMドライ
ブからデータを読込む回数は3回でよいので、検索処理
時間の短縮に効果がある。
さらに、本実施例によれば、CD-ROMドライブから読込
むデータ量は3ブロック=4096×3=12288バイトであ
り、また検索のために検査するデータは最大でも4096+
4096+32×16=8704バイトであることからも検索処理時
間短縮の効果がある。
加えて本実施例によれば、第2図に示すように、上位
の階層のインデックスにおける隣接した見出し語の違い
が大きくなっているため、実際に比較検査する文字の数
が少なくなるので、検索処理時間の短縮に効果がある。
一般に、多くの見出し語を持つ辞書データファイルにな
るほど隣接する見出し語の一致する文字数が多くなる。
そのため、キーワードに近い見出し語が数多く存在し、
かつ検査のために比較検査する文字数も多い。しかし本
実施例によれば、サブインデックスファイルにおいては
16個おき、マスタインデックスファイルにおいては16×
128=2048個おきに見出し語を見ることになるので、少
ない文字数の検査でキーワードと見出し語の順序関係を
判断できる。
その他の実施例について、以下説明する。
第1の実施例の構成要素を一部変更することにより、
1)辞書検索処理の高速化、2)辞書ディスク1上の各
ファイルの省メモリ化、等が実現できる。
1.内部メモリ14の変更 〈第2実施例〉 第6図に示すように、内部メモリ14に新たにマスタイ
ンデックス領域23を設ける。マスタインデックスファイ
ル300は辞書検索処理で毎回必要となる。したがって、
1)プログラムの一部としてマスタインデックスファイ
ル300を持つ、2)内部メモリ14のマスタインデックス
領域23をROMとし、予めマスタインデックスファイル300
を格納しておく、3)最初の検索処理で一度だけマスタ
インデックスファイル300をマスタインデックス領域23
に読込み、以後はそれを用いる、などの方法によって、
1)、2)は常に、3)は最初の検索処理を除いて、2
回の読込みで検索処理を実行できる。これにより、検索
処理時間を短縮することができる。
〈第3実施例〉 第7図に示すように、内部メモリ14のバッファ領域22
を削除した構成にする。かわりにCD-ROMドライブ13のセ
クタバッファ24を用いる。セクタバッファ24は、CD-ROM
ディスクから再生されるデータの再生速度と、CD-ROMド
ライブ13からCPU11がデータを読出す速度との差を緩衝
するため、多くのCD-ROMドライブ装置に設けられてい
る。ただしCPU11からはシーケンシャルアクセス(順次
読込み)しかできない。しかし、第1の実施例に示した
ように、見出し語は常に先頭から順に一つずつ検査する
ので、各ブロック内はシーケンシャルアクセスを用いる
ことができる。バッファ領域22を用いずに辞書ディスク
1を検索する検索処理アルゴリズムを第9図に示す。こ
の検索処理アルゴリズムは第1の実施例と基本的には同
じであり、CD-ROMドライブ13からデータを読込む処理が
異なっている。異なる部分を、第4図、第5図および第
9図を用いて、以下に説明する。
まず、第4図のS11、S15、S19が、それぞれ、第9図
のS41、S45、S49に代わる。これらのステップは、バッ
ファ領域22へ所望のデータを読込む代わりに、所望のデ
ータのあるセクタアドレスをアクセス・再生し、セクタ
バッファ24にデータを格納させている。次に、S13、S1
7、S27が、S43、S47、S57に置きかわる。T$にI番目
の見出し語を読み込むときに、常に32バイト読込むこと
によって、次に読込んだときに(I+1)番目の見出し
語が得られるようにしている。マスタインデックスファ
イル300、サブインデックスファイル200の該当ブロッ
ク、辞書データファイル100の該当ブロックを検査する
それぞれのループの分岐の条件は基本的には同じである
が、順次読出し式であるため、予めI番目の見出し語を
判断する(S22、S25、S31)ことはできず、そのため条
件判断の順序を変えて、T$に読込んだ直後にT$が見
出し語か否かを判断している(S44、S48、S58)。ま
た、辞書データファイル100の該当ブロックの検査のル
ープには、次の見出し語をT$に読込む前に、S59で見
出し語に続く辞書内容256バイトを空読みして、次の見
出し語を先頭からすぐに読出せるようにしている。本実
施例によれば、内部メモリ14にバッファ領域22を必要と
しないので、省メモリ化の効果がある。
〈第4実施例〉 第8図は、内部メモリ14にマスタインデックス領域23
は持つがバッファ領域22を持たない構成である。この構
成では、マスタインデックスファイル300の検査アルゴ
リズムは第1の実施例に準じ、その後、第3の実施例に
示したアルゴリズムで辞書検索処理を行なう。本実施例
によれば、内部メモリ14に1ブロックの領域をとる代わ
りに、CD-ROMドライブ13からの読出し回数が2回でよい
ので、検索処理の高速化に効果がある。
2.入力装置15、出力装置16の変更 〈第5実施例〉 第10図は、第1図の入力装置15、出力装置16の代わり
に通信I/F17を入出力装置に用いた構成である。通信I/F
17は、具体的にはRS-232C、GPIB、SCSI他、モデム、ネ
ットワーク等による入出力装置である。通信I/F17を介
して辞書検索装置10は、キーワードを入力し、辞書検索
処理を行ない、得た結果を出力する。
3.第1の記憶装置の変更 第1の記憶装置には既に例示したCD-ROMドライブ以外
にも、磁気ディスク装置、光ディスク装置などの外部記
憶装置13が利用できる。いずれにしても、CPU11から直
接にデータをアクセスすることはできず、I/F部12を要
する。また、CPU11が所望のデータを検査するために
は、I/F部12を介して、当該セクタアドレスをアクセス
し、バッファ領域22に読込む必要があり、本発明の効果
は有効である。
〈第6実施例〉 第6の実施例を第11図に示す。本実施例は、第1の記
憶装置に格納されたデータの、制御回路によって指定で
きる任意の一部分が、直接CPU11からアクセスできる構
成をとる。すなわち、第1の記憶装置である辞書ROM2
は、半導体メモリであるが、大容量であるためCPU11の
直接アクセスできるアドレス空間に納まらず、ウィンド
ウ切換え回路26で指定できる辞書ROM2のデータの一部だ
けが内部メモリ14のウィンドウ領域25からアクセスでき
るようになっている。このときのブロックの大きさは、
ウィンドウ領域25の大きさである。辞書ROM2に格納する
辞書データファイル100、サブインデックスファイル20
0、マスタインデックスファイル300の内容・構成および
検索方法は第1の実施例、もしくは後に述べる実施例に
示すものに準ずる。I/F部12を介する、CD-ROMドライブ1
3や磁気ディスク装置、光ディスク装置を第1の記憶装
置として利用した上述の実施例と本実施例との処理手順
の違いは、バッファ領域22へデータを読込むことなく、
キーワードと見出し語との照合検査を実行できる点にあ
る。また、検査するブロックの指定は、セクタアドレス
の指定から、辞書ROM2のアドレス、あるいはバンク、ペ
ージの指定になるが、本質的には同等である。
本実施例によれば、読出しの際にアクセス動作を要さ
ず、またデータ転送も不要なので、辞書検索処理速度の
向上に効果がある。
4.辞書ディスク1、辞書ROM2の変更 4.1 ファイルの配置 〈第7実施例〉 第1図、第12図、第13図および第14図により、第7の
実施例を説明する。本実施例は、マスタインデックスフ
ァイル300、サブインデックスファイル200、辞書データ
ファイル100を、辞書ディスク1上に第12図に示すよう
な配置にすることにより、検索処理時間を短縮したもの
である。第13図、第14図は簡単のために、1トラック:1
ブロックで、マスタインデックスファイル300は4ブロ
ックのサブインデックスファイル200を管理し、サブイ
ンデックスファイル200の各ブロックは、それぞれ辞書
データファイル100の2ブロック分を管理する構成とし
ている。辞書ディスク1は外周から第1トラック、第2
トラック…第13トラックとなる。また、第1図の辞書デ
ィスク1内に示される配置は第13図に対応し、これは階
層の順にファイルを並べた配置である。一方、第12図は
第14図に対応し、これはサブインデックスファイル200
の各ブロックと、該ブロックが管理する辞書データファ
イル100のブロックを組にして並べており、更にマスタ
インデックスファイル300を中心に配している。
第13図に示す配置で辞書検索処理を行なう場合、語順
の若いキーワード、“A"の検索であれば、マスタインデ
ックスファイル300→サブインデックスファイル200の第
1ブロック210→辞書データファイル100の第1ブロック
110の順に読込む。したがって第1トラック→第2トラ
ック→第6トラックとアクセスする。また、語順が最も
後になるキーワード“Zymmer"の場合、マスタインデッ
クスファイル300→サブインデックスファイル200の第4
ブロック230→辞書データファイル100の第8ブロック13
0の順に読込み、第1トラック→第5トラック→第13ト
ラックとアクセスする。すなわち、最小アクセス距離は
1+4=5トラックで、最大アクセス距離は、4+8=
12トラックとなる。全ての見出し語が同じ頻度で検索さ
れるとして、平均アクセス距離は、1/8+{(1+4)
+(1+5)+(2+5)+(2+6)+(3+6)+
(3+7)+(4+7)+(4+8)}=8.5トラック
となる。
次に、第14図に示す配置の辞書ディスク1では 最小アクセス距離:2+1=3トラック 最大アクセス距離:5+1=6トラック 平均アクセス距離:1/8+{(2+1)×4+(5+1)
×4}=4.5トラック である。このとき、次に読込むブロックのセクタアドレ
ス(この場合トラック番号)の計算は次のようになる。
サブインデックスファイル200を例として、マスタイ
ンデックスファイル300の検索で得た見出し語のカウン
ト値I; I≦3のとき、 (I−1)×3−1 I>3のとき、 (I−1)×3 同様に、辞書データファイル100のセクタアドレスも
計算できる。
本実施例によれば、アクセス距離を短縮できるので、
アクセスに要する時間を短縮し、辞書検索処理の高速化
に効果がある。また、アクセスのための物理的動作(シ
ーク動作)を伴なう外部記憶装置では、動作量を縮小で
きるので、外部記憶装置の摩滅抑制に効果がある。本実
施例は、内部メモリ内にマスタインデックス領域を設け
る第2の実施例に適用しても効果がある。
〈第8実施例〉 第8の実施例を第15図により説明する。本発明による
辞書検索処理10の辞書ディスク1上のデータは、上位の
インデックスファイルの結果得られる見出し語のカウン
ト値に基づき演算あるいはテーブル参照で一意に定まる
セクタアドレスに、ブロック単位で配することができ
る。第15図に32ブロックを乱数表3により配した例を示
す。上位のインデックスファイルの検索で得た、下位の
インデックスファイル(あるいは辞書データファイル10
0)の次に読み込むブロックが、第2ブロックであると
する。このとき、乱数表3の2番目の値を参照すると、
4となっている。すなわち、該当ブロックは4ブロック
目にあることがわかる。
本実施例によれば、乱数表3または演算法則を正規の
検索プログラムに持ち、辞書ディスク1上のブロックを
該乱数表3または演算法則に従って配することにより、
不正なプログラムによる検索処理を困難にすることがで
きるので、ソフト保護の効果がある。
4.2 可変長データ構造 〈第9実施例〉 第9の実施例を第16図により説明する。辞書データフ
ァイル100の見出し語の文字数は、“A"のように1文字
のものや、“brief"のように5文字のものなど様々であ
る。英単語辞書であれば、見出し語は、1文字から40文
字程度のものがあり、多くは15文字以下である。第1の
実施例に示す32文字分に固定した見出し語領域では、多
くの単語に長すぎる一方で、33文字以上の見出し語を使
えない。同様に、辞書内容の長さも固定長では無駄が生
ずる。これらのデータの領域を可変長として構成した辞
書ディスク1の内容を第16図に示す。
まず、辞書データファイル100は、見出し語の順序関
係に従って、見出し語、区切り符号“:"31、見出し語に
対応する辞書内容、区切り符号“;"30を1組としたレコ
ードをファイルの先頭から並べて行く。レコードがブロ
ック110の境目にまたがる場合は、境目にまたがらない
最後のレコードの後に非文字コード“00"32を埋め1ブ
ロックを完結させる。以下この手順で全てのレコードを
つめる。
次にサブインデックスファイル200は、上述の方法で
作られた辞書データファイル100の各ブロックの先頭の
見出し語を、第1ブロックから順にとり出して並べて行
く。このとき、見出し語と見出し語の間には区切り符号
“;"30を挿入し、ブロックの境界に見出し語がまたがる
場合は、境目にまたがらない最後の見出し語の区切り符
号“;"の後に非文字コード“00"32を埋め、ブロックを
終了する。また、各ブロックの先頭には、ブロックの第
1の見出し語に該当する辞書データファイル100のブロ
ックのセクタアドレス(ブロックオフセット33)を格納
する。
マスタインデックスファイル300は、サブインデック
スファイル200の各ブロックの先頭の見出し語を順に区
切り符号“;"30で区切りながら並べて行く。マスタイン
デックスファイル300の最後の見出し語の区切り符
号“;"30の後に非文字コード“00"32を埋める。この構
成の辞書ディスク1を検索するアルゴリズムを第17図、
第18図に示す。また、アルゴリズム中の、見出し語読取
りサブルーチンを第20図に示す。
本実施例によれば、可変長データ構造で辞書ディスク
1を実現できるので、同じ容量のメディアにより多くの
見出し語・辞書内容を搭載でき、等価的に大容量化が実
現できる効果がある。また、本実施例によれば、同じ容
量により多くの見出し語を含むので、検索速度向上の効
果がある。
〈第10実施例〉 第10の実施例を説明する。文字の数値表現にASCIIコ
ードを用いた場合、英数字は、48〜126に限られる。そ
こで、見出し語の区切り符号“;"30を削除し、かわりに
見出し語の最後の文字の数値に128を加え(すなわち、
最上位ビットを0から1に反転し)、176〜254の数値と
する。見出し語の区切りは、数値で176以上のものを探
すことにより、その後128を引いてもとの文字の値に戻
し、比較・検査に用いる。
本実施例によれば、区切り符号を必要としないので、
辞書容量の実質的増加に効果がある。
〈第11実施例〉 第11の実施例を第19図を用いて説明す。辞書データフ
ァイル100が非常に大きくブロックの数が多大なもので
ある場合、サブインデックスファイル200もまた大きく
なり多数のブロックを有することとなる。したがってマ
スタインデックスファイル300に含まれる見出し語の数
が大きくなり、サイズがサブインデックスファイル200
のブロックサイズで複数のブロックに相当する場合があ
る。このとき、サブインデックスファイル200の各ブロ
ックの先頭の見出し語を集めたものをサブインデックス
ファイルA(第2のサブインデックスファイル)400と
し、更にサブインデックスファイルA 400をブロック分
割して各ブロックの先頭の見出し語を集めてマスタイン
デックスファイル300を形成する。もし、サブインデッ
クスファイルA 400のブロック数が多く、したがって各
ブロックの先頭の見出し語を集めたものが大きい場合
は、サブインデックスファイルB(第3のサブインデッ
クスファイル)として、サブインデックスファイルBを
ブロック分割し各々のブロックの先頭の見出し語を集め
てマスタインデックスファイル300を形成する。以上の
動作を繰返し複数のサブインデックスファイルn(第n
のサブインデックスファイル)を設けることによって、
マスタインデックスファイル300のサイズを制限する。
サブインデックスファイルnが複数ある場合の検索方法
を第19図に示した、サブインデックスファイルnが2段
である場合について説明する。まずマスタインデックス
ファイル300を検索、第1の実施例に示した手順でサブ
インデックスファイルA 400から特定のブロックを導
く。サブインデックスファイル200に対応するサブイン
デックスファイルA 400の関係はサブインデックスファ
イルA 400に対応するマスタインデックスファイル300の
関係と同じであることから、サブインデックスファイル
A 400の特定のブロックをマスタインデックスファイル3
00と同じ方法で検索し、同じようにサブインデックスフ
ァイル200から特定のブロックを導く。サブインデック
スファイル200の特定のブロックを検索して辞書データ
ファイル100の特定ブロックを導き、辞書データファイ
ル100の特定ブロックから検索目的であるレコードを得
る方法については第1の実施例に述べた通りである。更
にサブインデックスファイルの数が増した場合も同じ処
理の繰返しから検索動作を実現できる。
検索しようとする辞書ディスクのサブインデックスフ
ァイルの段数が不明であっても、辞書データファイルの
各ブロックの先頭に、マスタインデックスファイルおよ
びサブインデックスファイルと区別するための識別コー
ドを記憶しておくことにより、辞書データファイルに達
したことを認識することができる。
本実施例によれば、サブインデックスファイルの段数
を増すことで非常に多くの見出し語を持つ辞書の検索を
小容量のメモリで実現できるため省メモリ化の効果があ
る。また、本実施例によれば、サブインデックスファイ
ルの段数を増やした場合でも同じ検索処理の繰返しで検
索動作を実現できるため、検索処理の単純化の効果があ
る。更に本実施例によれば、サブインデックスファイル
の段数が増加した場合、外部記憶装置からデータをロー
ドする回数は増加するものの、毎回検索する見出し語の
量がバッファ領域22の大きさに限定されたものであるた
め処理時間全体を短くすることができるので、検索時間
短縮の効果がある。
〈第12実施例〉 第12の実施例を以下に説明する。マスタインデックス
ファイル300およびサブインデックスファイル200の各ブ
ロックの先頭には第9の実施例で説明したブロックオフ
セット34(第16図参照)が置かれている。更に本実施例
では辞書データファイル100の各ブロックの先頭にオフ
セットデータとして使用されないデータをターミネータ
(識別コード)としておいている。マスタインデックス
ファイル300からサブインデックスファイル200のあるブ
ロックを導く方法、また、サブインデックスファイル20
0のあるブロックを検索して辞書データファイル100のあ
るブロックを導く方法、更にサブインデックスファイル
が多数ある場合に上位のサブインデックスファイルから
下位のサブインデックスファイルを導く方法は全て同一
である。したがって、ロードしたブロックの先頭がター
ミネータになるまで、順次下位のインデックスファイル
を導く動作を繰返し、ターミネータを検出した時点で辞
書データファイル100の検索方式に切換える。
本実施例によれば、検索処理手順を変えることなくサ
ブインデックスファイルの段数を変更できるので、辞書
ディスク1の拡張性を高め、検索処理を汎用化する効果
がある。
〈第13実施例〉 第13の実施例を第21図を用いて説明する。辞書データ
ファイル100は見出し語および内容から成るレコードを
単位として構成されている。この見出し語101と辞書内
容102との間に見出し語の末尾を示す区切り記号31、次
の見出し語までの距離を示す長さデータ(相対アドレス
値)36、長さデータ36の終りを示す区切り記号37を配置
し、また内容102と内容103との区切りを示す区切り記号
38、レコード全体の区切りを示す区切り記号30を配置し
ている。辞書データファイル100の検索において、キー
ワードと見出し語とが一致した場合はその内容を長さデ
ータ36の区切り記号37に後続するデータから得、キーワ
ードと見出し語とが一致しない場合は長さデータ36をも
とに次のレコードの先頭位置を求めて、次の見出し語と
キーワードとを比較し、以下この手順を順次繰返すこと
で一致する見出し語を検索する。
本実施例によれば、見出し語が一致しなかった場合に
次の見出し語が容易に求められるので、検索速度向上の
効果がある。
〈第14実施例〉 第14の実施例を以下に説明する。辞書データファイル
100の見出し語に対応する内容に、外部記憶装置13上の
特定アドレスを示す、アドレスデータを格納する。該ア
ドレスデータの指し示す場所には画像情報および音声情
報等、見出し語によって順序を与えられたデータ、大容
量のデータが格納されている。検索処理によって得た辞
書内容であるアドレスデータをもとに該データをロード
する。
本実施例によれば、大容量のデータを辞書データファ
イル100の外におくことにより辞書データファイル100を
小さくし、またブロックに含まれる見出し語数が多くな
るので、検索時間短縮の効果がある。
〈第15実施例〉 第15の実施例を第22図を用いて説明する。辞書データ
ファイル100の第1のブロック110の最後の見出し語113
が“abel"であり、第2のブロック120の最初の見出し語
121が“abhor"であるような場合、第2のブロック120に
対応するサブインデックスファイル200の見出し語212′
を“abh"(識別可能語頭部)とする。辞書データファイ
ル100の第1ブロック110に含まれる全ての見出し語は最
後の見出し語113の“abel"より前順にあり、“abh"は
“abel"より後順か第2のブロック120の先頭の見出し語
121“abhor"より前順であることから検索手順は既に述
べた方法と同一でよい。すなわち、第nブロック最終の
見出し語I(n,m)と続く第(n+1)ブロックの先頭
の見出し語I(n+1,1)に対しI(n,m)<Ix<I(n
+1,1)なる語Ixを上位のサブインデックスファイルま
たはマスタインデックスファイル300の見出し語として
用いることができる。
本実施例によれば、見出し語として用いることのでき
る語のうち語長の最も短いものを用いることによりサブ
インデックスファイル200ならびにマスタインデックス
ファイル300のサイズを小さくできるので、省メモリ化
の効果がある。また、本実施例によれば、検索の際に比
較する語長の短い見出し語を使うことができるので、検
索時間短縮の効果がある。
〈第16実施例〉 第16の実施例を第23図によって説明する。辞書データ
ファイル100の各ブロックの先頭の見出し語は、サブイ
ンデックスファイル200の見出し語となった後、辞書デ
ータファイル100から削除されている。検索処理におい
て、サブインデックスファイル200の検索中に検索する
キーワードと一致する見出し語があった場合、その見出
し語に対応する辞書データファイル100のブロックの最
初に記された辞書内容を求めることで検索目標の内容を
得る。同様にしてサブインデックスファイル200、もし
くは第2のインデックスファイルの各ブロックの先頭の
見出し語を省略することができる。
本実施例によれば、重ねる見出し語を省略することが
できるので、省メモリ化の効果がある。また、本実施例
によれば、ブロック先頭の見出し語は上位のサブインデ
ックスファイルもしくはマスタインデックスファイルか
ら直接参照されるので検索処理が短くなり、平均検索時
間を短縮する効果がある。
〈第17実施例〉 第17の実施例を以下に説明する。マスタインデックス
ファイル300の検索によりサブインデックスファイル200
の特定のブロックを導いた時点で、次に導かれる辞書デ
ータファイル100の特定ブロックが辞書データファイル1
00のおよそどのあたりに位置するかを予想することがで
きる。すなわち、サブインデックスファイル200の第1
のブロックに含まれる見出し語が示す辞書データファイ
ル100のブロックが第1〜第nブロック、サブインデッ
クスファイル200の第2のブロックに含まれる見出し語
が示す辞書データファイル100のブロックが第n+1〜
第m(m>n+1)とすると、マスタインデックスファ
イル300の検索の結果、サブインデックスファイル200の
第2のブロックが導かれた場合、次に導く辞書データフ
ァイル100のブロックは第n+1〜第mのブロックのう
ちの何れかである。したがって、サブインデックスファ
イル200の特定ブロックを外部記憶装置13からロードし
た後すぐに外部記憶装置13に辞書データファイル100の をアクセスするためのシーク動作を行なう。CD-ROMドラ
イブ13が のアクセスのためのシーク動作を行なっている間にCPU1
1はさきにロードしたサブインデックスファイル200の特
定ブロックの検索を行なう。
本実施例によれば、サブインデックスファイル200の
検索とCD-ROMドライブ13のシーク動作とを並行して行な
うため、検索処理時間を短縮する効果がある。
[発明の効果] 本発明によれば、ブロックサイズとして限られたメモ
リ容量で大容量のデータを検索できるので、メモリ効率
向上の効果がある。
また本発明によれば、小メモリの小型電子計算機を用
いて大容量データの検索ができるので、データ検索装置
の価格低減の効果がある。
更に本発明によれば、多数の見出し語を集めブロック
分割し、各々のブロックの先頭の見出し語を集めて上位
のサブインデックスファイルもしくはマスタインデック
スファイルを形成するため、上位のサブインデックスフ
ァイルもしくはマスタインデックスファイルに並ぶ見出
し語は隣合った見出し語同士であっても文字の重なりが
少なくなり、検索の際に比較する文字数が少なくてよい
ので、検索時間を短縮する効果がある。例えば第2図に
見られる辞書において、語“abide"の検索の場合、マス
タインデックスファイルの見出し語との比較は、“A"
と、“b"のみでよい。続くサブインデックスファイルで
は“A"、“abh"“abou"で順序関係は判別可能であり、
辞書データファイルにおいて、“abhor"、“abide"の比
較で所与の見出しを得る。もし、データファイルの見出
し語を最初から検索したとすれば第1ブロックの全ての
見出し語の頭3文字を検査することになる。
加えて本発明によれば、順序関係もしくは大小関係の
規定されたデータであれば見出し語に用いることがで
き、カタカナ見出し語(アイウエオ順)、英語見出し語
(ABC順)、数字見出し語(123順)などに利用すること
ができる。どのような検索すべき文字列でも、常にマス
タインデックスファイル、サブインデックスファイル、
データファイルを各1回計3回(第4の実施例では2
回)アクセスするだけで目的とする見出し語を検索する
ことができ、高速に大容量データファイルを検索するこ
とができる。
また、その際に必要とするバッファメモリの大きさ
は、マスタインデックスファイル(1ブロック)、サブ
インデックスファイル(該当すべき1ブロック)、デー
タファイル(該当すべき1ブロック)を読出すのみ各1
ブロック分必要とし、その都度バッファメモリの内容を
書換えて共通に使用することにより、1ブロック分の少
ないバッファメモリの大きさで充分本発明を実現でき
る。
1ブロックの大きさを2048バイトとし、平均見出し語
長を5バイトとすると、1ブロックのマスタインデック
スファイルで、410ブロックのサブインデックスファイ
ルを管理することができ、さらに、サブインデックスフ
ァイルの各ブロックがそれぞれデータファイルの410ブ
ロック分を管理することができる。すなわち、1ブロッ
クのマスタインデックスファイルで168100ブロック(34
4メガバイト)の大容量データファイルを管理すること
ができる。仮に2ブロック分のバッファメモリを用意し
たとすると、同様な計算により671000ブロック(2.7ギ
ガバイト)もの大容量データファイルを管理することが
できるなどの効果がある。
【図面の簡単な説明】
第1図は本発明の第1実施例を示すブロック図、第2図
は本発明におけるデータファイル、サブインデックスフ
ァイルおよびマスタインデックスファイルの一例を示す
構成図、第3図は見出し語比較の一例を示すフローチャ
ート、第4図および第5図は本発明を実現するためのア
ルゴリズムの一例を示したフローチャート、第6図ない
し第23図は本発明の他の実施例を説明するための説明図
である。 10……データ検索装置、11……CPU、13……第1記憶装
置、14……第2記憶装置、15……入力装置、16……出力
装置、22……バッファ領域、100……辞書データファイ
ル、200……サブインデックスファイル、300……マスタ
インデックスファイル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 松永 敏裕 神奈川県横浜市戸塚区吉田町292番地 日 立ビデオエンジニアリング株式会社内 (56)参考文献 特開 昭62−197822(JP,A) 特開 昭55−83962(JP,A)

Claims (49)

    【特許請求の範囲】
  1. 【請求項1】ディスク駆動装置と内部記憶装置を備え、
    上記ディスク駆動装置に装着されたディスク状記憶媒体
    に記憶された、複数の見出し語および該見出し語に対応
    するデータからなるデータファイルを検索するデータ検
    索方法であって、 上記データファイルは、上記ディスク状記憶媒体の1ま
    たは複数の最小アクセス単位(セクタ)よりなる単位領
    域一つに記憶される部分毎に、複数のブロックに分割さ
    れており、当該各ブロックは、当該ブロックの上記デー
    タファイル中のブロック順を所定の乱数表または演算式
    によって変換して求まる上記ディスク状記憶媒体上の位
    置にある上記単位領域に記憶されており、かつ、 以下のステップを含むことを特徴とするデータ検索方
    法。 A) 上記データファイルの複数のブロックそれぞれの
    先頭の見出し語をブロック順に集めたサブインデックス
    ファイルと、該サブインデックスファイルを上記単位領
    域一つに記憶される部分毎に分割して得られる複数のブ
    ロックそれぞれの先頭の見出し語をブロック順に集めた
    マスタインデックスファイルとを上記ディスク状記憶媒
    体に記憶し、 B) 上記データファイルの検索にあたり、 a) 上記マスターインデックスファイルを上記内部記
    憶装置に読みだし、検索すべきキーワードを上記内部記
    憶装置に読みだしたマスタインデックスファイルに記憶
    された見出し語と順次比較し、キーワードと一致した見
    出し語の上記内部記憶装置に読みだしたマスタインデッ
    クスファイル内の順番に応じて、上記キーワードの記憶
    されている可能性のある上記サブインデックスファイル
    のブロックが記憶されている上記単位領域の位置を決定
    し、決定した位置の単位領域より上記サブインデックス
    ファイルのブロックを上記内部記憶装置に読出し、 b) 上記キーワードを上記ステップa)で内部記憶装
    置に読出したブロックの見出し語と順次比較し、キーワ
    ードと一致した見出し語の上記内部記憶装置に読みだし
    たサブインデックスファイル内の順番を、所定の乱数表
    または演算式によって変換して求まる上記ディスク状記
    憶媒体上の位置にある上記単位領域より、上記キーワー
    ドの記憶されている可能性のある上記データファイルの
    ブロックを上記内部記憶装置に読出し、 c) 上記キーワードを上記ステップb)で内部記憶装
    置に読出したデータファイルのブロックの見出し語と順
    次比較することにより、上記キーワードに該当する見出
    し語に対応するデータを得る。
  2. 【請求項2】上記ステップA)において、上記マスタイ
    ンデックスファイルが複数の上記単位領域にわたり記憶
    されている場合、上記マスタインデックスファイルを他
    のインデックスファイルとし、当該他のインデックスフ
    ァイルを上記単位領域一つに記憶される部分毎に分割し
    て得られる複数のブロックの先頭の見出し語をブロック
    順に集めて新たなマスタインデックスファイルを作成す
    ることにより、上記サブインデックスファイルの個数を
    増加させ、上記マスタインデックスファイルを1個の上
    記単位領域に記憶した特許請求の範囲第1項記載のデー
    タ検索方法。
  3. 【請求項3】上記サブインデックスファイルをアクセス
    直後に上記ディスク駆動装置の読出ヘッドを上記ディス
    ク状記憶媒体の上記データファイルの該当するブロック
    が記憶されている領域の近傍の物理アドレス位置に、予
    めシークしておく特許請求の範囲第1項記載のデータ検
    索方法。
  4. 【請求項4】上記マスタインデックスファイルのアクセ
    ス直後に上記ディスク駆動装置の読出ヘッドを、上記デ
    ィスク状記憶媒体のサブインデックスファイルが記憶さ
    れている領域を二分する物理アドレス位置に、また、上
    記サブインデックスファイルをアクセス直後に上記読出
    ヘッドを上記ディスク状記憶媒体のデータファイルの該
    当するブロックが記憶されている領域の近傍の物理アド
    レス位置に、予めシークしておく特許請求の範囲第1項
    記載のデータ検索方法。
  5. 【請求項5】上記サブインデックスファイルの各ブロッ
    クの先頭に、上記各ブロックの先頭見出し語が上記サブ
    インデックスファイル中の何番目の見出し語であるかを
    示すオフセット値を記録した特許請求の範囲第1項記載
    のデータ検索方法。
  6. 【請求項6】上記マスタインデックスファイルの各ブロ
    ックの先頭に、その各ブロックの先頭見出し語が格納さ
    れている上記サブインデックスファイルのブロックが記
    憶されている単位領域の上記ディスク状記憶媒体におけ
    る物理アドレスまたは論理アドレスを示すアドレス値を
    記録した特許請求の範囲第1項記載のデータ検索方法。
  7. 【請求項7】上記データファイルの各ブロックの先頭
    に、上記マスタインデックスファイルおよびサブインデ
    ックスファイルと区別するための識別コードを記録した
    特許請求の範囲第1項記載のデータ検索方法。
  8. 【請求項8】上記データファイルの各見出し語の後に、
    次の見出し語との相対アドレス値を記録した特許請求の
    範囲第1項記載のデータ検索方法。
  9. 【請求項9】上記マスタインデックスファイルおよびサ
    ブインデックスファイルの各見出し語の最後に、次の見
    出し語と区別するための識別コードを記録した特許請求
    の範囲第1項記載のデータ検索方法。
  10. 【請求項10】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語の最後の文字コ
    ードの中で変化しない固定ビットを反転して記録した特
    許請求の範囲第1項記載のデータ検索方法。
  11. 【請求項11】上記データファイルの見出し語に対する
    データとして、上記ディスク状記憶媒体の物理アドレス
    または論理アドレスを示すアドレス値を記録した特許請
    求の範囲第1項記載のデータ検索方法。
  12. 【請求項12】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語を、そのファイ
    ルにおける他の見出し語と識別可能な語頭部のみで構成
    した特許請求の範囲第1項記載のデータ検索方法。
  13. 【請求項13】上記マスタインデックスファイルおよび
    サブインデックスファイルの各ブロックの先頭見出し語
    を省略した特許請求の範囲第1項記載のデータ検索方
    法。
  14. 【請求項14】ディスク駆動装置と内部記憶装置を備
    え、上記ディスク駆動装置に装着されたディスク状記憶
    媒体に記憶された、複数の見出し語および該見出し語に
    対応するデータからなるデータファイルを検索するデー
    タ検索方法であって、 上記データファイルは、上記ディスク状記憶媒体の1ま
    たは複数の最小アクセス単位(セクタ)よりなる単位領
    域一つに記憶される部分毎に、複数のブロックに分割さ
    れて上記ディスク状記憶媒体の複数の上記単位領域に各
    々記憶されており、かつ、 以下のステップを含むことを特徴とするデータ検索方
    法。 A) 上記データファイルの複数のブロックそれぞれの
    先頭の見出し語をブロック順に集めたサブインデックス
    ファイルを、上記単位領域一つに記憶される部分毎に、
    複数のブロックに分割し、当該サブインデックスファイ
    ルの各ブロックを、当該ブロックの上記サブインデック
    スファイル中のブロック順を所定の乱数表または演算式
    によって変換して求まる上記ディスク状記憶媒体上の位
    置にある上記単位領域に記憶し、該サブインデックスフ
    ァイルの複数のブロックそれぞれの先頭の見出し語をブ
    ロック順に集めたマスタインデックスファイルを上記デ
    ィスク状記憶媒体に記憶し、 B) 上記データファイルの検索にあたり、 a) 上記マスターインデックスファイルを上記内部記
    憶装置に読みだし、検索すべきキーワードを上記内部記
    憶装置に読みだしたマスタインデックスファイルに記憶
    された見出し語と順次比較し、キーワードと一致した見
    出し語の上記内部記憶装置に読みだしたマスタインデッ
    クスファイル内の順番を、所定の乱数表または演算式に
    よって変換して求まる上記ディスク状記憶媒体上の位置
    にある上記単位領域より、上記記サブインデックスファ
    イルのブロックを上記内部記憶装置に読出し、 b) 上記キーワードを上記ステップa)で内部記憶装
    置に読出したブロックの見出し語と順次比較し、キーワ
    ードと一致した見出し語の上記内部記憶装置に読みだし
    たサブインデックスファイルのブロック内の順番に応じ
    て、上記キーワードの記憶されている可能性のある上記
    データファイルのブロックが記憶されている上記単位領
    域の位置を決定し、決定した位置の単位領域より上記デ
    ータファイルのブロックを上記内部記憶装置に読出し、 c) 上記キーワードを上記ステップb)で内部記憶装
    置に読出したデータファイルのブロックの見出し語と順
    次比較することにより、上記キーワードに該当する見出
    し語に対応するデータを得る。
  15. 【請求項15】上記ステップA)において、上記マスタ
    インデックスファイルが複数の上記単位領域にわたり記
    憶されている場合、上記マスタインデックスファイルを
    他のインデックスファイルとし、当該他のインデックス
    ファイルを上記単位領域一つのに記憶される部分毎に分
    割して得られる複数のブロックの先頭の見出し語をブロ
    ック順に集めて新たなマスタインデックスファイルを作
    成することにより、上記サブインデックスファイルの個
    数を増加させ、上記マスタインデックスファイルを1個
    の上記単位領域に記憶した特許請求の範囲第14項記載の
    データ検索方法。
  16. 【請求項16】上記サブインデックスファイルをアクセ
    ス直後に上記ディスク駆動装置の読出ヘッドを上記ディ
    スク状記憶媒体の上記データファイルの該当するブロッ
    クが記憶されている領域の近傍物理アドレス位置に、予
    めシークしておく特許請求の範囲第14項記載のデータ検
    索方法。
  17. 【請求項17】上記マスタインデックスファイルのアク
    セス直後に上記ディスク駆動装置の読出ヘッドを、上記
    ディスク状記憶媒体のサブインデックスファイルが記憶
    されている領域を二分する物理アドレス位置に、また、
    上記サブインデックスファイルをアクセス直後に上記読
    出ヘッドを上記ディスク状記憶媒体のデータファイルの
    該当するブロックが記憶されている領域の近傍物理アド
    レス位置に、予めシークしておく特許請求の範囲第14項
    記載のデータ検索方法。
  18. 【請求項18】上記サブインデックスファイルの各ブロ
    ックの先頭に、上記各ブロックの先頭見出し語が上記サ
    ブインデックスファイル中の何番目の見出し語であるか
    を示すオフセット値を記録した特許請求の範囲第14項記
    載のデータ検索方法。
  19. 【請求項19】上記サブインデックスファイルの各ブロ
    ックの先頭に、その各ブロックの先頭見出し語が格納さ
    れている上記データファイルの上記ディスク状記憶媒体
    における物理アドレスまたは論理アドレスを示すアドレ
    ス値を記録した特許請求の範囲第14項記載のデータ検索
    方法。
  20. 【請求項20】上記データファイルの各ブロックの先頭
    に、上記マスタインデックスファイルおよびサブインデ
    ックスファイルと区別するための識別コードを記録した
    特許請求の範囲第14項記載のデータ検索方法。
  21. 【請求項21】上記データファイルの各見出し語の後
    に、次の見出し語との相対アドレス値を記録した特許請
    求の範囲第1項記載のデータ検索方法。
  22. 【請求項22】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語の最後に、次の
    見出し語と区別するための識別コードを記録した特許請
    求の範囲第14項記載のデータ検索方法。
  23. 【請求項23】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語の最後の文字コ
    ードの中で変化しない固定ビットを反転して記録した特
    許請求の範囲第14項記載のデータ検索方法。
  24. 【請求項24】上記データファイルの見出し語に対する
    データとして、上記ディスク状記憶媒体の物理アドレス
    または論理アドレスを示すアドレス値を記録した特許請
    求の範囲第14項記載のデータ検索方法。
  25. 【請求項25】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語を、そのファイ
    ルにおける他の見出し語と識別可能な語頭部のみで構成
    した特許請求の範囲第14項記載のデータ検索方法。
  26. 【請求項26】上記マスタインデックスファイルおよび
    サブインデックスファイルの各ブロックの先頭見出し語
    を省略した特許請求の範囲第14項記載のデータ検索方
    法。
  27. 【請求項27】その最小アクセス単位(セクタ)の整数
    倍の長さをブロックとするディスク状記憶媒体と、ディ
    スク状記憶媒体を駆動するディスク駆動装置と、上記デ
    ィスク駆動装置を介してディスク状記憶媒体にアクセス
    するデータ検索装置であって、 上記ディスク状記憶媒体は、当該ディスク状記憶媒体の
    1または複数の最小アクセス単位(セクタ)より成るブ
    ロックを複数用いた領域に、予め定められた順番で記憶
    された複数の見出し語および該見出し語に対応するデー
    タからなるデータファイルと、該データファイルの各ブ
    ロックの先頭見出し語をブロック順に集めたサブインデ
    ックスファイルと、該サブインデックスファイルの各ブ
    ロックの先頭見出し語をブロック順に集めたマスタイン
    デックスファイルとを記憶し、 上記データ検索装置は、 対応するデータを検索すべき見出し語を入力し上記見出
    し語に対応するデータを出力するための通信インタフェ
    ース装置と、 中央処理装置と、 上記中央処理装置の動作を規定するプログラムを記憶
    し、上記ディスク状記憶媒体から読みだしたデータを一
    時記憶する内部記憶装置とを備え、 上記中央処理装置は、上記プログラムに従って、 上記入出力装置とディスク駆動装置を制御し、 前記入出力装置から入力した上記対応するデータを検索
    すべき見出し語をキーワードとし、上記マスターインデ
    ックスファイルを上記内部記憶装置に読みだし、検索す
    べきキーワードを上記内部記憶装置に読みだしたマスタ
    インデックスファイルに記憶された見出し語と順次比較
    し、キーワードと一致した見出し語の上記内部記憶装置
    に読みだしたマスタインデックスファイル内の順次に応
    じて、上記キーワードの記憶されている可能性のある上
    記サブインデックスファイルのブロックを決定し、決定
    したブロックを上記内部記憶装置に読出し、 上記キーワードを上記内部記憶装置に読出したサブイン
    デックスファイルのブロックの見出し語と順次比較し、
    キーワードと一致した見出し語の上記内部記憶装置に読
    みだしたサブインデックスファイルのブロック内の順番
    に応じて、上記キーワードの記憶されている可能性のあ
    る上記データファイルのブロックを決定して、該ブロッ
    クを上記内部記憶装置に読出し、 上記キーワードを上記で内部記憶装置に読出したデータ
    ファイルのブロックの見出し語と順次比較することによ
    り、上記キーワードに該当する見出し語に対応する検索
    結果を得て、上記入出力装置から出力することを特徴と
    するデータ検索装置。
  28. 【請求項28】上記ディスク状記憶媒体の上記サブイン
    デックスファイルの各ブロックを、上記ディスク状記憶
    媒体内の上記データファイルの該当するブロックの近傍
    物理アドレス位置に配置した特許請求の範囲第27項記載
    のデータ検索装置。
  29. 【請求項29】上記ディスク状記憶媒体内の上記マスタ
    インデックスファイルを上記ディスク状記憶媒体内の上
    記データファイルをほぼ二分する物理アドレス位置に配
    置すると共に、上記ディスク状記憶媒体内の上記サブイ
    ンデックスファイルの各ブロックを上記データファイル
    の該当するブロックの近傍物理アドレス位置に配置した
    特許請求の範囲第27項記載のデータ検索装置。
  30. 【請求項30】上記サブインデックスファイルの各ブロ
    ックまたは前記データファイルのブロックは、当該ブロ
    ックの上記ブロック順を所定の乱数表または演算式によ
    って変換して求まる上記ディスク状記憶媒体上の位置に
    記憶されている特許請求の範囲第27項記載のデータ検索
    装置。
  31. 【請求項31】ディスク状記憶媒体に記憶され、検索時
    に電子計算機の内部記憶装置に読み込まれて電子計算機
    によって検索される、複数の見出し語および該見出し語
    に対応するデータからなるデータファイルおよび当該デ
    ータファイルを検索するために、ディスク状記憶媒体に
    記憶され、検索時に電子計算機の内部記憶装置に読み込
    まれる検索用データを生成する方法であって、 前記データファイルは、上記ディスク状記憶媒体の1ま
    たは複数の最小アクセス単位(セクタ)よりなる単位領
    域一つに記憶される部分毎に、複数のブロックに分割さ
    れており、当該データファイルの各ブロックは、当該ブ
    ロックの上記データファイル中のブロック順を所定の乱
    数表または演算式によって変換して求まる上記ディスク
    状記憶媒体上の位置にある上記単位領域に記憶されてお
    り、かつ、上記データファイルの複数のブロックそれぞ
    れの先頭の見出し語をブロック順に集めたサブインデッ
    クスファイルを生成し、生成したサブインデックスファ
    イルを、上記単位領域一つに記憶される部分毎に、複数
    のブロックに分割し、当該サブインデックスファイルの
    各ブロックを、複数の上記単位領域に各々記憶するステ
    ップと、 上記サブインデックスファイルの各ブロックの先頭見出
    し語をブロック順に集めたマスタインデックスファイル
    を生成し、生成したマスタインデックスファイルを上記
    ディスク状記憶媒体に記憶するステップとを有すること
    を特徴とする検索用データの生成方法。
  32. 【請求項32】上記サブインデックスファイルは、上位
    および下位の複数のファイルからなり、最下位のファイ
    ルは、上記データファイルの各ブロックの先頭見出し語
    をブロック順に集めてなり、上記上位のファイルは、下
    位のファイルの各ブロックの先頭見出し語をブロック順
    に集めてなり、さらに、上記マスタインデックスファイ
    ルは、最上位のファイルの各ブロックの先頭見出し語を
    ブロック順に集めてなる特許請求の範囲第31項記載の検
    索用データの生成方法。
  33. 【請求項33】上記サブインデックスファイルの各ブロ
    ックの先頭に、上記各ブロックの先頭見出し語が上記サ
    ブインデックスファイル中の何番目の見出し語であるか
    を示すオフセット値を記録した特許請求の範囲第31項記
    載の検索用データの生成方法。
  34. 【請求項34】上記データファイルの各ブロックの先頭
    に、上記マスタインデックスファイルおよびサブインデ
    ックスファイルと区別するための識別コードを記録した
    特許請求の範囲第31項記載の検索用データの生成方法。
  35. 【請求項35】上記データファイルの各見出し語の後
    に、次の見出し語との相対アドレス値を記録した特許請
    求の範囲第31項記載の検索用データの生成方法。
  36. 【請求項36】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語の最後に、次の
    見出し語と区別するための識別コードを記録した特許請
    求の範囲第31項記載の検索用データの生成方法。
  37. 【請求項37】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語の最後の文字コ
    ードの中で変化しない固定ビットを反転して記録した特
    許請求の範囲第31項記載の検索用データの生成方法。
  38. 【請求項38】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語を、そのファイ
    ルにおける他の見出し語と識別可能な語頭部のみで構成
    した特許請求の範囲第31項記載の検索用データの生成方
    法。
  39. 【請求項39】上記マスタインデックスファイルおよび
    サブインデックスファイルの各ブロックの先頭見出し語
    を省略した特許請求の範囲第31項記載の検索用データの
    生成方法。
  40. 【請求項40】ディスク状記憶媒体に記憶され、検索時
    に電子計算機の内部記憶装置に読み込まれて電子計算機
    によって検索される、複数の見出し語および該見出し語
    に対応するデータからなるデータファイルおよび当該デ
    ータファイルを検索するために、ディスク状記憶媒体に
    記憶され、検索時に電子計算機の内部記憶装置に読み込
    まれる検索用データを生成する方法であって、 前記データファイルは、上記ディスク状記憶媒体の1ま
    たは複数の最小アクセス単位(セクタ)よりなる単位領
    域一つに記憶される部分毎に、複数のブロックに分割さ
    れており、当該データファイルの各ブロックは、複数の
    上記単位領域に各々記憶されており、かつ、 上記データファイルの複数のブロックそれぞれの先頭の
    見出し語をブロック順に集めたサブインデックスファイ
    ルを生成し、生成したサブインデックスファイルを、上
    記単位領域一つに記憶される部分毎に、複数のブロック
    に分割し、当該データファイルの各ブロックを、当該ブ
    ロックの上記サブインデックスファイル中のブロック番
    を所定の乱数表または演算式によって変換して求まる上
    記ディスク状記憶媒体上の位置にある上記単位領域に記
    憶するステップと、 上記サブインデックスファイルの各ブロックの先頭見出
    し語をブロック順に集めたマスタインデックスファイル
    を生成し、生成したマスタインデックスファイルを上記
    ディスク状記憶媒体に記憶するステップとを有すること
    を特徴とする検索用データの生成方法。
  41. 【請求項41】上記サブインデックスファイルは、上位
    および下位の複数のファイルからなり、最下位のファイ
    ルは、上記データファイルの各ブロックの先頭見出し語
    をブロック順に集めてなり、上記上位のファイルは、下
    位のファイルの各ブロックの先頭見出し語をブロック順
    に集めてなり、さらに、上記マスタインデックスファイ
    ルは、最上位のファイルの各ブロックの先頭見出し語を
    ブロック順に集めてなる特許請求の範囲第40項記載の検
    索用データの生成方法。
  42. 【請求項42】上記サブインデックスファイルの各ブロ
    ックの先頭に、上記各ブロックの先頭見出し語が上記サ
    ブインデックスファイル中の何番目の見出し語であるか
    を示すオフセット値を記録した特許請求の範囲第40項記
    載の検索用データの生成方法。
  43. 【請求項43】上記データファイルの各ブロックの先頭
    に、上記マスタインデックスファイルおよびサブインデ
    ックスファイルと区別するための識別コードを記録した
    特許請求の範囲第40項記載の検索用データの生成方法。
  44. 【請求項44】上記データファイルの各見出し語の後
    に、次の見出し語との相対アドレス値を記録した特許請
    求の範囲第40項記載の検索用データの生成方法。
  45. 【請求項45】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語の最後に、次の
    見出し語と区別するための識別コードを記録した特許請
    求の範囲第40項記載の検索用データの生成方法。
  46. 【請求項46】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語の最後の文字コ
    ードの中で変化しない固定ビットを反転して記録した特
    許請求の範囲第40項記載の検索用データの生成方法。
  47. 【請求項47】上記マスタインデックスファイルおよび
    サブインデックスファイルの各見出し語を、そのファイ
    ルにおける他の見出し語と識別可能な語頭部のみで構成
    した特許請求の範囲第40項記載の検索用データの生成方
    法。
  48. 【請求項48】上記マスタインデックスファイルおよび
    サブインデックスファイルの各ブロックの先頭見出し語
    を省略した特許請求の範囲第40項記載の検索用データの
    生成方法。
  49. 【請求項49】ディスク駆動装置と内部記憶装置を備
    え、上記ディスク駆動装置に装着されたディスク状記憶
    装置の、1または複数の最小アクセス単位(セクタ)よ
    り成るブロックを複数用いた領域に、予め定められた順
    番で記憶された複数の見出し語および該見出し語に対応
    するデータからなるデータファイルを検索する方法であ
    って、以下のステップからなるデータ検索方法。 A) 上記データファイルの複数のブロックそれぞれの
    先頭の見出し語をブロック順に集めて生成したサブイン
    デックスファイルと、該サブインデックスファイルの複
    数のブロックそれぞれの先頭の見出し語をブロック順に
    集めて生成したマスタインデックスファイルとを上記デ
    ィスク状記憶媒体に記憶し、 上記マスタインデックスファイルが複数の上記単位領域
    にわたり記憶されている場合に、上記マスタインデック
    スファイルを、最後に生成したサブインデックスファイ
    ルの一つ上位の他のインデックスファイルとし、当該他
    のインデックスファイルを上記単位領域一つに記憶され
    る部分毎に分割して得られる複数のブロックの先頭の見
    出し語をブロック順に集めて新たなマスタインデックス
    ファイルを作成し上記ディスク状記憶媒体に記憶する処
    理を、上記マスタインデックスファイルが1個の上記単
    位領域にのみ記憶されるようになるまで繰り返し、 B) 上記データファイルの検索にあたり、 a) 上記マスターインデックスファイルを上記内部記
    憶装置に読みだし、検索すべきキーワードを上記内部記
    憶装置に読みだしたマスタインデックスファイルに記憶
    された見出し語と順次比較し、キーワードと一致した見
    出し語の上記内部記憶装置に読みだしたマスタインデッ
    クスファイル内の順番に応じて、上記キーワードの記憶
    されている可能性のある最上位のサブインデックスファ
    イルのブロックを決定し、決定したブロックを上記内部
    記憶装置に読出し、 b) 上記キーワードを内部記憶装置に読出したブロッ
    クの見出し語と順次比較し、キーワードと一致した見出
    し語の上記内部記憶装置に読みだしたサブインデックス
    ファイルのブロック内の順番に応じて、一つ下位のサブ
    インデックスファイルのブロックを決定して、該ブロッ
    クを上記内部記憶装置に読出す処理を、上記キーワード
    の記憶されている可能性のある最下位のサブインデック
    スファイルのブロックが内部記憶装置に読み出されるま
    で繰り返し、 上記キーワードを内部記憶装置に読出した最下位のサブ
    インデックスファイルのブロックの見出し語と順次比較
    し、キーワードと一致した見出し語の上記内部記憶装置
    に読みだしたサブインデックスファイルのブロック内の
    順番に応じて、上記キーワードの記憶されている可能性
    のあるデータファイルのブロックを決定して、該ブロッ
    クを上記内部記憶装置に読出し、 c) 上記キーワードを上記ステップb)で内部記憶装
    置に読出したデータファイルのブロックの見出し語と順
    次比較することにより、上記キーワードに該当する見出
    し語に対応するデータを得る。
JP62215937A 1987-08-28 1987-08-28 デ−タ検索方法および装置 Expired - Lifetime JPH0823865B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62215937A JPH0823865B2 (ja) 1987-08-28 1987-08-28 デ−タ検索方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62215937A JPH0823865B2 (ja) 1987-08-28 1987-08-28 デ−タ検索方法および装置

Publications (2)

Publication Number Publication Date
JPS6458018A JPS6458018A (en) 1989-03-06
JPH0823865B2 true JPH0823865B2 (ja) 1996-03-06

Family

ID=16680728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62215937A Expired - Lifetime JPH0823865B2 (ja) 1987-08-28 1987-08-28 デ−タ検索方法および装置

Country Status (1)

Country Link
JP (1) JPH0823865B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101400816B1 (ko) * 2006-11-01 2014-06-27 아브 이니티오 테크놀로지 엘엘시 개별적으로 액세스 가능한 데이터 유닛의 기억 관리 방법 및 시스템

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0631590A (ja) * 1992-07-14 1994-02-08 Mazda Motor Corp Nc加工用工具移動経路の作成方法
JP3720882B2 (ja) * 1995-09-26 2005-11-30 新日鉄ソリューションズ株式会社 情報検索方法、情報検索システム及び情報検索装置
US7885932B2 (en) 2006-11-01 2011-02-08 Ab Initio Technology Llc Managing storage of individually accessible data units
JP2011134021A (ja) * 2009-12-22 2011-07-07 Fuji Soft Inc 文字列予測プログラムおよび情報処理装置
US20130013605A1 (en) 2011-07-08 2013-01-10 Stanfill Craig W Managing Storage of Data for Range-Based Searching
JP5460836B2 (ja) * 2012-12-03 2014-04-02 富士ソフト株式会社 文字列予測プログラムおよび情報処理装置
CN108572954B (zh) * 2017-03-07 2023-04-28 上海颐为网络科技有限公司 一种近似词条结构推荐方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5583962A (en) * 1978-12-19 1980-06-24 Sharp Corp Data retrieving system
JP3189505B2 (ja) * 1993-06-30 2001-07-16 神鋼電機株式会社 トンネル内照明器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101400816B1 (ko) * 2006-11-01 2014-06-27 아브 이니티오 테크놀로지 엘엘시 개별적으로 액세스 가능한 데이터 유닛의 기억 관리 방법 및 시스템

Also Published As

Publication number Publication date
JPS6458018A (en) 1989-03-06

Similar Documents

Publication Publication Date Title
US5745745A (en) Text search method and apparatus for structured documents
US7103536B1 (en) Symbol dictionary compiling method and symbol dictionary retrieving method
US6098034A (en) Method for standardizing phrasing in a document
US5168533A (en) Hierarchical presearch type text search method and apparatus and magnetic disk unit used in the apparatus
JP3696731B2 (ja) 構造化文書の検索方法および装置および構造化文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000501861A (ja) コンパクト0完全木における順序付けられたキーの集まりの記憶と検索のための装置及び方法
JP4351247B2 (ja) 格納データを処理するためのコンピュータ利用コンパクト0コンプリートツリーの動的格納構造及び方法
Baeza-Yates et al. Hierarchies of indices for text searching
JPH0823865B2 (ja) デ−タ検索方法および装置
JP2693914B2 (ja) 検索システム
JPH05101102A (ja) 検索装置
Arikawa et al. A run-time efficient realization of Aho-Corasick pattern matching machines
JP3552318B2 (ja) 文書検索方法およびシステム
JP2835335B2 (ja) データ検索装置及びデータ検索方法
JPH0689215A (ja) 情報検索用コンピュータシステム及び同システムの記憶装置の操作方法
JP4319827B2 (ja) 文書検索プログラム
JPH04340164A (ja) マルチキーワード情報検索処理方式および検索ファイル作成装置
JP2001067368A (ja) 多言語文書処理装置、多言語文書処理方法及び記録媒体
JPH10149367A (ja) テキスト蓄積検索装置
JPH0991304A (ja) 情報検索方法、情報検索システム及び情報検索用記憶媒体
JPH06295313A (ja) インデックス付き検索ファイルのデータ検索装置
JPH05181719A (ja) 可変長データの格納および参照システム
JPH0831096B2 (ja) 単語辞書装置
JPS6370372A (ja) 文書処理装置
JPS62197822A (ja) 辞書デ−タ検索方式