JPH0415751A - 文字列検索装置 - Google Patents
文字列検索装置Info
- Publication number
- JPH0415751A JPH0415751A JP2112849A JP11284990A JPH0415751A JP H0415751 A JPH0415751 A JP H0415751A JP 2112849 A JP2112849 A JP 2112849A JP 11284990 A JP11284990 A JP 11284990A JP H0415751 A JPH0415751 A JP H0415751A
- Authority
- JP
- Japan
- Prior art keywords
- character string
- area
- character
- storage means
- string
- 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
- 238000001514 detection method Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 3
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は、外部から入力された文字列と予め登録された
文字列との一致を検出する文字列検索装置に関し、特に
LSI化された文字列検索装置に関する。
文字列との一致を検出する文字列検索装置に関し、特に
LSI化された文字列検索装置に関する。
[従来の技術]
文書作成装置及び文書ファイリングシステム等では、文
字列を高速検索するためのLSIが使用されている。第
5図は、従来のこの種の文字列検索装置の構成を示すブ
ロック図である。
字列を高速検索するためのLSIが使用されている。第
5図は、従来のこの種の文字列検索装置の構成を示すブ
ロック図である。
入力文字列はシフトレジスタ21に入力される。
また、検査対象文字列レジスタ23には、予め検査対象
文字列が登録されている。シフトレジスタ21からの入
力文字列と、検査対象文字列レジスタ23からの検査対
象文字列とは、比較一致回路22で比較されるようにな
っている。そして、これらの比較一致回路22の出力が
論理和回路24で論理和され、論理和回路24から一致
検出信号が出力されるようになっている。
文字列が登録されている。シフトレジスタ21からの入
力文字列と、検査対象文字列レジスタ23からの検査対
象文字列とは、比較一致回路22で比較されるようにな
っている。そして、これらの比較一致回路22の出力が
論理和回路24で論理和され、論理和回路24から一致
検出信号が出力されるようになっている。
[発明が解決しようとする課題]
しかしながら、上述した従来の文字列検索装置では、検
査対象文字列を格納するための検査対象文字列レジスタ
が必要であるため、多くの検査対象文字列を登録しよう
とすると、ハードウェア規模が増大し、コスト的に実現
不可能になるという問題点がある。
査対象文字列を格納するための検査対象文字列レジスタ
が必要であるため、多くの検査対象文字列を登録しよう
とすると、ハードウェア規模が増大し、コスト的に実現
不可能になるという問題点がある。
また、これを回避するため検査対象文字列レジスタをメ
モリ構成とすると、検索対象文字列の読み出しがシーケ
ンシャルにしか行なえないため、検索に時間がかかると
いう問題点がある。また、特殊なメモリを使用すること
により高速検索が可能であるが、この場合には、やはり
コストが高くなってしまうという問題点がある。
モリ構成とすると、検索対象文字列の読み出しがシーケ
ンシャルにしか行なえないため、検索に時間がかかると
いう問題点がある。また、特殊なメモリを使用すること
により高速検索が可能であるが、この場合には、やはり
コストが高くなってしまうという問題点がある。
本発明は、かかる問題点に鑑みてなされたものであって
、従来の装置よりもより多くの検索対象文字列を登録す
ることができ、高速検索が可能で、しかも低コストの文
字列検索装置を提供することを目的とする。
、従来の装置よりもより多くの検索対象文字列を登録す
ることができ、高速検索が可能で、しかも低コストの文
字列検索装置を提供することを目的とする。
[課題を解決するための手段]
本発明に係る文字列検索装置は、検索対象文字列を登録
する第1の領域、前記検索対象文字列のコードの加算値
から求められる剰余値で示される位置に前記検索対象文
字列の第1の領域における格納位置を示すポインタを登
録する第2の領域、前記検索対象文字列の文字数を登録
する第3の領域及び前記検索対象文字列の先頭の文字の
コードから求められる剰余値で示される位置にその文字
列の文字数の前記第3の領域における格納位置を示すポ
インタを登録する第4の領域からなる記憶手段と、入力
文字列を格納する文字列格納手段と、この手段に格納さ
れた前記入力文字列の先頭文字の剰余値を算出する手段
と、この手段で得られた剰余値で前記記憶手段の第4の
領域へアクセスする手段と、この手段によって前記第4
の領域から得られた前記第3の領域へのポインタで前記
記憶手段の第3の領域にアクセスする手段と、この手段
によって前記第3の領域から得られた文字列数の文字列
を前記文字列格納手段から切り出す手段と、この手段で
切り出された文字列を加算すると共にその剰余値を算出
する手段と、この手段で算出された剰余値で前記記憶手
段の第2の領域へアクセスする手段と、この手段によっ
て前記第2の領域から得られた前記第1の領域へのポイ
ンタで前記記憶手段の第1の領域へアクセスする手段と
、この手段によって前記第1の領域から得られた検索対
象文字列と前記入力文字列から切り出された文字列とを
比較して一致した場合には一致検出信号を出力する手段
とを有することを特徴とする。
する第1の領域、前記検索対象文字列のコードの加算値
から求められる剰余値で示される位置に前記検索対象文
字列の第1の領域における格納位置を示すポインタを登
録する第2の領域、前記検索対象文字列の文字数を登録
する第3の領域及び前記検索対象文字列の先頭の文字の
コードから求められる剰余値で示される位置にその文字
列の文字数の前記第3の領域における格納位置を示すポ
インタを登録する第4の領域からなる記憶手段と、入力
文字列を格納する文字列格納手段と、この手段に格納さ
れた前記入力文字列の先頭文字の剰余値を算出する手段
と、この手段で得られた剰余値で前記記憶手段の第4の
領域へアクセスする手段と、この手段によって前記第4
の領域から得られた前記第3の領域へのポインタで前記
記憶手段の第3の領域にアクセスする手段と、この手段
によって前記第3の領域から得られた文字列数の文字列
を前記文字列格納手段から切り出す手段と、この手段で
切り出された文字列を加算すると共にその剰余値を算出
する手段と、この手段で算出された剰余値で前記記憶手
段の第2の領域へアクセスする手段と、この手段によっ
て前記第2の領域から得られた前記第1の領域へのポイ
ンタで前記記憶手段の第1の領域へアクセスする手段と
、この手段によって前記第1の領域から得られた検索対
象文字列と前記入力文字列から切り出された文字列とを
比較して一致した場合には一致検出信号を出力する手段
とを有することを特徴とする。
[作用コ
本発明では、入力文字列が入力されると、その先頭文字
の剰余値によって前記記憶手段の第4の領域へのアクセ
スが行なわれ、この第4の領域から得られた前記第3の
領域へのポインタで前記記憶手段の第3の領域へのアク
セスが行なわれる。
の剰余値によって前記記憶手段の第4の領域へのアクセ
スが行なわれ、この第4の領域から得られた前記第3の
領域へのポインタで前記記憶手段の第3の領域へのアク
セスが行なわれる。
そして、前記第3の領域から得られた文字列数の文字列
に基づいて、入力文字列から所定文字数の文字列が切り
出され、この切り出された文字列の加算・剰余結果によ
って前記記憶手段の第2の領域へのアクセスが行なわれ
る。そして、前記第2の領域から得られた前記第1の領
域へのポインタで前記記憶手段の第1の領域へのアクセ
スが行なわれることにより登録された検索対象文字列を
読み出すことができる。これにより、読み出された検索
対象文字列と前記入力文字列から切りだされた文字列と
が比較され、一致した場合には一致検出信号が出力され
る。
に基づいて、入力文字列から所定文字数の文字列が切り
出され、この切り出された文字列の加算・剰余結果によ
って前記記憶手段の第2の領域へのアクセスが行なわれ
る。そして、前記第2の領域から得られた前記第1の領
域へのポインタで前記記憶手段の第1の領域へのアクセ
スが行なわれることにより登録された検索対象文字列を
読み出すことができる。これにより、読み出された検索
対象文字列と前記入力文字列から切りだされた文字列と
が比較され、一致した場合には一致検出信号が出力され
る。
このように、本発明においては、先ず、入力文字列の先
頭文字による検索が行なわれ、続いてその先頭文字を使
用した検索対象文字列の文字数で入力文字が切りだされ
て検索対象文字列と比較される。そして、前記先頭文字
及び文字列の検索は、その文字又は文字列の加算値の剰
余値によって特定されるポインタから、限定された対象
についてだけ行なわれるから、記憶手段として通常のメ
モリを使用した場合でも、検索時間を大幅に削減するこ
とができる。
頭文字による検索が行なわれ、続いてその先頭文字を使
用した検索対象文字列の文字数で入力文字が切りだされ
て検索対象文字列と比較される。そして、前記先頭文字
及び文字列の検索は、その文字又は文字列の加算値の剰
余値によって特定されるポインタから、限定された対象
についてだけ行なわれるから、記憶手段として通常のメ
モリを使用した場合でも、検索時間を大幅に削減するこ
とができる。
従って、本発明によれば、記憶手段として汎用の安価な
メモリを使用することができ、コストダウンが図れると
共に、メモリを使用することにより、従来よりも多くの
検索対象文字列を登録することができ、しかも高速検索
処理が可能である。
メモリを使用することができ、コストダウンが図れると
共に、メモリを使用することにより、従来よりも多くの
検索対象文字列を登録することができ、しかも高速検索
処理が可能である。
[実施例コ
以下、添付の図面を参照しながら、本発明の実施例につ
いて説明する。
いて説明する。
第1図は本発明の第1の実施例に係る文字列検索用LS
Iのブロック図である。
Iのブロック図である。
入力文字列はシフトレジスタ1に格納されるようになっ
ている。シフトレジスタ1に格納された文字列は、文字
数レジスタ3に格納された文字数に基づいてゲート2に
よって所定文字数だけ切りだされる。切りだされた文字
列は、加算回路4で加算され、剰余算回路5で剰余算さ
れ、切替回路6に入力されている。また、切替回路6に
は、記憶回路9のアドレスをインクリメントするインク
リメント回路7の出力と、記憶回路9から読み出された
データ格納する出力レジスタ10の出力とが入力されて
いる。切替回路6は、これらの入力を切替えて、アドレ
スレジスタ8に出力する。アドレスレジスタ8は、格納
されたデータをアドレスとして記憶手段9からデータを
読み出す。記憶手段9は、例えば汎用のRAM、ROM
等から構成されており、後述する4つの記憶領域に分割
されている。記憶回路9から読み出されたデータは、出
力レジスタ10に格納されるようになっている。
ている。シフトレジスタ1に格納された文字列は、文字
数レジスタ3に格納された文字数に基づいてゲート2に
よって所定文字数だけ切りだされる。切りだされた文字
列は、加算回路4で加算され、剰余算回路5で剰余算さ
れ、切替回路6に入力されている。また、切替回路6に
は、記憶回路9のアドレスをインクリメントするインク
リメント回路7の出力と、記憶回路9から読み出された
データ格納する出力レジスタ10の出力とが入力されて
いる。切替回路6は、これらの入力を切替えて、アドレ
スレジスタ8に出力する。アドレスレジスタ8は、格納
されたデータをアドレスとして記憶手段9からデータを
読み出す。記憶手段9は、例えば汎用のRAM、ROM
等から構成されており、後述する4つの記憶領域に分割
されている。記憶回路9から読み出されたデータは、出
力レジスタ10に格納されるようになっている。
出力レジスタ10の出力は、終了コード検出回路11、
切替回路6、文字数レジスタ3及び検索対象文字列用の
シフトレジスタ13に供給されている。シフトレジスタ
1,13の出力は、比較一致回路14に入力され、ここ
で比較されるようになっている。そして、この比較一致
回路14の出力が一致検出信号として出力されている。
切替回路6、文字数レジスタ3及び検索対象文字列用の
シフトレジスタ13に供給されている。シフトレジスタ
1,13の出力は、比較一致回路14に入力され、ここ
で比較されるようになっている。そして、この比較一致
回路14の出力が一致検出信号として出力されている。
なお、制御回路12は、これら各部の動作を制御するも
のである。
のである。
第2図は、記憶回路9の内容を示す模式図である。
記憶回路9は、4つの領域A + + A2 + A3
+A4に分割されている。第1の領域A1には検索対
象文字列とその長さとを登録する。第2の領域A2には
、前記検索対象文字列のコードの加算値から求められる
剰余値で示される位置に前記検索対象文字列の領域A1
における格納位置を示すポインタを登録する。第3の領
域A3には、前記検索対象文字列の文字数を登録する。
+A4に分割されている。第1の領域A1には検索対
象文字列とその長さとを登録する。第2の領域A2には
、前記検索対象文字列のコードの加算値から求められる
剰余値で示される位置に前記検索対象文字列の領域A1
における格納位置を示すポインタを登録する。第3の領
域A3には、前記検索対象文字列の文字数を登録する。
第4の領域A4には、前記検索対象文字列の先頭の文字
のコードから求められる剰余値で示される位置にその文
字列の文字数の領域A3における格納位置を示すポイン
タを登録する。
のコードから求められる剰余値で示される位置にその文
字列の文字数の領域A3における格納位置を示すポイン
タを登録する。
次に、このように構成された文字列検索装置の動作につ
いて説明する。
いて説明する。
先ず、この装置に検索動作をさせるためには、検索対象
文字列を記憶回路9に登録する必要がある。この検索対
象文字列の登録は、記憶回路9にアクセス可能な外部の
プロセッサ又はメインのプロセッサによって行なう。登
録に先立ち、記憶回路9の領域A2.A4には全て終了
コードを記憶しておく。終了コードは便宜上Oとしてお
く。
文字列を記憶回路9に登録する必要がある。この検索対
象文字列の登録は、記憶回路9にアクセス可能な外部の
プロセッサ又はメインのプロセッサによって行なう。登
録に先立ち、記憶回路9の領域A2.A4には全て終了
コードを記憶しておく。終了コードは便宜上Oとしてお
く。
また、これらの領域A2.A4に領域AI+A3へのポ
インタを設け、これを1にする。1にするのは、終了コ
ードOと区別するためである。
インタを設け、これを1にする。1にするのは、終了コ
ードOと区別するためである。
従って、領域AユlA3の0番地は使用しない。
ここで、例えば“特許゛という文字列を登録する場合に
ついて説明する。即ち、゛特°′のJISコードは16
進で“4643 ”であり、パ許“は“3576”であ
る。これを加算すると7BB9”になる。次に、この加
算結果の剰余値を求める。ここで、除数に任意の自然数
を選択すると、除算回路が必要になるが、2T′を除算
に選ぶようにすれば、剰余演算は下位nビットをとるだ
けでよいので、回路構成が簡単になる。また、除数を登
録できる文字列数に対して近い値に選ぶと、剰余値が重
なるケースが増えるので、検索スピードに影響を与える
。従って、登録文字列の最大値に対し、2倍以上の値を
とるのが好ましい。従って、ここでは、登録文字列の最
大を1にワードとして、除数を2に=2”に設定する。
ついて説明する。即ち、゛特°′のJISコードは16
進で“4643 ”であり、パ許“は“3576”であ
る。これを加算すると7BB9”になる。次に、この加
算結果の剰余値を求める。ここで、除数に任意の自然数
を選択すると、除算回路が必要になるが、2T′を除算
に選ぶようにすれば、剰余演算は下位nビットをとるだ
けでよいので、回路構成が簡単になる。また、除数を登
録できる文字列数に対して近い値に選ぶと、剰余値が重
なるケースが増えるので、検索スピードに影響を与える
。従って、登録文字列の最大値に対し、2倍以上の値を
とるのが好ましい。従って、ここでは、登録文字列の最
大を1にワードとして、除数を2に=2”に設定する。
この場合、剰余演算は加算結果の下位11ビツトをとれ
ばよいので、前述の例では、剰余値が“3B9”となる
。従って、第2図中Pで示す領域A2の“3B9”番地
に領域A、へのポインタ“M”を登録する。
ばよいので、前述の例では、剰余値が“3B9”となる
。従って、第2図中Pで示す領域A2の“3B9”番地
に領域A、へのポインタ“M”を登録する。
次に、領域A1のポインタ“M”で示された位置に“特
許パの文字数“2”“特許°′の文字、文字列終了コー
ド“0″、次の文字列へのポインタ(この段階では終了
コード)を、夫々領域A1のポインタを順次インクリメ
ントしながら記憶していく。
許パの文字数“2”“特許°′の文字、文字列終了コー
ド“0″、次の文字列へのポインタ(この段階では終了
コード)を、夫々領域A1のポインタを順次インクリメ
ントしながら記憶していく。
続いて、“特”という先頭文字と文字列の長さとを領域
A3.A4に登録する。このとき、16ビツトコードそ
のものを登録すると、2′6の容量の記憶回路が必要に
なるので、領域A、、A2と同様に2に=2”で割った
剰余をとるものとする。
A3.A4に登録する。このとき、16ビツトコードそ
のものを登録すると、2′6の容量の記憶回路が必要に
なるので、領域A、、A2と同様に2に=2”で割った
剰余をとるものとする。
従って、′特”は領域A4の“643”′番地(第2図
中Tで示す位置)に対応する。従って、この番地に領域
A3へのポインタ“R”を記憶する。
中Tで示す位置)に対応する。従って、この番地に領域
A3へのポインタ“R”を記憶する。
次に、領域A3のR番地に“特許”という文字列の文字
数“2”及び次の文字列数へのポインタ(この段階では
終了コード)を、領域A3のポインタを順次インクリメ
ントしながら記憶していく。
数“2”及び次の文字列数へのポインタ(この段階では
終了コード)を、領域A3のポインタを順次インクリメ
ントしながら記憶していく。
この動作を順次繰り返すことにより、文字列の登録を行
なうことができるが、2回目以降は、文字列及び先頭文
字の剰余値が既に登録されている場合があるので、登録
されているか否かの判断が必要である。
なうことができるが、2回目以降は、文字列及び先頭文
字の剰余値が既に登録されている場合があるので、登録
されているか否かの判断が必要である。
いま、′技術部”′という文字列を登録するとし、この
文字列の剰余値が“特許”の剰余値と一致したとする。
文字列の剰余値が“特許”の剰余値と一致したとする。
この場合、その剰余値で領域A2のデータを読みにいく
と、既に“M”が登録されており、終了コードでないた
め、その“M”の値を使用して領域A1を読み、その文
字列の次の文字列へのポインタが終了コードになるまで
これを繰り返す。第2図の例では、′特許”で終了して
いるので、次へのポインタの終了コードを現在保持して
いる領域A1のポインタNに置き換え、N番地に“技術
部”の登録を行なう。
と、既に“M”が登録されており、終了コードでないた
め、その“M”の値を使用して領域A1を読み、その文
字列の次の文字列へのポインタが終了コードになるまで
これを繰り返す。第2図の例では、′特許”で終了して
いるので、次へのポインタの終了コードを現在保持して
いる領域A1のポインタNに置き換え、N番地に“技術
部”の登録を行なう。
領域A3 、A4の登録も同様に行なう。これにより、
領域A3のポインタ“R”で示す文字列数のデータ“2
”の次のポインタの値が“Q IIに置き換えられる。
領域A3のポインタ“R”で示す文字列数のデータ“2
”の次のポインタの値が“Q IIに置き換えられる。
しかし、文字列数の登録の場合には、登録文字列を順に
サーチして、登録しようとしている文字列数が既に存在
している場合には、そこでその文字列数の登録は中止さ
れ、次の文字列の処理に移る。
サーチして、登録しようとしている文字列数が既に存在
している場合には、そこでその文字列数の登録は中止さ
れ、次の文字列の処理に移る。
次に、検索文字列を登録した後の文字列検索について説
明する。
明する。
第3図に文字列検索処理のフローチャート図を示す。
初めに、検索対象の文章をシフトレジスタ1に入力する
(Sl)。制御回路12により、ゲート2を操作して、
先頭の文字を切り出し、この文字を加算回路4、剰余算
回路5及び切替回路6を介してアドレスレジスタ8に格
納する。
(Sl)。制御回路12により、ゲート2を操作して、
先頭の文字を切り出し、この文字を加算回路4、剰余算
回路5及び切替回路6を介してアドレスレジスタ8に格
納する。
次に、記憶回路9の領域A4にアクセスして、アドレス
レジスタ8に格納されたアドレスのデータを読み出し、
これを出力レジスタ10に格納する(S2)。出力レジ
スタ10に格納されたデータが終了コード検出回路11
で終了コードと判断された場合には(S3)、制御回路
12はゲート2を操作して次の文字の読取りを行なう。
レジスタ8に格納されたアドレスのデータを読み出し、
これを出力レジスタ10に格納する(S2)。出力レジ
スタ10に格納されたデータが終了コード検出回路11
で終了コードと判断された場合には(S3)、制御回路
12はゲート2を操作して次の文字の読取りを行なう。
出力レジスタ10に格納されたデータが終了コードでな
い場合には(S3)、そのデータを切替回路6を介して
アドレスレジスタ8に送り、領域A3がらその先頭文字
を使用している文字列の長さを得る(S4.S5)。そ
して、これを文字数レジスタ3へ送り、ゲート2をその
文字数分たけ開いてその文字列をシフトレジスタ1から
抜き出す。
い場合には(S3)、そのデータを切替回路6を介して
アドレスレジスタ8に送り、領域A3がらその先頭文字
を使用している文字列の長さを得る(S4.S5)。そ
して、これを文字数レジスタ3へ送り、ゲート2をその
文字数分たけ開いてその文字列をシフトレジスタ1から
抜き出す。
この文字列は、加算回路4で加算された後、剰余算回路
5で剰余算結果に変換されて(s6)、アドレスレジス
タ8に格納される。これにより、文字列の加算値の剰余
値で記憶回路9の領域A2へのアクセスが行なわれ(S
7)、の読み出し結果が出力レジスタ10に格納される
。
5で剰余算結果に変換されて(s6)、アドレスレジス
タ8に格納される。これにより、文字列の加算値の剰余
値で記憶回路9の領域A2へのアクセスが行なわれ(S
7)、の読み出し結果が出力レジスタ10に格納される
。
ここで、出力データが終了コード検出回路11によって
終了コードと判定された場合には、領域A3をアクセス
して別の文字数の文字列が存在するかどうかを検索しく
8.6)、存在した場合、文字数レジスタ3へ出力して
、再度領域A2へのアクセスを行なう(85〜Sa)こ
れを文字数が存在する限り繰り返す。
終了コードと判定された場合には、領域A3をアクセス
して別の文字数の文字列が存在するかどうかを検索しく
8.6)、存在した場合、文字数レジスタ3へ出力して
、再度領域A2へのアクセスを行なう(85〜Sa)こ
れを文字数が存在する限り繰り返す。
一方、領域A2をアクセスした結果が終了コードでなか
った場合には、これをアドレスレジスタ8に戻し、領域
A1にアクセスしくS9.S、。)、領域A3から得ら
れた文字数と領域A1に登録されている文字数とを比較
して(S、、)、一致すれば領域AIの次のアドレスに
登録されている文字列をンフ)・レジスタ13へ格納す
る(S、□)。そして、これを比較一致回路14で入力
文字列と比較しくS、3)、一致した場合には、一致信
号を出力する( S 、4)。また、一致しない場合に
は、順次領域A工をアクセスして次の文字列が存在すれ
ば(S 15) 、同様の比較処理を行なう。
った場合には、これをアドレスレジスタ8に戻し、領域
A1にアクセスしくS9.S、。)、領域A3から得ら
れた文字数と領域A1に登録されている文字数とを比較
して(S、、)、一致すれば領域AIの次のアドレスに
登録されている文字列をンフ)・レジスタ13へ格納す
る(S、□)。そして、これを比較一致回路14で入力
文字列と比較しくS、3)、一致した場合には、一致信
号を出力する( S 、4)。また、一致しない場合に
は、順次領域A工をアクセスして次の文字列が存在すれ
ば(S 15) 、同様の比較処理を行なう。
このように、本実施例の文字列検索回路によれば、汎用
のRAMを使用することができ、従来の文字列検索用L
SIに比べ、より多くの検索文字列を登録することがで
き、しかも安価に構成することができる。また、この回
路によれば、登録文字列を順次読み出すのではなく、一
定条件を満足した登録文字列とのみ比較する方式である
ため、メモリを使用した方式であっても高速検索が可能
である等の効果を奏する。
のRAMを使用することができ、従来の文字列検索用L
SIに比べ、より多くの検索文字列を登録することがで
き、しかも安価に構成することができる。また、この回
路によれば、登録文字列を順次読み出すのではなく、一
定条件を満足した登録文字列とのみ比較する方式である
ため、メモリを使用した方式であっても高速検索が可能
である等の効果を奏する。
第2図は本発明の第2の実施例に係る文字列検索装置の
構成を示すブロック図である。
構成を示すブロック図である。
この実施例が第1図に示した第1の実施例と異なる点は
、ゲート2と加算回路4との間に乗算回路15が介挿さ
れている点にある。その他の構成は第1図と同一である
ため、詳しい説明は省略する。
、ゲート2と加算回路4との間に乗算回路15が介挿さ
れている点にある。その他の構成は第1図と同一である
ため、詳しい説明は省略する。
即ち、例えば“主動作′°と゛主作動”とを登録した場
合、文字列の加算値の剰余値及び文字数が同一であるた
め、最後の文字列比較まで両者を判別することはできな
い。この場合、最後の文字列比較まで処理が進み、その
時点でようやく不一致が判別される。
合、文字列の加算値の剰余値及び文字数が同一であるた
め、最後の文字列比較まで両者を判別することはできな
い。この場合、最後の文字列比較まで処理が進み、その
時点でようやく不一致が判別される。
そこで、乗算回路15により、各文字の位置に合わせて
適当な定数を乗算することで、両文字列の先頭文字だけ
でなく、その中間文字等によって検索を行なうようにし
ている。このとき、乗算回路15は、任意の自然数を乗
算するものであると、ハードウェアの規模が大きくなる
。従って 2 m(mは自然数)を乗算する。このよう
にすれば、単に文字コードをMSB側にシフトするたけ
でよく、ハードウェア量が大幅に増えることはない。
適当な定数を乗算することで、両文字列の先頭文字だけ
でなく、その中間文字等によって検索を行なうようにし
ている。このとき、乗算回路15は、任意の自然数を乗
算するものであると、ハードウェアの規模が大きくなる
。従って 2 m(mは自然数)を乗算する。このよう
にすれば、単に文字コードをMSB側にシフトするたけ
でよく、ハードウェア量が大幅に増えることはない。
[発明の効果]
以上述べたように、本発明によれば、記憶手段に登録さ
れた検索対象文字列の検索を、その文字又は文字列の加
算値の剰余値によって特定されるポインタから、限定さ
れた対象についてたけ行なうようにしているので、記憶
手段として通常のメモリを使用した場合でも、高速検索
が可能になる。
れた検索対象文字列の検索を、その文字又は文字列の加
算値の剰余値によって特定されるポインタから、限定さ
れた対象についてたけ行なうようにしているので、記憶
手段として通常のメモリを使用した場合でも、高速検索
が可能になる。
従って、本発明によれば、記憶手段として汎用の安価な
メモリを使用することができるので、低コストでしかも
従来の装置よりもより多くの検索対象文字列を登録する
ことができ、高速検索が可能である等の効果を奏するこ
とができる。
メモリを使用することができるので、低コストでしかも
従来の装置よりもより多くの検索対象文字列を登録する
ことができ、高速検索が可能である等の効果を奏するこ
とができる。
第1図は本発明の第1の実施例に係る文字列検索装置の
ブロック図、第2図は同装置における記憶回路の記憶領
域を示す模式図、第3図は同装置による文字列検索動作
のフローチャート図、第4図は本発明の第2の実施例に
係る文字列検索装置のブロック図、第5図は従来の文字
列検索装置のブロック図である。 1.13;シフトレジスタ、2;ゲート、3;文字数レ
ジスタ、4;加算回路、5;剰余算回路、6;切替回路
、7;インクリメント回路、8;アドレスレジスタ、9
;記憶回路、10;出力レジスタ、11;終了フード検
出回路、12;制御回路、14;比較一致回路、15;
乗算回路第3図 第4図
ブロック図、第2図は同装置における記憶回路の記憶領
域を示す模式図、第3図は同装置による文字列検索動作
のフローチャート図、第4図は本発明の第2の実施例に
係る文字列検索装置のブロック図、第5図は従来の文字
列検索装置のブロック図である。 1.13;シフトレジスタ、2;ゲート、3;文字数レ
ジスタ、4;加算回路、5;剰余算回路、6;切替回路
、7;インクリメント回路、8;アドレスレジスタ、9
;記憶回路、10;出力レジスタ、11;終了フード検
出回路、12;制御回路、14;比較一致回路、15;
乗算回路第3図 第4図
Claims (1)
- (1)検索対象文字列を登録する第1の領域、前記検索
対象文字列のコードの加算値から求められる剰余値で示
される位置に前記検索対象文字列の第1の領域における
格納位置を示すポインタを登録する第2の領域、前記検
索対象文字列の文字数を登録する第3の領域及び前記検
索対象文字列の先頭の文字のコードから求められる剰余
値で示される位置にその文字列の文字数の前記第3の領
域における格納位置を示すポインタを登録する第4の領
域からなる記憶手段と、入力文字列を格納する文字列格
納手段と、この手段に格納された前記入力文字列の先頭
文字の剰余値を算出する手段と、この手段で得られた剰
余値で前記記憶手段の第4の領域へアクセスする手段と
、この手段によって前記第4の領域から得られた前記第
3の領域へのポインタで前記記憶手段の第3の領域にア
クセスする手段と、この手段によって前記第3の領域か
ら得られた文字列数の文字列を前記文字列格納手段から
切り出す手段と、この手段で切り出された文字列を加算
すると共にその剰余値を算出する手段と、この手段で算
出された剰余値で前記記憶手段の第2の領域へアクセス
する手段と、この手段によって前記第2の領域から得ら
れた前記第1の領域へのポインタで前記記憶手段の第1
の領域へアクセスする手段と、この手段によって前記第
1の領域から得られた検索対象文字列と前記入力文字列
から切り出された文字列とを比較して一致した場合には
一致検出信号を出力する手段とを有することを特徴とす
る文字列検索装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2112849A JPH0415751A (ja) | 1990-04-28 | 1990-04-28 | 文字列検索装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2112849A JPH0415751A (ja) | 1990-04-28 | 1990-04-28 | 文字列検索装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0415751A true JPH0415751A (ja) | 1992-01-21 |
Family
ID=14597070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2112849A Pending JPH0415751A (ja) | 1990-04-28 | 1990-04-28 | 文字列検索装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0415751A (ja) |
-
1990
- 1990-04-28 JP JP2112849A patent/JPH0415751A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5357431A (en) | Character string retrieval system using index and unit for making the index | |
US4498148A (en) | Comparing input words to a word dictionary for correct spelling | |
EP0086380B1 (en) | Data processing apparatus for virtual memory system | |
GB2259596A (en) | Compressed language dictionary | |
JPH024026B2 (ja) | ||
JP3360693B2 (ja) | 顧客情報検索方式 | |
JPH0415751A (ja) | 文字列検索装置 | |
JPH05250416A (ja) | データベースの登録・検索装置 | |
JPH0746362B2 (ja) | 文字列照合方法 | |
JP2682448B2 (ja) | 索引検索方式 | |
CA1157563A (en) | Word vectorization angle hashing method and apparatus | |
JPH0752450B2 (ja) | 辞書デ−タ検索装置 | |
US4914620A (en) | Capacity extensible data storage for use in electronic apparatus | |
JP2772125B2 (ja) | 辞書検索方式 | |
JPH0140370B2 (ja) | ||
JPH04232570A (ja) | キーワード検索方法 | |
JPH06162096A (ja) | レコード検索方法 | |
JP3111498B2 (ja) | レコード検索方法及びデータ処理装置 | |
JPS63187334A (ja) | 文字列パタ−ンマツチング装置 | |
JPS6214919B2 (ja) | ||
JPH01260530A (ja) | データファイル装置 | |
JP3272536B2 (ja) | 仮名漢字変換方法 | |
JPH07129609A (ja) | データ処理方法及び装置 | |
JPS61127049A (ja) | メモリ制御方法 | |
JPH0991304A (ja) | 情報検索方法、情報検索システム及び情報検索用記憶媒体 |