JPH08272814A - 文字列検索装置 - Google Patents
文字列検索装置Info
- Publication number
- JPH08272814A JPH08272814A JP7076948A JP7694895A JPH08272814A JP H08272814 A JPH08272814 A JP H08272814A JP 7076948 A JP7076948 A JP 7076948A JP 7694895 A JP7694895 A JP 7694895A JP H08272814 A JPH08272814 A JP H08272814A
- Authority
- JP
- Japan
- Prior art keywords
- character string
- block
- file
- search
- character
- 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
Links
- 238000004904 shortening Methods 0.000 abstract 1
- 238000000034 method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】 検索時間を短縮し、辞書ファイルの使用メモ
リ量も少なくてすむ文字列検索装置を提供する。 【構成】 辞書検索用ファイル(辞書ファイル)70は
ディレクトリブロック710、複数の文字列ブロック7
20、EOFブロック730から構成される。ディレク
トリブロック710には各文字列ブロックの先頭アドレ
スが格納されており、該ブロックは文字列の先頭の種類
と文字数で関係づけられている。各文字列ブロック72
0には実際の文字列が格納される。EOFブロック73
0はファイルの最後を表わす。入力文字列の文字数と先
頭文字の種類により、ディレクトリブロック710から
該当文字列ブロックのアドレスを取得し、該アドレスに
より該当文字列ブロック720の文字列群を読み込んで
検索する。
リ量も少なくてすむ文字列検索装置を提供する。 【構成】 辞書検索用ファイル(辞書ファイル)70は
ディレクトリブロック710、複数の文字列ブロック7
20、EOFブロック730から構成される。ディレク
トリブロック710には各文字列ブロックの先頭アドレ
スが格納されており、該ブロックは文字列の先頭の種類
と文字数で関係づけられている。各文字列ブロック72
0には実際の文字列が格納される。EOFブロック73
0はファイルの最後を表わす。入力文字列の文字数と先
頭文字の種類により、ディレクトリブロック710から
該当文字列ブロックのアドレスを取得し、該アドレスに
より該当文字列ブロック720の文字列群を読み込んで
検索する。
Description
【0001】
【産業上の利用分野】本発明は文字列検索装置に係り、
具体的には、図書や論文等の文字列検索、コードや品番
等の検索に有効な文字列検索装置に関する。
具体的には、図書や論文等の文字列検索、コードや品番
等の検索に有効な文字列検索装置に関する。
【0002】
【従来の技術】従来の文字列検索装置では、キー指定し
て、キー値と一致したものをサーチする方式が一般的で
ある。図5に、この種の文字列検索装置に用いられる辞
書ファイルの構成例を示す。例えば「コマツ」という文
字列を検索すると次のようになる。まず、入力文字列
「コマツ」を元にインデックス部より該当するキー値
(文字数が「3」で、先頭文字が「カ」行)をサーチ
し、次に該当するキー値を元にデータ部をサーチし、文
字列「コマツ」の有無を検索する。
て、キー値と一致したものをサーチする方式が一般的で
ある。図5に、この種の文字列検索装置に用いられる辞
書ファイルの構成例を示す。例えば「コマツ」という文
字列を検索すると次のようになる。まず、入力文字列
「コマツ」を元にインデックス部より該当するキー値
(文字数が「3」で、先頭文字が「カ」行)をサーチ
し、次に該当するキー値を元にデータ部をサーチし、文
字列「コマツ」の有無を検索する。
【0003】
【発明が解決しようとする課題】上記従来技術では、2
段階のサーチ(インデックス部とデータ部)を行う必要
があるため、検索回数が多くなると非常に時間がかか
り、効率が悪くなるという問題がある。例えば、辞書フ
ァイルに既に同じ名前が登録されているかどうかを検索
するような場合にも、2段階のサーチを行うため、検索
に時間がかかっていた。また、データ部にもキー値を持
たないと検索ができないため、データ(文字列)が多く
なればなるほど、使用メモリ量が多くなるという問題も
ある。
段階のサーチ(インデックス部とデータ部)を行う必要
があるため、検索回数が多くなると非常に時間がかか
り、効率が悪くなるという問題がある。例えば、辞書フ
ァイルに既に同じ名前が登録されているかどうかを検索
するような場合にも、2段階のサーチを行うため、検索
に時間がかかっていた。また、データ部にもキー値を持
たないと検索ができないため、データ(文字列)が多く
なればなるほど、使用メモリ量が多くなるという問題も
ある。
【0004】本発明の目的は、従来技術に比べて、検索
時間が短縮でき、かつ、辞書ファイルの使用メモリ量も
少なくできる文字列検索装置を提供することにある。
時間が短縮でき、かつ、辞書ファイルの使用メモリ量も
少なくできる文字列検索装置を提供することにある。
【0005】
【課題を解決するための手段】本発明の文字列検索装置
は、辞書ファイルとして、文字列の内容を文字数と先頭
の文字の内容の組み合せによって分類し、各ブロック単
位にその文字列を格納した複数の文字列ブロックと、前
記文字列ブロックの存在するアドレスを登録したディレ
クトリブロックとで構成し、前記入力文字列の文字数と
先頭の文字により前記ディレクトリブロックから該当文
字列ブロックのアドレスを取得し、該アドレスにより該
当文字列ブロックの文字列を読み込み、前記入力文字列
と一致あるいは類似する文字列を検索する手段を有する
ようにしたことを特徴とするものである。
は、辞書ファイルとして、文字列の内容を文字数と先頭
の文字の内容の組み合せによって分類し、各ブロック単
位にその文字列を格納した複数の文字列ブロックと、前
記文字列ブロックの存在するアドレスを登録したディレ
クトリブロックとで構成し、前記入力文字列の文字数と
先頭の文字により前記ディレクトリブロックから該当文
字列ブロックのアドレスを取得し、該アドレスにより該
当文字列ブロックの文字列を読み込み、前記入力文字列
と一致あるいは類似する文字列を検索する手段を有する
ようにしたことを特徴とするものである。
【0006】
【作用】入力文字列の文字数とその先頭文字により、デ
ィレクトリブロックから該当文字列ブロックの存在する
アドレスが直接取得できる。このアドレスで該当文字列
ブロックのデータ(文字列群)を読み込み、入力文字列
と一致あるいは類似するものがあるか検索する。これに
より、検索回数は文字列ブロックの文字列群に対する1
度で済み、また、データはブロック単位で読み込むこと
ができるのでアクセス回数も少なく検索時間を短縮出来
る。またインデックス部をディレクトリブロックとして
1ブロックで管理し、データ部は文字列のみを格納する
ためメモリも最小限の領域で済む。
ィレクトリブロックから該当文字列ブロックの存在する
アドレスが直接取得できる。このアドレスで該当文字列
ブロックのデータ(文字列群)を読み込み、入力文字列
と一致あるいは類似するものがあるか検索する。これに
より、検索回数は文字列ブロックの文字列群に対する1
度で済み、また、データはブロック単位で読み込むこと
ができるのでアクセス回数も少なく検索時間を短縮出来
る。またインデックス部をディレクトリブロックとして
1ブロックで管理し、データ部は文字列のみを格納する
ためメモリも最小限の領域で済む。
【0007】
【実施例】以下、本発明の一実施例について図面により
説明する。
説明する。
【0008】図1は、本発明の文字列検索装置の一実施
例の全体構成図である。本システムは、検索する入力文
字列や検索結果を表示するディスプレィ10、検索する
文字列やコマンド等を入力するキーボード20、検索結
果を出力するプリンタ30、検索する文字列が格納され
ている入力ファイル40、辞書登録する文字列が格納さ
れている辞書入力ファイル50、入力ファイル40から
作成された検索用文字列が格納される入力検索用ファイ
ル60、辞書入力ファイル50から作成された検索用辞
書が格納される辞書検索用ファイル70、処理途中ファ
イルや処理結果ファイルなどを格納する補助記憶装置8
0、及び、展開文字列の作成、コード化、検索、編集な
どの処理を行うCPU(中央処理装置)100からな
る。ここで、入力ファイル40および辞書入力ファイル
50は順編成(SAM)ファイルであり、磁気テープま
たは磁気ディスクからなる。入力検索用ファイル60及
び辞書検索用ファイル70は直接アクセス(DAM)フ
ァイルである。プリンタ30には例えば漢字プリンタを
用いる。
例の全体構成図である。本システムは、検索する入力文
字列や検索結果を表示するディスプレィ10、検索する
文字列やコマンド等を入力するキーボード20、検索結
果を出力するプリンタ30、検索する文字列が格納され
ている入力ファイル40、辞書登録する文字列が格納さ
れている辞書入力ファイル50、入力ファイル40から
作成された検索用文字列が格納される入力検索用ファイ
ル60、辞書入力ファイル50から作成された検索用辞
書が格納される辞書検索用ファイル70、処理途中ファ
イルや処理結果ファイルなどを格納する補助記憶装置8
0、及び、展開文字列の作成、コード化、検索、編集な
どの処理を行うCPU(中央処理装置)100からな
る。ここで、入力ファイル40および辞書入力ファイル
50は順編成(SAM)ファイルであり、磁気テープま
たは磁気ディスクからなる。入力検索用ファイル60及
び辞書検索用ファイル70は直接アクセス(DAM)フ
ァイルである。プリンタ30には例えば漢字プリンタを
用いる。
【0009】図2はCPU100の全体的動作の流れを
示すフロー図である。入力ファイル40及び辞書入力フ
ァイル50はSAMファイルである。これらのファイル
40、50をもとに展開文字列を作成し、その文字列を
コード化する(ステップ110、210)。この内容を
出力したものが、展開済入力ファイル120及び展開済
辞書ファイル220であり、これらのファイルもSAM
ファイルである。次に、これらの展開済ファイル12
0、220の中に同一の文字列が存在した場合、これら
を一つにし、入力検索用ファイル60、辞書検索用ファ
イル70を作成する(ステップ130、230)。これ
らのファイル60、70はDAMファイルである。この
入力検索用ファイル60を対象に、辞書検索用ファイル
70を参照して文字列を検索する(ステップ140)。
これについては、後で詳述する。入力検索結果ファイル
150及び辞書検索結果ファイル250は検索結果を出
力したものであり、入力検索結果ファイル150には入
力ファイル40より抽出した文字列の全情報及び辞書入
力ファイル50のどの文字列と類似したか、また類似し
ながったかといった情報が格納される。また、辞書検索
結果ファイル250は類似した文字列が格納される。こ
れらの検索結果ファイル150、250をもとに統合編
集して、検索結果リスト170を作成する(ステップ1
60)。この統合編集処理では文字列以外の情報は最初
の入力である入力ファイル40及び辞書入力ファイル5
0から情報を取得する。これは、文字列の検索時は文字
列データだけで膨大な量のデータとなるため、検索時に
余計なデータをファイル上に持たないためである。作成
された検索結果リスト170は、ディスプレィ10やプ
リンタ30に出力する。
示すフロー図である。入力ファイル40及び辞書入力フ
ァイル50はSAMファイルである。これらのファイル
40、50をもとに展開文字列を作成し、その文字列を
コード化する(ステップ110、210)。この内容を
出力したものが、展開済入力ファイル120及び展開済
辞書ファイル220であり、これらのファイルもSAM
ファイルである。次に、これらの展開済ファイル12
0、220の中に同一の文字列が存在した場合、これら
を一つにし、入力検索用ファイル60、辞書検索用ファ
イル70を作成する(ステップ130、230)。これ
らのファイル60、70はDAMファイルである。この
入力検索用ファイル60を対象に、辞書検索用ファイル
70を参照して文字列を検索する(ステップ140)。
これについては、後で詳述する。入力検索結果ファイル
150及び辞書検索結果ファイル250は検索結果を出
力したものであり、入力検索結果ファイル150には入
力ファイル40より抽出した文字列の全情報及び辞書入
力ファイル50のどの文字列と類似したか、また類似し
ながったかといった情報が格納される。また、辞書検索
結果ファイル250は類似した文字列が格納される。こ
れらの検索結果ファイル150、250をもとに統合編
集して、検索結果リスト170を作成する(ステップ1
60)。この統合編集処理では文字列以外の情報は最初
の入力である入力ファイル40及び辞書入力ファイル5
0から情報を取得する。これは、文字列の検索時は文字
列データだけで膨大な量のデータとなるため、検索時に
余計なデータをファイル上に持たないためである。作成
された検索結果リスト170は、ディスプレィ10やプ
リンタ30に出力する。
【0010】なお、辞書検索用ファイル70が既に用意
されており、検索する文字列がキーボード20から入力
される場合には、ステップ140において、直接、この
入力された文字列について、辞書検索用ファイル70を
参照して検索を実行すればよい。
されており、検索する文字列がキーボード20から入力
される場合には、ステップ140において、直接、この
入力された文字列について、辞書検索用ファイル70を
参照して検索を実行すればよい。
【0011】図3に辞書検索用ファイル70の構成例を
示す。辞書検索用ファイル70はディレクトリブロック
710、複数の文字列ブロック720、及びEOFブロ
ック730から構成される。ディレクトリブロック71
0は、文字列(データ)の内容を文字数と先頭の文字の
内容の組合せによって分類して複数のブロック(文字列
ブロック)に分け、そのブロックの存在するアドレスを
格納したものである。このディレクトリブロック710
がインデックスの役割を果たす。図3では、該ディレク
トリブロック710は、文字列の先頭の文字を「ア
行」、「カ行」…に分け、文字数ごとに、各文字列ブロ
ックの先頭アドレスを格納したものである。各文字列ブ
ロック720には実際の文字列が格納され、EOFブロ
ック730はファイルの最後を表すものである。尚、図
3の実施例では、分かりやすいように文字列が日本語で
示されているが、実際には文字列はコードで扱われる。
示す。辞書検索用ファイル70はディレクトリブロック
710、複数の文字列ブロック720、及びEOFブロ
ック730から構成される。ディレクトリブロック71
0は、文字列(データ)の内容を文字数と先頭の文字の
内容の組合せによって分類して複数のブロック(文字列
ブロック)に分け、そのブロックの存在するアドレスを
格納したものである。このディレクトリブロック710
がインデックスの役割を果たす。図3では、該ディレク
トリブロック710は、文字列の先頭の文字を「ア
行」、「カ行」…に分け、文字数ごとに、各文字列ブロ
ックの先頭アドレスを格納したものである。各文字列ブ
ロック720には実際の文字列が格納され、EOFブロ
ック730はファイルの最後を表すものである。尚、図
3の実施例では、分かりやすいように文字列が日本語で
示されているが、実際には文字列はコードで扱われる。
【0012】次に、図3の辞書検索用ファイル70を使
用して、実際にどのように文字列検索が行われるかを、
入力文字列が「コマツ」の場合を例に説明する。この場
合の処理フローを図4に示す。
用して、実際にどのように文字列検索が行われるかを、
入力文字列が「コマツ」の場合を例に説明する。この場
合の処理フローを図4に示す。
【0013】入力文字列が「コマツ」の場合、まず、デ
ィレクトリブロック810より、カ行で文字数が3音の
文字列ブロックの先頭アドレス“0103”を取得する
(ステップ810)。次に、該アドレス“0103”の
文字列ブロックからデータ(文字列)を読み込み(ステ
ップ820)、該ブロックの文字列を順に検索する(ス
テップ830)。そして、入力文字列「コマツ」に一致
・類似する文字列があるか判定し(ステップ840)、
あれば、検索結果を出力して(ステップ850)、次の
文字列の検索に行き(ステップ860)、なければ、ス
テップ850をスキップする。なお、各文字列ブロック
の最後には次のブロックに続きがあるかを示すフラグを
つけておき、そのフラグをみて次のブロックも検索する
か判断する。
ィレクトリブロック810より、カ行で文字数が3音の
文字列ブロックの先頭アドレス“0103”を取得する
(ステップ810)。次に、該アドレス“0103”の
文字列ブロックからデータ(文字列)を読み込み(ステ
ップ820)、該ブロックの文字列を順に検索する(ス
テップ830)。そして、入力文字列「コマツ」に一致
・類似する文字列があるか判定し(ステップ840)、
あれば、検索結果を出力して(ステップ850)、次の
文字列の検索に行き(ステップ860)、なければ、ス
テップ850をスキップする。なお、各文字列ブロック
の最後には次のブロックに続きがあるかを示すフラグを
つけておき、そのフラグをみて次のブロックも検索する
か判断する。
【0014】
【発明の効果】以上説明したように、本発明の文字列検
索装置によれば、検索回数は辞書ファイルの文字列ブロ
ック中のデータの1度で済み、また、データはブロック
単位で読み込むことができるのでアクセス回数も少な
く、検索時間を短縮出来る。さらにインデックス部をデ
ィレクトリブロックの1ブロックで管理し、データ部は
文字列ブロックで文字列のみを格納するため,メモリも
最小限の領域で済む。従って、本発明の文字列検索装置
は、特に、検索回数が多く、データ量の多い検索対象に
向いている。
索装置によれば、検索回数は辞書ファイルの文字列ブロ
ック中のデータの1度で済み、また、データはブロック
単位で読み込むことができるのでアクセス回数も少な
く、検索時間を短縮出来る。さらにインデックス部をデ
ィレクトリブロックの1ブロックで管理し、データ部は
文字列ブロックで文字列のみを格納するため,メモリも
最小限の領域で済む。従って、本発明の文字列検索装置
は、特に、検索回数が多く、データ量の多い検索対象に
向いている。
【図1】本発明の文字列検索装置の一実施例の全体構成
図である。
図である。
【図2】図1の全体的動作の流れを示すフロー図であ
る。
る。
【図3】本発明による辞書検索用ファイルの構成例を示
す図である。
す図である。
【図4】本発明による文字列検索の具体的処理例を示す
フロー図である。
フロー図である。
【図5】従来の文字列検索処理を説明する図である。
10 ディスプレィ 20 キーボード 30 プリンタ 40 入力ファイル 50 辞書入力ファイル 60 入力検索用ファイル 70 辞書検索用ファイル 710 ディレクトリブロック 720 文字列ブロック 100 CPU
Claims (1)
- 【請求項1】 入力文字列と一致あるいは類似した文字
列を辞書ファイルより検索する文字列検索装置におい
て、 前記辞書ファイルを、文字列の内容を文字数と先頭の文
字の内容の組み合せによって分類し、各ブロック単位に
その文字列を格納した複数の文字列ブロックと、前記文
字列ブロックの存在するアドレスを登録したディレクト
リブロックとで構成し、 前記入力文字列の文字数と先頭の文字により前記ディレ
クトリブロックから該当文字列ブロックのアドレスを取
得し、該アドレスにより該当文字列ブロックの文字列を
読み込み、前記入力文字列と一致あるいは類似する文字
列を検索する手段を有することを特徴とする文字列検索
装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7076948A JPH08272814A (ja) | 1995-03-31 | 1995-03-31 | 文字列検索装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7076948A JPH08272814A (ja) | 1995-03-31 | 1995-03-31 | 文字列検索装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08272814A true JPH08272814A (ja) | 1996-10-18 |
Family
ID=13619995
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7076948A Pending JPH08272814A (ja) | 1995-03-31 | 1995-03-31 | 文字列検索装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH08272814A (ja) |
-
1995
- 1995-03-31 JP JP7076948A patent/JPH08272814A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7231383B2 (en) | Search engine for large-width data | |
| KR970705795A (ko) | 데이타베이스 검색을 위한 병렬 처리 시스템(parallel processing system for traversing a data base) | |
| US6721753B1 (en) | File processing method, data processing apparatus, and storage medium | |
| JPH08227426A (ja) | データ検索装置 | |
| JP2000357115A (ja) | ファイル検索装置及びファイル検索方法 | |
| JP2693914B2 (ja) | 検索システム | |
| JP3360693B2 (ja) | 顧客情報検索方式 | |
| JP2990000B2 (ja) | 検索システム | |
| JP3129248B2 (ja) | 2次元配列コードを用いた文字列検索方法 | |
| JP3555181B2 (ja) | 構造化文書検索方法 | |
| JPH02116936A (ja) | 再編成方式 | |
| JPH06215044A (ja) | 情報検索処理装置 | |
| JPH09212523A (ja) | 全文検索方法 | |
| JP2000132439A (ja) | パーソナルコンピュータのハードディスクに記憶されたファイルを検索する検索システム | |
| JP3145727B2 (ja) | データの検索装置 | |
| JPH1097542A (ja) | 全文検索装置及び全文検索方法 | |
| JP2839515B2 (ja) | 文字読取システム | |
| JP2838972B2 (ja) | 自動索引作成装置 | |
| JP3780772B2 (ja) | データベースの索引創成装置 | |
| JPS61141036A (ja) | デ−タ検索方式 | |
| JPH10143404A (ja) | 情報記録媒体及びそのデータ記録方式 | |
| JPH06215038A (ja) | データベース検索装置 | |
| JPH0546666A (ja) | 情報検索装置 | |
| JPH1166076A (ja) | データ派生装置及び方法、並びに、データ派生プログラムを格納した記憶媒体 | |
| JPS62169229A (ja) | 情報処理装置 |