JPH05266082A - フィルタリング回路を備えた文字列検索装置 - Google Patents
フィルタリング回路を備えた文字列検索装置Info
- Publication number
- JPH05266082A JPH05266082A JP4063067A JP6306792A JPH05266082A JP H05266082 A JPH05266082 A JP H05266082A JP 4063067 A JP4063067 A JP 4063067A JP 6306792 A JP6306792 A JP 6306792A JP H05266082 A JPH05266082 A JP H05266082A
- Authority
- JP
- Japan
- Prior art keywords
- character
- character string
- output
- code
- character code
- 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
Links
Abstract
を使用しなくとも照合スループットを上げられるように
し、ひいては低価格で高速な文字列検索装置を提供する
ことにある。 【構成】コード表現された文字で構成されるテキスト中
に、指定された複数の検索タームが存在するか否かを一
括して探索する文字列検索装置(1)において、テキス
トを格納する文字列記憶手段(105)と、文字列記憶
手段から読み出されたテキストから1文字ずつ取り込
み、文字コードが検索タームに含まれている文字コード
のみを出力するフィルタリング手段(3000)と、テ
キスト中に複数の検索タームが存在するか否かを一括し
て照合する文字列照合手段(102)を用いて文字列検
索装置を構成する。
Description
文字列検索装置における検索タームの照合方法に係り、
テキスト文字列から検索タームとして指定された複数の
部分文字列が存在するか否かを一括して探索するための
ものである。
ム、およびワードプロセッサなどにおける検索に利用し
得るものである。
ータの集まりからなる文書(以後、テキストと呼ぶ)の
中から、検索者の探したいある特定の言葉、すなわち文
字列(以後、検索タームと呼ぶ)を含む全ての文書を探
し出すことが一つの重要な処理となっている。
文字列検索装置がいくつか提案されている。その中の代
表的な文字列検索装置の構成を図2に示し、その内容に
ついて説明する(エル エー ホラー :“テキスト
リトリーバル コンピューターズ”,コンピューター,
3月 1979年,L.A. Hollaar:“Te
xt Retrieval Computers”,C
OMPUTER,March 1979参照)。
101は、検索装置全体の制御と、ホストコンピュータ
との通信を行う。すなわち、ホストコンピュータから送
られてくる検索要求201を受け付け、これを解析し、
文字列照合手段102と複合条件判定手段103へ検索
制御情報202として送出する。また、検索制御手段1
01は記憶装置制御手段104を制御して、文字列記憶
手段105に格納された文字列データ204を文字列照
合手段102へ読み出す。
タ204の中に検索要求201に合致する文字列、すな
わち検索タームがあるかどうかを調べ、もし該当するも
のがあれば、文字列を識別する情報205を複合条件判
定手段103へ出力する。複合条件判定手段103は該
文字列識別情報205に関して、検索要求201中に指
示されたANDやORで構成される論理条件などが満足
されるか否かを調べる。指定された複合条件を満足する
場合には、該当する文書の識別情報や文書内容のテキス
トデータを検索結果206としてホストコンピュータへ
返送する。
列照合手段102における文字列の照合方式として、有
限オートマトンを用いて複数の文字列を1回のテキスト
走査で探索する方法が知られている。有限オートマトン
を高速に実行するためのハードウェアとしては、特開昭
60−105040号公報や特開平03−95672号
公報に記載されたものが提案されている。これらを用い
て高速な文字列照合手段を実現しようとすると次のよう
な問題点が生じる。
提案されている文字列照合手段を図3に示す。本文字列
照合手段は2バイトで構成される漢字などの文字コード
を使用したテキストについて照合を行うものである。以
下、本文字列照合手段102の照合動作を簡単に説明す
る。
20、切換え回路21、アドレスレジスタ7、アドレス
デコーダ9、ランダムアクセスメモリ8、メモリレジス
タ10、および制御回路22から構成される。
位バイトに初期状態番号0(ゼロ)が設定される。さら
に、ランダムアクセスメモリ8には状態遷移表が設定さ
れる。このためここでは、ランダムアクセスメモリ8を
状態遷移テーブルと呼ぶ。
タレジスタ20に2バイト、すなわち1文字分の文字コ
ードが取り込まれるところから始まる。取り込まれた2
バイトの文字コードは、切換え回路21により上位バイ
ト、下位バイトの順に1バイトコードが切り出され、ア
ドレスレジスタ7の下位バイトに格納される。
れ、アドレスレジスタの下位バイトに格納されたものと
すると、上位バイトも含めアドレスレジスタ7に格納さ
れている値はアドレスデコーダ9を経由し、状態遷移テ
ーブル8へ参照アドレスとして送られる。状態遷移テー
ブル8からは上記参照アドレスに対応して遷移先の状態
番号が読み出され、メモリレジスタ10に保持される。
この状態番号は制御回路22に出力され、ここで照合結
果が格納されている状態かどうかが判定される。照合結
果が格納されていると判定された場合には照合結果番号
が照合結果205として出力される。その後、この状態
番号はアドレスレジスタ7の上位バイトに格納される。
次に切換え回路21にデータレジスタ20の下位バイト
が選択されアドレスレジスタ7の下位バイトに格納され
る。以後上述したのと同様の動作が繰り返されて、文字
列照合が行われることになる。
は、2バイトで構成される文字コードを1バイトずつ2
回に分けてオートマトンを遷移させ照合処理を行ってい
る。すなわち、1文字に対し2回、状態遷移テーブル8
の参照を行っている。このため、状態遷移テーブル8の
メモリ容量が大幅に削減できているものの、1文字の照
合に状態遷移テーブル8を構成するメモリのアクセスサ
イクルの約2倍の時間が掛かってしまう。したがって、
2バイトの文字コードで構成されたテキストを検索する
場合には、1バイトの文字コードで構成されたテキスト
を検索する場合に比較し、本文字列照合回路102の照
合スループットが半分になってしまうという問題があ
る。
されたものの問題点について述べる。本例ではオートマ
トンのどの状態において入力文字と照合すべきかをトー
クンというマークを置くことにより表している。すなわ
ち、入力テキストから1文字入力されると、トークンが
置かれている状態についてそれぞれ照合が行われる。ま
た、トークンは入力文字コードが入力されると必ず初期
状態で生成される。照合動作はトークンが置かれた状態
の状態番号と入力文字コードをアドレスとして状態遷移
テーブルを参照することによって行われる。したがっ
て、本オートマトンの中に複数のトークンが存在する場
合には、1文字の入力に対して、状態遷移テーブルの参
照が複数回行われることになる。その結果、照合スルー
プットが数分の一に落ちてしまうという問題が生じる。
クンが存在する場合の照合動作について、図4のオート
マトンを用いて説明する。本オートマトンは“インタフ
ェース”と、この異表記である“インターフェース”、
“インターフェ−ス”、“インターフェイス”、“イン
タ−フェース”、“インタ−フェ−ス”、“インタ−フ
ェイス”、“インタフェ−ス”、および“インタフェイ
ス”を一括して照合するためのものである。
入力された場合には、図5に示すようにトークンが移動
する。まず、“イ”が入力されると新たにトークン1が
初期状態である状態0に生成される。状態0には“イ”
による遷移が記述されている(図4参照)ため照合が成
立したことになり、トークン1は状態1へ移動する。
ークン2が状態0で生成されるが、ここには“ン”によ
る遷移が記述されていないため照合が不成立となりトー
クン2は消滅する。また状態1へ移動していたトークン
1については、状態1において“ン”と照合が成立する
ため状態2へ移動する。ここではこのように1文字につ
いて2回の照合動作が行われることになる。
力されると、トークン1は状態3→状態5→状態6へと
移動する。この間トークン3〜5も同様に発生するが、
照合が成立しないため消滅する。このようにして、引き
続き入力される“イ”や“ス”についても同様の処理が
行われる。以上の照合動作過程において、7文字のテキ
スト入力により14回の照合が発生する。
例の文字列照合手段102を図6に示す。本文字列照合
手段102はレジスタ211と250、251、状態遷
移テーブル220、照合結果テーブル260、セレクタ
261、ゲート262、マルチプレクサ263、バッフ
ァ280、281、およびコンパレータ252から構成
される。
の概略を説明する。入力テキスト204は1文字ずつ、
レジスタ211に格納される。レジスタ211から出力
される文字コード302は、状態遷移テーブル220に
アドレス情報として入力される。状態遷移テーブル22
0は現在の状態番号305と文字コード302をアドレ
スとして参照され、ここから次に遷移すべき遷移先状態
番号303(以後、次状態番号と呼ぶ)が出力される。
別子として使用しいる。このトークンの識別子となる次
状態番号303は、ゲート262およびマルチプレクサ
263を介してトークンの存在位置を表す情報としてバ
ッファ260あるいはバッファ281へ格納される。状
態遷移テーブル220から出力される次状態番号303
が0(ゼロ)、すなわち初期状態番号であるときは、ト
ークンの移動先がないことを表す。このため、次状態番
号303が初期状態番号0の場合は、トークンを消滅さ
せる必要がある。この制御は、コンパレータ252とゲ
ート262によって行われる。
された後、ゲート262およびマルチプレクサ263を
経由し、バッファ280またはバッファ281のいずれ
か選択されている方に格納される。このとき、ゲート2
62ではトークンを消滅させるか否かが制御される。こ
のトークンを消滅させるか否かの判断はコンパレータ2
52で行う。
号0(ゼロ)である場合には、コンパレータ252にお
けるレジスタ251に格納された状態番号0(初期状態
番号)との比較が等しくなるため、ゲート262が閉じ
られ、ゲート262では次状態番号303はマルチプレ
クサ263へ送られることなく消滅することになる。逆
に、次状態番号303が初期状態番号0(ゼロ)でない
場合には、次状態番号303はゲート262からマルチ
プレクサ263に送出され、トークンとして保存される
ことになる。
初期状態番号が先頭アドレスに格納されており、マルチ
プレクサ263を介し送られてきた次状態番号303は
初期状態の次のアドレスから格納される。こうすること
により、初期状態にはトークンを常に存在させることが
できる。
はバッファ281のいずれかに格納され、次の文字コー
ド照合時に現状態番号305として読み出されることに
なる。
はバッファ281の内、トークンすなわち次状態番号3
03が格納されている方のバッファが選択され、ここか
ら現状態番号305が逐次読み出される。すべて読み出
し終わったところで読み出し終了信号307が生成され
る。マルチプレクサ263とセレクタ261は同期して
おり、マルチプレクサ263がバッファ280を選択し
ているときには、セレクタ261はバッファ281を選
択する。また、マルチプレクサ263がバッファ281
を選択しているときはセレクタ261はバッファ280
を選択する。すなわち、遷移元となる状態におけるトー
クン(現状態番号として一方のバッファに格納されてい
る)が格納されているバッファとは別のバッファに、遷
移先の状態へ移すべきトークンを次状態番号303とし
て格納するかたちになる。
は、セレクタ261によって選択されたバッファ280
又は281のいずれかの読み出しが終了した時点、すな
わち読出し終了信号307が発生したタイミングで行わ
れる。レジスタ211には、通常、レジスタ250と同
期してテキストから文字コードを取り込まれるが、読出
し終了信号307が発生するまで文字コードを保持し、
遷移先のトークン、すなわち現状態番号がバッファから
すべて読み出されるまで次の入力を待つことになる。照
合結果テーブル260には検索タームの終端となる状態
(以後、終端状態とよぶ)に対応して各検索タームを識
別するための所定の検索ターム番号が格納され、それ以
外の状態には0(ゼロ)が格納されている。すなわち、
状態番号に対応して照合結果テーブル260から出力さ
れる検索ターム番号が0以外のときのみ照合結果205
として意味を持つことになる。以上の一連の動作が入力
テキストを構成する各文字毎に繰返し行われることによ
り文字列照合処理が実現される。
トークンの照合時に1回の状態遷移テーブル参照が行わ
れる。したがって、図5の照合動作例では、7文字のテ
キスト入力において14回のトークンの照合が行われ、
14回の状態遷移テーブルの参照が発生する。つまり、
1文字に対し平均2回の状態遷移テーブルの参照が行わ
れることになる。このため、1文字に対し1回の照合で
済ませる場合に比較して、照合スループットが約半分に
低下してしまうという問題が生じる。
は、テキスト1文字当りの照合処理のために状態遷移テ
ーブルを複数回参照することが必要になるため、照合処
理サイクルが状態遷移テーブルとして用いるメモリのサ
イクルタイムの数倍になってしまう。したがって、数十
MB/s以上の高速な文字列照合手段を実現するために
は、数十ナノ秒という照合サイクルが必要となるため、
DRAMなどの安価なメモリが使用できず、SRAMな
どの高速なメモリを使用しなければならなくなる。その
結果、文字列検索装置のコストが高くなるという問題が
生じる。
メモリを使用しなくとも照合スループットを上げられる
ようにし、ひいては低価格で高速な文字列検索装置を提
供することにある。
め、コード表現された文字で構成されるテキスト中に、
指定された複数の検索タームが存在するか否かを一括し
て探索する文字列検索装置において、テキストを格納す
る文字列記憶手段と、上記文字列記憶手段から読み出さ
れたテキストから1文字ずつ取り込み、該文字コードが
前記検索タームに含まれている文字コードか否かを判定
し、検索タームに含まれている文字コードのみを出力す
るフィルタリング手段と、上記フィルタリング手段の出
力する文字コード列の中に複数の検索タームが存在する
か否かを一括して照合する文字列照合手段により文字列
検索装置を構成する。
リング手段により、文字列記憶手段から読み出されたテ
キストから検索タームに指定されている文字のみを抜き
出して文字列照合手段に送るようにする。こうすること
により、文字列照合手段に入力される文字数が大幅に削
減されることになる。したがって、文字列照合手段の照
合速度が遅くとも照合処理の対象となる文字数が少なく
なるため、フィルタリング手段の処理スループットに追
随して照合を行うことが可能となる。すなわち、照合速
度の遅い文字列照合手段を用いても文字列検索装置の検
索速度を落さなくても済むようになる。
えば、検索タームに“CMOS”が指定された場合、フ
ィルタリング手段には“C”、“M”、“O”と“S”
が登録される。このとき文字列記憶手段からテキストと
して“HIGH−SPEED CMOS DATA B
OOK”が読み込まれた場合を考えてみる。
字入力される度に、検索タームに含まれている文字か否
かを判定し、含まれている文字のみを文字列照合手段に
送る。
文字目の“H”が入力されると、これは検索タームに指
定されている文字コードではないので文字列照合手段に
送出しない。同様に“I”、“G”、“H”、および
“−”も検索タームに含まれないため文字列照合手段に
送らない。次の“S”は検索タームに含まれているので
文字列照合手段に送る。同様にして、次の“ ”(スペ
ース)は切り捨てられ、それ以後の“C”、“M”、
“O”、および“S”については検索タームに含まれる
ため文字列照合手段に送る。その後の“D”、“A”、
“T”、“A”、“”(スペース)、および“B”まで
は送出せず、次の“O”および“O”を出力し、最後の
“K”は出力しないことになる。
て、フィルタリング手段から検索タームに含まれる文字
で構成された“SCMOSOO”という文字列のみが文
字列照合手段に送出されることになる。
−SPEED CMOS DATABOOK”はフィル
タリング手段により7文字のテキスト“SCMOSO
O”にフィルタリングされる。
場合の7/25、すなわち約1/4しか文字列照合手段
で処理しなくてもよくなる。そのため、照合スループッ
トが見かけ上約4倍に上がったことになる。すなわち、
アクセスタイムが4倍遅い低価格のメモリを使用しても
文字列検索装置の検索速度を落すことなく、コストの安
い文字列検索装置が提供できることになる。
図1を用いて説明する。本実施例は公知例の文字列検索
装置1の文字列記憶手段105と文字列照合手段102
の間にフィルタリング手段3000を設け、検索ターム
に含まれない文字コードを切り捨てて、検索タームに含
まれる文字コードのみを文字列照合手段102に送り、
文字列照合手段102での無駄な照合処理を省くことに
よって、等価的に照合スループットを向上させようとす
るものである。すなわち、低速なメモリを使用した文字
列照合手段102を用いても文字列検索装置としての検
索速度が低下しない低コストな文字列検索装置を提供す
ることを目的としている。
00の一構成例を図7に示す。フィルタリング手段30
00はテキストから1文字入力される毎にこれを検索タ
ームと比較し、検索ターム中に同じ文字があるかどうか
を判定し、同じものがあれば照合した1文字を文字列照
合手段102へ出力し、同じものがなければ出力しない
というフィルタリング処理を行う。これを、1文字単位
のフィルタリング処理であることから、単一フィルタリ
ング回路と呼ぶ。
レジスタ3200、単一フィルタリングテーブル330
0、および出力ゲート3410からなる単一文字出力回
路3400から構成されている。
8に示す構成をとり、文字コードをアドレスとしてアク
セスする一次元メモリである。ここには、検索タームに
含まれる文字コードに対応して“1”が一致フラグとし
て格納されている。
路の概略動作について説明する。まず初期設定として、
検索タームに含まれている文字コードに対応する単一フ
ィルタリングテーブル3300のスロットには1を設定
し、それ以外のスロットには0を設定する。
えられた場合には、図8に示すような内容を単一フィル
タリングテーブル3300に設定する。すなわち、“C
MOS”を構成する“C”、“M”、“O”、および
“S”の各文字コードに対応するスロットに1を設定し
ておく。
4から1文字ずつ文字コードを文字コードレジスタ32
00に取り込むことから始まる。
文字コード3100を参照アドレスとして単一フィルタ
リングテーブル3300がアクセスされ、単一一致信号
3350が読み出される。検索タームを構成する文字コ
ードの場合には、単一一致信号3350として1が出力
される。このとき出力ゲート3410が開き、文字コー
ド3100は出力ライン207へ出力され、次段の文字
列照合手段102へ送られる。検索タームに含まれない
文字コードの場合には、単一一致信号3350として0
が出力される。このとき、出力ゲートは閉ざされ、文字
コード3100は出力ライン207へ出力されず、次段
の文字列照合手段102へ送られないことになる。
えられ、入力テキストとして“HIGH−SPEED
CMOS DATA BOOK”が入力されたときの単
一フィルタリング回路の具体的な動作を図9のタイミン
グチャートを用いて説明する。
字コードレジスタ3200に取り込まれ、文字コード3
100として出力される。このため、“H”で単一フィ
ルタリングテーブル3300がアクセスされ、単一一致
信号3350の値として0が出力される。単一一致信号
3350の値が0のため、出力ゲート3410からは文
字コード“H”は出力されない。
“−”も同様に文字コードレジスタ3200に取り込ま
れるが、単一フィルタリングテーブル3300から出力
される単一一致信号3350が0のため出力ゲート34
10からは出力されない。
200に取り込まれると単一フィルタリングテーブル3
300から出力される単一一致信号3350の値が1と
なり、出力ゲート3410から文字コード3100の
“S”が出力ライン207へ出力される。
よび“ ”(スペース)の間は単一フィルタリングテー
ブル3300から出力される単一一致信号3350が0
となるため出力ライン207へは何も出力されない。
“S”の間は単一一致信号3350が1となり、出力ゲ
ートから“C”、“M”、“O”、および“S”が出力
ライン207へ出力される。
“D”、“A”、“T”、“A”、“ ”(スペー
ス)、および“B”の間は再び単一フィルタリングテー
ブル3300からの単一一致信号3350が0とるた
め、出力ゲート3410から何も出力されない。
号3350が再び1となるため、出力ゲート3410か
ら“O”と“O”が出力される。
が0となるため、出力ゲート3410から何も出力され
なくなる。
“HIGH−SPEED CMOSDATA BOO
K”から検索タームに含まれる“SCMOSOO”の7
文字が抽出され、出力テキスト207として出力され
る。すなわち、入力テキスト204の18/25、つま
り約3/4が不要文字として切り捨てられるため、文字
列照合手段102には約1/4が送られるだけになる。
このことから本実施例では、文字列照合手段102の処
理速度をフィルタリング手段3000の約1/4にする
ことが可能となり、文字列照合手段102の状態遷移テ
ーブルに使うメモリのアクセスサイクルも約4倍遅い低
価格なメモリが使用できることになる。
によれば、小規模なフィルタリング回路を設けるだけ
で、低価格な文字列照合手段102が実現でき、低コス
トで高速な文字列検索装置を提供することが可能とな
る。
について説明する。本実施例は、第1の実施例における
誤照合を防止できるようにしたものである。
て“SCMOS”が与えられ、入力テキストとして“H
IGH−SPEED CMOS DATA BOOK”
が入力された場合、フィルタリングの結果“SCMOS
OO”が出力されることになる。この場合、文字列照合
手段102では入力テキスト中には存在しない“SCM
OS”を照合してしまうという問題が生じる。これを防
止するためには検索ターム中に存在する文字が連続して
テキスト中に現れる場合にのみそのまま出力し、不連続
になった場合にはそこに区切り記号(以後、デリミタと
呼ぶ)“/”を挿入する必要がある。それには、出力ゲ
ート3410からの出力が途絶えたとき、デリミッタ
“/”を1文字分挿入すればよい。このようにすること
により出力テキストは“S/CMOS/OO/”のよう
になり、文字列照合手段102で“SCMOS”が誤照
合されるようなことがなくなる。
00内の単一フィルタリング回路の構成を図10に示
す。第1の実施例と異なるのは単一出力回路3400の
みである。
タレジスタ3430、文字コードセレクタ3420、出
力ゲート3410、フリップフロップ3450、および
ORゲート3460から構成される。
信号3350が1のときXポートを選択し、単一一致信
号3350が0のときYポートを選択する。
を図11のタイミングチャートに基づいて、例を上げて
説明する。
キストとして“HIGH−SPEED CMOS DA
TA BOOK”を想定する。
0にデリミタコードとして検索タームに使用されない文
字コードを設定する。例えば“/”を設定する。また、
フリップフロップ3450には0(ゼロ)を設定する。
単一フィルタリングテーブル3300には第1の実施例
と同様に、図8に示した単一一致フラグを設定する。
字コードレジスタ3200に取り込まれるとともに、
“H”で単一フィルタリングテーブル3300がアクセ
スされ、単一一致信号3350の値として0が出力され
る。さらにフリップフロップ3450の値も0であるた
め、出力制御信号3461は0となる。したがって、文
字コードセレクタ3420では、Yポートのデリミタコ
ード“/”が選択されるが、出力ゲート3410から出
力ライン207へは“H”が出力されない。
“−”も次々と文字コードレジスタ3200に取り込ま
れるが、同様に単一フィルタリングテーブル3300か
らの単一一致信号3350が0でかつフリップフロップ
3450の値も0であるため出力ゲート3410からは
出力されない。
200に取り込まれると単一フィルタリングテーブル3
300から出力される単一一致信号3350の値が1と
なる。このため、文字コードセレクタ3420ではポー
トXが選択され、文字コード3100“S”が出力ライ
ン3480へ送出される。出力ゲート3410はゲート
信号3461が1になるため開き、“S”が出力ライン
207へ出力される。この後、単一一致信号3350の
値、すなわち1がフリップフロップ3450に格納され
る。
に取り込まれると、単一フィルタリングテーブルの参照
値が0となるため、文字コードセレクタ3420ではY
ゲートが選択され、デリミタ3431が出力ゲート34
10へ出力される。ここで、フリップフロップ3450
には前回の単一一致信号3350の値である1が格納さ
れている。したがって、出力制御信号3461は1とな
っているため、出力ゲート3410からデリミタ343
1が出力ライン207へ出力されることになる。この
後、フリップフロップ3450に単一フィルタリングテ
ーブル3300の参照出力、すなわち単一一致信号33
50の値として0が格納され、初期値にリセットされ
る。したがって、出力ゲートは閉じられることになる。
よび“ ”の間は単一フィルタリングテーブル3300
からの単一一致信号3350が0のため出力ライン20
7へは何も出力されない。
“S”の間は単一一致信号3350が1となる。このた
め、文字コードセレクタ3410ではXポートが選択さ
れ、文字コード3100が出力され、さらに出力ゲート
3410も開となるため“C”、“M”、“O”、およ
び“S”が出力ライン207へ出力される。
スタ3200に取り込まれると、単一フィルタリングテ
ーブルの参照値は0となるもののフリップフロップ34
50の値が1であるため、文字コードセレクタ3420
ではYゲートが選択され、前述の“P”の処理と同様に
デリミタ3431が出力ライン207へ出力される。こ
の後、フリップフロップ3450には同様にして0が格
納され、初期値に戻る。
“A”、“ ”(スペース)、および“B”の間は再び
単一フィルタリングテーブル3300からの単一一致信
号3350が0となるため、出力ゲート3410から何
も出力されない。
号3350が再び1となるため、出力ゲートから“O”
および“O”が出力される。
となるがフリップフロップ3450の値が1であるた
め、前述の“P”の処理と同様にデリミタ3431が出
力ライン207へ出力される。
ト“HIGH−SPEED CMOS DATA BO
OK”がフィルタリングされて“S/CMOS/OO
/”の10文字が出力される。したがって、“SCMO
S”という検索タームが与えられた場合にも、誤照合を
起こすことなく照合処理が行えることになる。
例に少量の回路を追加するだけで誤照合のないフィルタ
リングが可能となるとともに低価格なメモリを使用した
文字列照合手段102が実現できるため、低コストで高
速な文字列検索装置を提供することが可能となる。
について説明する。本実施例は、検索タームの先頭文字
が出現するまで、検索タームを構成する先頭文字以外の
文字とテキストが一致しても一致した文字を出力しない
ようにすることにより、第2の実施例よりもさらにフィ
ルタリング機能を高めたフィルタリング手段を提供する
ものである。
て“CMOS”が与えられ、入力テキストとして“HI
GH−SPEED CMOS DATA BOOK”が
入力された場合に、フィルタリングの結果として“S/
CMOS/OO/”のように先頭文字が一致していない
“S”や“OO”が出力される。これらの文字列は検索
タームの先頭文字“C”が先頭にないため、文字列照合
手段102へ送られても検索タームと一致する可能性は
ない。
テーブルに先頭文字であることを示す一致フラグ(以
後、先頭一致フラグと呼ぶ)と、それ以外の文字である
ことを示す一致フラグ(以後、後方一致フラグと呼ぶ)
を設ける。フィルタリング時には、まず先頭一致フラグ
のみで照合を行い、先頭一致フラグが立った場合のみそ
の文字を文字列照合手段102へ送出する。一旦先頭一
致フラグが立った後は、先頭一致フラグと後方一致フラ
グのいずれかが立てばその文字を文字列照合手段102
へ送出する。その後、先頭一致フラグと後方一致フラグ
のいずれもが立たなくなった場合に、先頭一致フラグの
みによるフィルタリング動作に戻る。
“S”や“OO”が入力されることがなくなる。このよ
うに先頭文字について特別な処理を行うことから、本単
一フィルタリング回路を単一先頭フィルタリング回路と
呼ぶ。
00の構成を図12に示す。本実施例は文字コードレジ
スタ3200、単一先頭フィルタリングテーブル330
1、ORゲート3462、ANDゲート3463、およ
び単一出力回路3401から構成される。
のスロットには、図13に示すように先頭一致フラグと
後方一致フラグが格納されており、文字コードをアドレ
スとしてアクセスされる。
3430、文字コードセレクタ3420、出力ゲート3
410、フリップフロップ3450、およびORゲート
3460から構成される。
作を図14のタイミングチャートに基づいて、例を上げ
て説明する。
キストとして“HIGH−SPEED CMOS DA
TA BOOK”を想定する。
0に検索タームに使用されない文字コードを設定する。
例えば“/”を設定する。また、フリップフロップ34
50には0(ゼロ)を設定する。単一先頭フィルタリン
グテーブル3301には、図13に示す内容を設定す
る。つまり、先頭文字“C”に対応するスロットの先頭
一致フラグには1を設定し、その他の文字“M”、
“O”、および“S”に対応するスロットの後方一致フ
ラグに1を設定する。それら以外の先頭一致フラグと後
方一致フラグには0を設定する。
字コードレジスタ3200に取り込まれるとともに、
“H”で単一先頭フィルタリングテーブル3301がア
クセスされ、先頭一致フラグ3352と後方一致フラグ
3351が読み出される。しかし、両方のフラグはとも
に0であるため単一一致フラグ3350は0となる。さ
らに、フリップフロップ3450の値も0であるため、
出力制御信号3461は0となり、文字コードセレクタ
3420でXポートの文字コード3100“H”が選択
されるものの、出力ゲート3410から“H”は出力ラ
イン207へ出力されない。
“−”も次々と文字コードレジスタ3200に取り込ま
れるが、同様に両方のフラグが0でかつフリップフロッ
プ3450の値も0であるため出力ゲート3410から
は出力されない。
200に取り込まれると単一先頭フィルタリングテーブ
ル3301から後方一致フラグ3351として1が読み
出される。しかし、ANDゲート3463にフリップフ
ロップ3450の値の0が入力されているため、単一一
致信号3350も0となり、同様に出力ゲート3410
からは何も出力されない。
よび“ ”(スペース)の間は単一先頭フィルタリング
テーブル3300から読み出された先頭一致フラグ33
52と後方一致フラグ3351がともに0であるため、
同様に出力ライン207へは何も出力されない。
フィルタリングテーブル3301から先頭一致フラグと
して1が読み出される。したがって、単一一致信号33
50も1となる。このため、文字コードセレクタ342
0からXポートの文字コード3100が選択され、出力
ゲート3410が開くため“C”が出力ライン207へ
出力される。この後、フリップフロップ3450に1が
格納される。
後方一致フラグ3351として1が読み出され、かつフ
リップフロップ3450の値も1のため、単一一致信号
3350は1となる。このため、文字コードセレクタ3
420からXポートの文字コード3100が選択され、
さらに出力ゲート3410も開くため“C”、“M”、
“O”、および“S”が出力ライン207へ出力され
る。
スタ3200に取り込まれると、単一先頭フィルタリン
グテーブルの先頭一致フラグ3352と後方一致フラグ
3351はともに0となるもののフリップフロップ34
50の値が1であるため、デリミタ3431が文字コー
ドセレクタ3420で選択され、“/”が出力ライン2
07へ出力される。この後、フリップフロップ3450
に0が格納され、初期値に戻る。
“A”、“ ”(スペース)、および“B”の間は再び
単一先頭フィルタリングテーブル3300から先頭一致
フラグ3352と後方一致フラグ3351としてともに
0が読み出されるため、出力ゲート3410から何も出
力されない。
ラグ3351として1が読み出されるが、フリップフロ
ップ3351の値が0であるため、単一一致信号335
0は0となり、出力ゲート3410からは何も出力され
ない。
0となり、出力ライン207からは何も出力されない。
ト“HIGH−SPEED CMOS DATA BO
OK”がフィルタリングされて“CMOS/”の5文字
が出力されることになる。したがって、“S”や“O
O”などの先頭部分が一致しない文字列がフィルタリン
グ手段で落とされ、文字列照合手段102に入力される
ことがなくなる。このため、実施例2では出力テキスト
は10文字であったのに対し、本実施例では5文字と半
分になる。
ルタリングテーブル3301を用いることにより、実施
例2よりも効率のよいフィルタリングが可能となるた
め、さらに低価格なメモリを使用した文字列照合手段1
02が実現でき、低コストで高速な文字列検索装置を提
供することが可能となる。
について図15を用いて説明する。
000と文字列照合手段102とが同期して動作するた
め、文字列照合手段102の処理が終了するまでフィル
タリング手段3000が動作できないという問題があ
る。
段3000と文字列照合手段102の間にファーストイ
ン・ファーストアウト型のバッファリング手段106を
設け、フィルタリング手段3000と文字列照合手段1
02とが非同期で動作できるようにしたものである。
略動作について説明する。フィルタリング手段3000
で切り出された文字は出力テキスト207としてバッフ
ァリング手段106に格納される。バッファリング手段
106が満杯になるまでフィルタリング手段3000は
格納を続け、満杯になった場合は格納を停止する。格納
された出力テキストは文字列照合手段102から読み出
される。ただし、バッファリング手段106が空になっ
た場合には読出しを停止する。
は、バッファリング手段106が満杯になるまで、文字
列照合手段102を意識することなくフィルタリング処
理を実行できる。
段102が照合動作中であっても、フィルタリング手段
3000はテキストを入力しフィルタリング処理を行う
ことができるようになる。その結果、フィルタリング処
理と文字列照合処理と同時に並行して行うことができる
ようになるため、さらに検索スループットを上げること
が可能となる。
O(First In FirstOut)メモリなど
で簡単に構成することが可能である。
3000のスループットを無駄に落とすことなく、効率
的に文字列照合ができる高速な文字列検索装置を提供す
ることが可能となる。
グ回路を設けるだけで、文字列照合手段に高速なメモリ
を使用しなくとも照合スループットが上げられ、ひいて
は低価格で高速な文字列検索装置を提供することが可能
となる。
図。
図。
すブロック図。
図。
グチャート。
示すブロック図。
ングチャート。
示すブロック図。
明図。
ングチャート。
ンダムアクセスメモリ、10…メモリレジスタ、20…
データレジスタ、21…切り換え回路、22…制御回
路、20…データレジスタ、101、201…検索制御
手段、102…文字列照合手段、103…複合条件判定
手段、104…記憶装置制御手段、105…文字列記憶
手段、106…バッファリング手段、220…状態遷移
テーブル、260…照合IDテーブル、303…次状態
番号、305…現状態番号、403…初期状態を示す矢
印、3000…フィルタリング手段、3200…文字コ
ードレジスタ、3300…単一フィルタリングテーブ
ル、3301…単一先頭フィルタリングテーブル、34
10…出力ゲート、3420…文字コードセレクタ。
Claims (8)
- 【請求項1】コード表現された文字で構成されるテキス
ト中に,指定された複数の検索タームが存在するか否か
を一括して判定する文字列検装置において、 テキストを格納する文字列記憶手段と、 上記文字列記憶手段から読み出されたテキストから1文
字コードずつ取り込み、該文字コードが前記検索ターム
に含まれている文字コードのみ出力するフィルタリング
手段と、 上記フィルタリング手段から出力された文字コード列中
に前記検索タームが存在するか否かを一括して照合する
文字列照合手段を有することを特徴とする文字列検索装
置。 - 【請求項2】請求項1の文字列検索装置において、上記
フィルタリング手段として、 上記文字列記憶手段から読み出されたテキストから1文
字ずつ取り込み、該文字コードが指定された検索ターム
に含まれている文字コードの場合にはこれを上記文字列
照合手段に出力するとともに、含まれていない場合には
出力せず、直前に出力した文字コードが該検索タームに
含まれていたときにのみ特定の区切りコードを上記文字
列照合手段に出力するフィルタリング手段を有すること
を特徴とする文字列検索装置。 - 【請求項3】請求項1の文字列検索装置において、上記
フィルタリング手段として、 予め指定された検索タームに含まれる文字の文字コード
に対応するスロットに1を、それ以外の文字コードに対
応するスロットに0を設定したフラグ格納手段と、 上記文字列記憶手段から入力された文字コードに対応し
て上記フラグ格納手段を参照し、読み出されたフラグが
1の場合には該文字コードを上記文字列照合手段に出力
し、0の場合には出力しないという選択を行う出力選択
手段を備えたことを特徴とする文字列検索装置。 - 【請求項4】請求項1の文字列検索装置において、上記
フィルタリング手段として、 予め指定された検索タームに含まれる文字の文字コード
に対応するスロットに1を、それ以外の文字コードに対
応するスロットには0を設定したフラグ格納手段と、 上記文字列記憶手段から入力された文字コードに対応し
て上記フラグ格納手段を参照し、読み出されたフラグが
1の場合には該文字コードを上記文字列照合手段に出力
するとともに、0の場合には該文字コードを出力せず、
直前の入力文字コードに対応する上記フラグ格納手段の
出力フラグが1のときにのみ特定の区切りコードを上記
文字列照合手段に出力する出力選択手段を備えたことを
特徴とする文字列検索装置。 - 【請求項5】請求項1の文字列検索装置において、上記
フィルタリング手段として、 上記文字列記憶手段から読み出されたテキストから1文
字ずつ取り込み、該文字コードが前記検索タームの先頭
文字コードのとき上記文字列照合手段に出力するととも
に、先頭文字コード以外のときには出力せず、一旦該先
頭文字コードを上記文字列照合手段に出力した後は入力
文字コードが前記検索タームに含まれる場合のみこれを
上記文字列照合手段に出力し、含まれない場合には出力
しない、フィルタリング手段を有することを特徴とする
文字列検索装置。 - 【請求項6】請求項1の文字列検索装置において、上記
フィルタリング手段として、 上記文字列記憶手段から読み出されたテキストから1文
字コードずつ取り込み、 該文字コードが前記検索タームの先頭文字コードのとき
上記文字列照合手段に出力するとともに、先頭文字コー
ド以外のときには出力せず、一旦該先頭文字コードを上
記文字列照合手段に出力した後は入力文字コードが前記
検索タームに含まれる場合のみこれを上記文字列照合手
段に出力するとともに、含まれない場合には出力せず、
直前に出力した文字コードが該検索タームに含まれてい
た場合にのみ特定の区切りコードを上記文字列照合手段
に出力するフィルタリング手段を有することを特徴とす
る文字列検索装置。 - 【請求項7】請求項1の文字列検索装置において、上記
フィルタリング手段として、 予め指定された検索タームの先頭文字コードに対応する
スロットに1を、それ以外の文字コードに対応するスロ
ットに0を設定した先頭文字フラグ格納手段と、 上記検索タームの先頭以外の文字コードに対応するスロ
ットに1を、それ以外の文字コードに対応するスロット
に0を設定した後方文字フラグ格納手段と、 上記文字列記憶手段から入力された文字コードに対応し
て上記先頭文字フラグ格納手段および後方文字フラグ格
納手段を参照し、読み出された先頭文字フラグが1の場
合は該文字コードを上記文字列照合手段に出力し、0の
場合は出力せず、一旦先頭文字フラグが1となった場合
には該先頭文字フラグが1もしくは該後方文字フラグが
1のときのみ入力文字コードを上記文字列照合手段に出
力し、該先頭文字フラグと該後方文字フラグがともに0
のときには出力しないという選択を行う出力選択手段に
より構成したことを特徴とする文字列検索装置。 - 【請求項8】コード表現された文字で構成されるテキス
ト中に、指定された複数の検索タームが存在するか否か
を一括して判定する文字列検装置において、 テキストを格納する文字列記憶手段と、 上記文字列記憶手段から読み出されたテキストから1文
字ずつ取り込み、該文字コードが前記検索タームに含ま
れている文字コードのみ出力するフィルタリング手段
と、 上記フィルタリング手段から出力された文字コード列を
一旦格納するファーストイン・ファーストアウト型のバ
ッファリング手段と上記バッファリング手段から読み出
した文字コード列中に前記検索タームが存在するか否か
を一括して照合する文字列照合手段を有することを特徴
とする文字列検索装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06306792A JP3360308B2 (ja) | 1992-03-19 | 1992-03-19 | 文字列検索方法および装置 |
US08/031,625 US5471610A (en) | 1989-06-14 | 1993-03-15 | Method for character string collation with filtering function and apparatus |
US08/444,842 US5748953A (en) | 1989-06-14 | 1995-05-18 | Document search method wherein stored documents and search queries comprise segmented text data of spaced, nonconsecutive text elements and words segmented by predetermined symbols |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06306792A JP3360308B2 (ja) | 1992-03-19 | 1992-03-19 | 文字列検索方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05266082A true JPH05266082A (ja) | 1993-10-15 |
JP3360308B2 JP3360308B2 (ja) | 2002-12-24 |
Family
ID=13218629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06306792A Expired - Fee Related JP3360308B2 (ja) | 1989-06-14 | 1992-03-19 | 文字列検索方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3360308B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1683092A2 (en) * | 2003-10-31 | 2006-07-26 | Sap Ag | Methods and software applications for computer-aided customer independent cash collection using a state field in a data record |
-
1992
- 1992-03-19 JP JP06306792A patent/JP3360308B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1683092A2 (en) * | 2003-10-31 | 2006-07-26 | Sap Ag | Methods and software applications for computer-aided customer independent cash collection using a state field in a data record |
Also Published As
Publication number | Publication date |
---|---|
JP3360308B2 (ja) | 2002-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5471610A (en) | Method for character string collation with filtering function and apparatus | |
US5140644A (en) | Character string retrieving system and method | |
JP2702927B2 (ja) | 文字列検索装置 | |
US5168533A (en) | Hierarchical presearch type text search method and apparatus and magnetic disk unit used in the apparatus | |
EP0054588B1 (en) | Interactive data retrieval apparatus | |
US4152762A (en) | Associative crosspoint processor system | |
US5138669A (en) | Range-conditional character string retrieving method and system | |
US5081608A (en) | Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields | |
US6470334B1 (en) | Document retrieval apparatus | |
JPH03174652A (ja) | データ検索方法および装置 | |
JPS6033665A (ja) | キ−ワ−ド自動抽出方式 | |
JP3360308B2 (ja) | 文字列検索方法および装置 | |
JP2516609B2 (ja) | 循環コンテクストアドレス指定可能メモリ | |
JP3459049B2 (ja) | 文字列検索方法およひ装置 | |
JP3141428B2 (ja) | 数値検索装置およびその方法 | |
JP2880192B2 (ja) | 文字列検索方法及び装置 | |
JPH06162083A (ja) | 文字列検索装置 | |
JP2825009B2 (ja) | 記号列検索方法および装置 | |
EP0468402B1 (en) | Character string retrieving system and method | |
JPH06103310A (ja) | 連接フィルタリング回路を備えた文字列検索装置 | |
JPH0746362B2 (ja) | 文字列照合方法 | |
JPH0752451B2 (ja) | 情報検索装置 | |
SU342185A1 (ru) | УСТРОЙСТВО дл ПОИСКА ИНФОРМАЦИИ | |
JPH06139278A (ja) | 文字コード変換機能を備えた文字列検索装置 | |
JP2773657B2 (ja) | 文字列検索装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071018 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081018 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091018 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091018 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101018 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111018 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |