JP3360308B2 - 文字列検索方法および装置 - Google Patents

文字列検索方法および装置

Info

Publication number
JP3360308B2
JP3360308B2 JP06306792A JP6306792A JP3360308B2 JP 3360308 B2 JP3360308 B2 JP 3360308B2 JP 06306792 A JP06306792 A JP 06306792A JP 6306792 A JP6306792 A JP 6306792A JP 3360308 B2 JP3360308 B2 JP 3360308B2
Authority
JP
Japan
Prior art keywords
code
character string
search
character
output
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 - Fee Related
Application number
JP06306792A
Other languages
English (en)
Other versions
JPH05266082A (ja
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 JP06306792A priority Critical patent/JP3360308B2/ja
Priority to US08/031,625 priority patent/US5471610A/en
Publication of JPH05266082A publication Critical patent/JPH05266082A/ja
Priority to US08/444,842 priority patent/US5748953A/en
Application granted granted Critical
Publication of JP3360308B2 publication Critical patent/JP3360308B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は検索タームの照合方法に
係り、コードから構成されるテキストから検索タームと
して指定されたコード列が存在するか否かを探索するた
めのものである。
【0002】データベース、文書ファイリングシステ
ム、およびワードプロセッサなどにおける検索に利用し
得るものである。
【0003】
【従来の技術】情報処理システムの分野では、文字列デ
ータの集まりからなる文書(以後、テキストと呼ぶ)の
中から、検索者の探したいある特定の言葉、すなわち文
字列(以後、検索タームと呼ぶ)を含む全ての文書を探
し出すことが一つの重要な処理となっている。
【0004】このような検索システムを実現するための
文字列検索装置がいくつか提案されている。その中の代
表的な文字列検索装置の構成を図2に示し、その内容に
ついて説明する(エル エー ホラー :“テキスト
リトリーバル コンピューターズ”,コンピューター,
3月 1979年,L.A. Hollaar:“Te
xt Retrieval Computers”,C
OMPUTER,March 1979参照)。
【0005】文字列検索装置1において、検索制御手段
101は、検索装置全体の制御と、ホストコンピュータ
との通信を行う。すなわち、ホストコンピュータから送
られてくる検索要求201を受け付け、これを解析し、
文字列照合手段102と複合条件判定手段103へ検索
制御情報202として送出する。また、検索制御手段1
01は記憶装置制御手段104を制御して、文字列記憶
手段105に格納された文字列データ204を文字列照
合手段102へ読み出す。
【0006】文字列照合手段102は、入力文字列デー
タ204の中に検索要求201に合致する文字列、すな
わち検索タームがあるかどうかを調べ、もし該当するも
のがあれば、文字列を識別する情報205を複合条件判
定手段103へ出力する。複合条件判定手段103は該
文字列識別情報205に関して、検索要求201中に指
示されたANDやORで構成される論理条件などが満足
されるか否かを調べる。指定された複合条件を満足する
場合には、該当する文書の識別情報や文書内容のテキス
トデータを検索結果206としてホストコンピュータへ
返送する。
【0007】上述した文字列検索装置1の要となる文字
列照合手段102における文字列の照合方式として、有
限オートマトンを用いて複数の文字列を1回のテキスト
走査で探索する方法が知られている。有限オートマトン
を高速に実行するためのハードウェアとしては、特開昭
60−105040号公報や特開平03−95672号
公報に記載されたものが提案されている。これらを用い
て高速な文字列照合手段を実現しようとすると次のよう
な問題点が生じる。
【0008】まず、特開昭60−105040号公報で
提案されている文字列照合手段を図3に示す。本文字列
照合手段は2バイトで構成される漢字などの文字コード
を使用したテキストについて照合を行うものである。以
下、本文字列照合手段102の照合動作を簡単に説明す
る。
【0009】本文字列照合手段102はデータレジスタ
20、切換え回路21、アドレスレジスタ7、アドレス
デコーダ9、ランダムアクセスメモリ8、メモリレジス
タ10、および制御回路22から構成される。
【0010】初期設定として、アドレスレジスタ7の上
位バイトに初期状態番号0(ゼロ)が設定される。さら
に、ランダムアクセスメモリ8には状態遷移表が設定さ
れる。このためここでは、ランダムアクセスメモリ8を
状態遷移テーブルと呼ぶ。
【0011】照合動作は、入力テキスト204からデー
タレジスタ20に2バイト、すなわち1文字分の文字コ
ードが取り込まれるところから始まる。取り込まれた2
バイトの文字コードは、切換え回路21により上位バイ
ト、下位バイトの順に1バイトコードが切り出され、ア
ドレスレジスタ7の下位バイトに格納される。
【0012】今、上位バイトが切換え回路21で選択さ
れ、アドレスレジスタの下位バイトに格納されたものと
すると、上位バイトも含めアドレスレジスタ7に格納さ
れている値はアドレスデコーダ9を経由し、状態遷移テ
ーブル8へ参照アドレスとして送られる。状態遷移テー
ブル8からは上記参照アドレスに対応して遷移先の状態
番号が読み出され、メモリレジスタ10に保持される。
この状態番号は制御回路22に出力され、ここで照合結
果が格納されている状態かどうかが判定される。照合結
果が格納されていると判定された場合には照合結果番号
が照合結果205として出力される。その後、この状態
番号はアドレスレジスタ7の上位バイトに格納される。
次に切換え回路21にデータレジスタ20の下位バイト
が選択されアドレスレジスタ7の下位バイトに格納され
る。以後上述したのと同様の動作が繰り返されて、文字
列照合が行われることになる。
【0013】以上のように本文字列照合手段102で
は、2バイトで構成される文字コードを1バイトずつ2
回に分けてオートマトンを遷移させ照合処理を行ってい
る。すなわち、1文字に対し2回、状態遷移テーブル8
の参照を行っている。このため、状態遷移テーブル8の
メモリ容量が大幅に削減できているものの、1文字の照
合に状態遷移テーブル8を構成するメモリのアクセスサ
イクルの約2倍の時間が掛かってしまう。したがって、
2バイトの文字コードで構成されたテキストを検索する
場合には、1バイトの文字コードで構成されたテキスト
を検索する場合に比較し、本文字列照合回路102の照
合スループットが半分になってしまうという問題があ
る。
【0014】次に特開平03−95672号公報に記載
されたものの問題点について述べる。本例ではオートマ
トンのどの状態において入力文字と照合すべきかをトー
クンというマークを置くことにより表している。すなわ
ち、入力テキストから1文字入力されると、トークンが
置かれている状態についてそれぞれ照合が行われる。ま
た、トークンは入力文字コードが入力されると必ず初期
状態で生成される。照合動作はトークンが置かれた状態
の状態番号と入力文字コードをアドレスとして状態遷移
テーブルを参照することによって行われる。したがっ
て、本オートマトンの中に複数のトークンが存在する場
合には、1文字の入力に対して、状態遷移テーブルの参
照が複数回行われることになる。その結果、照合スルー
プットが数分の一に落ちてしまうという問題が生じる。
【0015】このように1文字の照合処理に複数のトー
クンが存在する場合の照合動作について、図4のオート
マトンを用いて説明する。本オートマトンは“インタフ
ェース”と、この異表記である“インターフェース”、
“インターフェ−ス”、“インターフェイス”、“イン
タ−フェース”、“インタ−フェ−ス”、“インタ−フ
ェイス”、“インタフェ−ス”、および“インタフェイ
ス”を一括して照合するためのものである。
【0016】入力テキストとして“インタフェイス”が
入力された場合には、図5に示すようにトークンが移動
する。まず、“イ”が入力されると新たにトークン1が
初期状態である状態0に生成される。状態0には“イ”
による遷移が記述されている(図4参照)ため照合が成
立したことになり、トークン1は状態1へ移動する。
【0017】次の“ン”が入力されるとさらに新たにト
ークン2が状態0で生成されるが、ここには“ン”によ
る遷移が記述されていないため照合が不成立となりトー
クン2は消滅する。また状態1へ移動していたトークン
1については、状態1において“ン”と照合が成立する
ため状態2へ移動する。ここではこのように1文字につ
いて2回の照合動作が行われることになる。
【0018】同様に“タ”、“フ”、および“ェ”が入
力されると、トークン1は状態3→状態5→状態6へと
移動する。この間トークン3〜5も同様に発生するが、
照合が成立しないため消滅する。このようにして、引き
続き入力される“イ”や“ス”についても同様の処理が
行われる。以上の照合動作過程において、7文字のテキ
スト入力により14回の照合が発生する。
【0019】上述した文字列照合処理を実施する本公知
例の文字列照合手段102を図6に示す。本文字列照合
手段102はレジスタ211と250、251、状態遷
移テーブル220、照合結果テーブル260、セレクタ
261、ゲート262、マルチプレクサ263、バッフ
ァ280、281、およびコンパレータ252から構成
される。
【0020】以下、本文字列照合手段102の照合動作
の概略を説明する。入力テキスト204は1文字ずつ、
レジスタ211に格納される。レジスタ211から出力
される文字コード302は、状態遷移テーブル220に
アドレス情報として入力される。状態遷移テーブル22
0は現在の状態番号305と文字コード302をアドレ
スとして参照され、ここから次に遷移すべき遷移先状態
番号303(以後、次状態番号と呼ぶ)が出力される。
【0021】ここでは次状態番号303をトークンの識
別子として使用しいる。このトークンの識別子となる次
状態番号303は、ゲート262およびマルチプレクサ
263を介してトークンの存在位置を表す情報としてバ
ッファ260あるいはバッファ281へ格納される。状
態遷移テーブル220から出力される次状態番号303
が0(ゼロ)、すなわち初期状態番号であるときは、ト
ークンの移動先がないことを表す。このため、次状態番
号303が初期状態番号0の場合は、トークンを消滅さ
せる必要がある。この制御は、コンパレータ252とゲ
ート262によって行われる。
【0022】次状態番号303はレジスタ250に格納
された後、ゲート262およびマルチプレクサ263を
経由し、バッファ280またはバッファ281のいずれ
か選択されている方に格納される。このとき、ゲート2
62ではトークンを消滅させるか否かが制御される。こ
のトークンを消滅させるか否かの判断はコンパレータ2
52で行う。
【0023】すなわち、次状態番号303が初期状態番
号0(ゼロ)である場合には、コンパレータ252にお
けるレジスタ251に格納された状態番号0(初期状態
番号)との比較が等しくなるため、ゲート262が閉じ
られ、ゲート262では次状態番号303はマルチプレ
クサ263へ送られることなく消滅することになる。逆
に、次状態番号303が初期状態番号0(ゼロ)でない
場合には、次状態番号303はゲート262からマルチ
プレクサ263に送出され、トークンとして保存される
ことになる。
【0024】バッファ280と281には初期値として
初期状態番号が先頭アドレスに格納されており、マルチ
プレクサ263を介し送られてきた次状態番号303は
初期状態の次のアドレスから格納される。こうすること
により、初期状態にはトークンを常に存在させることが
できる。
【0025】次状態番号303はバッファ280あるい
はバッファ281のいずれかに格納され、次の文字コー
ド照合時に現状態番号305として読み出されることに
なる。
【0026】セレクタ261ではバッファ280あるい
はバッファ281の内、トークンすなわち次状態番号3
03が格納されている方のバッファが選択され、ここか
ら現状態番号305が逐次読み出される。すべて読み出
し終わったところで読み出し終了信号307が生成され
る。マルチプレクサ263とセレクタ261は同期して
おり、マルチプレクサ263がバッファ280を選択し
ているときには、セレクタ261はバッファ281を選
択する。また、マルチプレクサ263がバッファ281
を選択しているときはセレクタ261はバッファ280
を選択する。すなわち、遷移元となる状態におけるトー
クン(現状態番号として一方のバッファに格納されてい
る)が格納されているバッファとは別のバッファに、遷
移先の状態へ移すべきトークンを次状態番号303とし
て格納するかたちになる。
【0027】バッファ280および281の切り換え
は、セレクタ261によって選択されたバッファ280
又は281のいずれかの読み出しが終了した時点、すな
わち読出し終了信号307が発生したタイミングで行わ
れる。レジスタ211には、通常、レジスタ250と同
期してテキストから文字コードを取り込まれるが、読出
し終了信号307が発生するまで文字コードを保持し、
遷移先のトークン、すなわち現状態番号がバッファから
すべて読み出されるまで次の入力を待つことになる。照
合結果テーブル260には検索タームの終端となる状態
(以後、終端状態とよぶ)に対応して各検索タームを識
別するための所定の検索ターム番号が格納され、それ以
外の状態には0(ゼロ)が格納されている。すなわち、
状態番号に対応して照合結果テーブル260から出力さ
れる検索ターム番号が0以外のときのみ照合結果205
として意味を持つことになる。以上の一連の動作が入力
テキストを構成する各文字毎に繰返し行われることによ
り文字列照合処理が実現される。
【0028】以上説明したように、本公知例では1つの
トークンの照合時に1回の状態遷移テーブル参照が行わ
れる。したがって、図5の照合動作例では、7文字のテ
キスト入力において14回のトークンの照合が行われ、
14回の状態遷移テーブルの参照が発生する。つまり、
1文字に対し平均2回の状態遷移テーブルの参照が行わ
れることになる。このため、1文字に対し1回の照合で
済ませる場合に比較して、照合スループットが約半分に
低下してしまうという問題が生じる。
【0029】
【発明が解決しようとする課題】前記二つの公知例で
は、テキスト1文字当りの照合処理のために状態遷移テ
ーブルを複数回参照することが必要になるため、照合処
理サイクルが状態遷移テーブルとして用いるメモリのサ
イクルタイムの数倍になってしまう。したがって、数十
MB/s以上の高速な文字列照合手段を実現するために
は、数十ナノ秒という照合サイクルが必要となるため、
DRAMなどの安価なメモリが使用できず、SRAMな
どの高速なメモリを使用しなければならなくなる。その
結果、文字列検索装置のコストが高くなるという問題が
生じる。また、照合処理の対象にもなり得ない、すなわ
ち検索タームに含まれない文字の場合にも照合処理を実
施しなければならないという問題がある。
【0030】本発明の目的は、入力テキストにおける照
合処理を部分的に行うことにより、高速な文字列検索方
法および装置を提供することにある。
【0031】
【課題を解決するための手段】上記目的を達成するた
め、コード表現されたテキスト中に,指定された検索タ
ームが存在するか否かを判定する文字列検索方式で有
り、上記テキストに含まれるコードを入力し、該入力コ
ードが予め設定されたコードと一致するか判定し,該判
定にて一致する場合には上記コードを保持し、該保持さ
れたコードに対し、上記検索タームを照合する。
【0032】
【作用】本発明の原理について以下説明する。フィルタ
リング手段により、文字列記憶手段から読み出されたテ
キストから検索タームに指定されている文字のみを抜き
出して文字列照合手段に送るようにする。こうすること
により、文字列照合手段に入力される文字数が大幅に削
減されることになる。したがって、文字列照合手段の照
合速度が遅くとも照合処理の対象となる文字数が少なく
なるため、フィルタリング手段の処理スループットに追
随して照合を行うことが可能となる。すなわち、照合速
度の遅い文字列照合手段を用いても文字列検索装置の検
索速度を落さなくても済むようになる。
【0033】以下、具体例を用いて原理を説明する。例
えば、検索タームに“CMOS”が指定された場合、フ
ィルタリング手段には“C”、“M”、“O”と“S”
が登録される。このとき文字列記憶手段からテキストと
して“HIGH−SPEED CMOS DATA B
OOK”が読み込まれた場合を考えてみる。
【0034】フィルタリング手段ではテキストから1文
字入力される度に、検索タームに含まれている文字か否
かを判定し、含まれている文字のみを文字列照合手段に
送る。
【0035】具体的に説明する。まず、テキストの第1
文字目の“H”が入力されると、これは検索タームに指
定されている文字コードではないので文字列照合手段に
送出しない。同様に“I”、“G”、“H”、および
“−”も検索タームに含まれないため文字列照合手段に
送らない。次の“S”は検索タームに含まれているので
文字列照合手段に送る。同様にして、次の“ ”(スペ
ース)は切り捨てられ、それ以後の“C”、“M”、
“O”、および“S”については検索タームに含まれる
ため文字列照合手段に送る。その後の“D”、“A”、
“T”、“A”、“”(スペース)、および“B”まで
は送出せず、次の“O”および“O”を出力し、最後の
“K”は出力しないことになる。
【0036】このようなフィルタリング処理の結果とし
て、フィルタリング手段から検索タームに含まれる文字
で構成された“SCMOSOO”という文字列のみが文
字列照合手段に送出されることになる。
【0037】このように25文字のテキスト“HIGH
−SPEED CMOS DATABOOK”はフィル
タリング手段により7文字のテキスト“SCMOSO
O”にフィルタリングされる。
【0038】その結果、フィルタリング手段を用いない
場合の7/25、すなわち約1/4しか文字列照合手段
で処理しなくてもよくなる。そのため、照合スループッ
トが見かけ上約4倍に上がったことになる。すなわち、
アクセスタイムが4倍遅い低価格のメモリを使用しても
文字列検索装置の検索速度を落すことなく、コストの安
い文字列検索装置が提供できることになる。
【0039】
【実施例】以下、本発明の原理を用いた第1の実施例を
図1を用いて説明する。本実施例は公知例の文字列検索
装置1の文字列記憶手段105と文字列照合手段102
の間にフィルタリング手段3000を設け、検索ターム
に含まれない文字コードを切り捨てて、検索タームに含
まれる文字コードのみを文字列照合手段102に送り、
文字列照合手段102での無駄な照合処理を省くことに
よって、等価的に照合スループットを向上させようとす
るものである。すなわち、低速なメモリを使用した文字
列照合手段102を用いても文字列検索装置としての検
索速度が低下しない低コストな文字列検索装置を提供す
ることを目的としている。
【0040】本実施例で用いるフィルタリング手段30
00の一構成例を図7に示す。フィルタリング手段30
00はテキストから1文字入力される毎にこれを検索タ
ームと比較し、検索ターム中に同じ文字があるかどうか
を判定し、同じものがあれば照合した1文字を文字列照
合手段102へ出力し、同じものがなければ出力しない
というフィルタリング処理を行う。これを、1文字単位
のフィルタリング処理であることから、単一フィルタリ
ング回路と呼ぶ。
【0041】本単一フィルタリング回路は、文字コード
レジスタ3200、単一フィルタリングテーブル330
0、および出力ゲート3410からなる単一文字出力回
路3400から構成されている。
【0042】単一フィルタリングテーブル3300は図
8に示す構成をとり、文字コードをアドレスとしてアク
セスする一次元メモリである。ここには、検索タームに
含まれる文字コードに対応して“1”が一致フラグとし
て格納されている。
【0043】以下、本図に示した単一フィルタリング回
路の概略動作について説明する。まず初期設定として、
検索タームに含まれている文字コードに対応する単一フ
ィルタリングテーブル3300のスロットには1を設定
し、それ以外のスロットには0を設定する。
【0044】例えば検索タームとして“CMOS”が与
えられた場合には、図8に示すような内容を単一フィル
タリングテーブル3300に設定する。すなわち、“C
MOS”を構成する“C”、“M”、“O”、および
“S”の各文字コードに対応するスロットに1を設定し
ておく。
【0045】フィルタリング動作は、入力テキスト20
4から1文字ずつ文字コードを文字コードレジスタ32
00に取り込むことから始まる。
【0046】文字コードレジスタ3200の出力である
文字コード3100を参照アドレスとして単一フィルタ
リングテーブル3300がアクセスされ、単一一致信号
3350が読み出される。検索タームを構成する文字コ
ードの場合には、単一一致信号3350として1が出力
される。このとき出力ゲート3410が開き、文字コー
ド3100は出力ライン207へ出力され、次段の文字
列照合手段102へ送られる。検索タームに含まれない
文字コードの場合には、単一一致信号3350として0
が出力される。このとき、出力ゲートは閉ざされ、文字
コード3100は出力ライン207へ出力されず、次段
の文字列照合手段102へ送られないことになる。
【0047】例えば検索タームとして“CMOS”が与
えられ、入力テキストとして“HIGH−SPEED
CMOS DATA BOOK”が入力されたときの単
一フィルタリング回路の具体的な動作を図9のタイミン
グチャートを用いて説明する。
【0048】まず、入力テキスト204から“H”が文
字コードレジスタ3200に取り込まれ、文字コード3
100として出力される。このため、“H”で単一フィ
ルタリングテーブル3300がアクセスされ、単一一致
信号3350の値として0が出力される。単一一致信号
3350の値が0のため、出力ゲート3410からは文
字コード“H”は出力されない。
【0049】次の、“I”、“G”、“H”、および
“−”も同様に文字コードレジスタ3200に取り込ま
れるが、単一フィルタリングテーブル3300から出力
される単一一致信号3350が0のため出力ゲート34
10からは出力されない。
【0050】さらに次の“S”が文字コードレジスタ3
200に取り込まれると単一フィルタリングテーブル3
300から出力される単一一致信号3350の値が1と
なり、出力ゲート3410から文字コード3100の
“S”が出力ライン207へ出力される。
【0051】次の“P”、“E”、“E”、“D”、お
よび“ ”(スペース)の間は単一フィルタリングテー
ブル3300から出力される単一一致信号3350が0
となるため出力ライン207へは何も出力されない。
【0052】この次の“C”、“M”、“O”、および
“S”の間は単一一致信号3350が1となり、出力ゲ
ートから“C”、“M”、“O”、および“S”が出力
ライン207へ出力される。
【0053】それらの次の“ ”(スペース)、
“D”、“A”、“T”、“A”、“ ”(スペー
ス)、および“B”の間は再び単一フィルタリングテー
ブル3300からの単一一致信号3350が0とるた
め、出力ゲート3410から何も出力されない。
【0054】次の“O”と“O”については単一一致信
号3350が再び1となるため、出力ゲート3410か
ら“O”と“O”が出力される。
【0055】その後“K”で再び単一一致信号3350
が0となるため、出力ゲート3410から何も出力され
なくなる。
【0056】このようにして、25文字の入力テキスト
“HIGH−SPEED CMOSDATA BOO
K”から検索タームに含まれる“SCMOSOO”の7
文字が抽出され、出力テキスト207として出力され
る。すなわち、入力テキスト204の18/25、つま
り約3/4が不要文字として切り捨てられるため、文字
列照合手段102には約1/4が送られるだけになる。
このことから本実施例では、文字列照合手段102の処
理速度をフィルタリング手段3000の約1/4にする
ことが可能となり、文字列照合手段102の状態遷移テ
ーブルに使うメモリのアクセスサイクルも約4倍遅い低
価格なメモリが使用できることになる。
【0057】以上説明したように本発明の第1の実施例
によれば、小規模なフィルタリング回路を設けるだけ
で、低価格な文字列照合手段102が実現でき、低コス
トで高速な文字列検索装置を提供することが可能とな
る。
【0058】次に、本発明の原理を用いた第2の実施例
について説明する。本実施例は、第1の実施例における
誤照合を防止できるようにしたものである。
【0059】第1の実施例では、例えば検索タームとし
て“SCMOS”が与えられ、入力テキストとして“H
IGH−SPEED CMOS DATA BOOK”
が入力された場合、フィルタリングの結果“SCMOS
OO”が出力されることになる。この場合、文字列照合
手段102では入力テキスト中には存在しない“SCM
OS”を照合してしまうという問題が生じる。これを防
止するためには検索ターム中に存在する文字が連続して
テキスト中に現れる場合にのみそのまま出力し、不連続
になった場合にはそこに区切り記号(以後、デリミタと
呼ぶ)“/”を挿入する必要がある。それには、出力ゲ
ート3410からの出力が途絶えたとき、デリミッタ
“/”を1文字分挿入すればよい。このようにすること
により出力テキストは“S/CMOS/OO/”のよう
になり、文字列照合手段102で“SCMOS”が誤照
合されるようなことがなくなる。
【0060】本実施例におけるフィルタリング手段30
00内の単一フィルタリング回路の構成を図10に示
す。第1の実施例と異なるのは単一出力回路3400の
みである。
【0061】本実施例の単一出力回路3400はデリミ
タレジスタ3430、文字コードセレクタ3420、出
力ゲート3410、フリップフロップ3450、および
ORゲート3460から構成される。
【0062】文字コードセレクタ3420では単一一致
信号3350が1のときXポートを選択し、単一一致信
号3350が0のときYポートを選択する。
【0063】本単一フィルタリング回路3000の動作
を図11のタイミングチャートに基づいて、例を上げて
説明する。
【0064】検索タームとして“CMOS”を、入力テ
キストとして“HIGH−SPEED CMOS DA
TA BOOK”を想定する。
【0065】初期設定として、デリミタレジスタ343
0にデリミタコードとして検索タームに使用されない文
字コードを設定する。例えば“/”を設定する。また、
フリップフロップ3450には0(ゼロ)を設定する。
単一フィルタリングテーブル3300には第1の実施例
と同様に、図8に示した単一一致フラグを設定する。
【0066】まず、入力テキスト204から“H”が文
字コードレジスタ3200に取り込まれるとともに、
“H”で単一フィルタリングテーブル3300がアクセ
スされ、単一一致信号3350の値として0が出力され
る。さらにフリップフロップ3450の値も0であるた
め、出力制御信号3461は0となる。したがって、文
字コードセレクタ3420では、Yポートのデリミタコ
ード“/”が選択されるが、出力ゲート3410から出
力ライン207へは“H”が出力されない。
【0067】次の、“I”、“G”、“H”、および
“−”も次々と文字コードレジスタ3200に取り込ま
れるが、同様に単一フィルタリングテーブル3300か
らの単一一致信号3350が0でかつフリップフロップ
3450の値も0であるため出力ゲート3410からは
出力されない。
【0068】さらに次の“S”が文字コードレジスタ3
200に取り込まれると単一フィルタリングテーブル3
300から出力される単一一致信号3350の値が1と
なる。このため、文字コードセレクタ3420ではポー
トXが選択され、文字コード3100“S”が出力ライ
ン3480へ送出される。出力ゲート3410はゲート
信号3461が1になるため開き、“S”が出力ライン
207へ出力される。この後、単一一致信号3350の
値、すなわち1がフリップフロップ3450に格納され
る。
【0069】次の“P”が文字コードレジスタ3200
に取り込まれると、単一フィルタリングテーブルの参照
値が0となるため、文字コードセレクタ3420ではY
ゲートが選択され、デリミタ3431が出力ゲート34
10へ出力される。ここで、フリップフロップ3450
には前回の単一一致信号3350の値である1が格納さ
れている。したがって、出力制御信号3461は1とな
っているため、出力ゲート3410からデリミタ343
1が出力ライン207へ出力されることになる。この
後、フリップフロップ3450に単一フィルタリングテ
ーブル3300の参照出力、すなわち単一一致信号33
50の値として0が格納され、初期値にリセットされ
る。したがって、出力ゲートは閉じられることになる。
【0070】さらに次の、“E”、“E”、“D”、お
よび“ ”の間は単一フィルタリングテーブル3300
からの単一一致信号3350が0のため出力ライン20
7へは何も出力されない。
【0071】この次の“C”、“M”、“O”、および
“S”の間は単一一致信号3350が1となる。このた
め、文字コードセレクタ3410ではXポートが選択さ
れ、文字コード3100が出力され、さらに出力ゲート
3410も開となるため“C”、“M”、“O”、およ
び“S”が出力ライン207へ出力される。
【0072】次の“ ”(スペース)が文字コードレジ
スタ3200に取り込まれると、単一フィルタリングテ
ーブルの参照値は0となるもののフリップフロップ34
50の値が1であるため、文字コードセレクタ3420
ではYゲートが選択され、前述の“P”の処理と同様に
デリミタ3431が出力ライン207へ出力される。こ
の後、フリップフロップ3450には同様にして0が格
納され、初期値に戻る。
【0073】それらの次の“D”、“A”、“T”、
“A”、“ ”(スペース)、および“B”の間は再び
単一フィルタリングテーブル3300からの単一一致信
号3350が0となるため、出力ゲート3410から何
も出力されない。
【0074】次の“O”と“O”については単一一致信
号3350が再び1となるため、出力ゲートから“O”
および“O”が出力される。
【0075】この後“K”で単一一致信号3350が0
となるがフリップフロップ3450の値が1であるた
め、前述の“P”の処理と同様にデリミタ3431が出
力ライン207へ出力される。
【0076】以上説明したように25文字の入力テキス
ト“HIGH−SPEED CMOS DATA BO
OK”がフィルタリングされて“S/CMOS/OO
/”の10文字が出力される。したがって、“SCMO
S”という検索タームが与えられた場合にも、誤照合を
起こすことなく照合処理が行えることになる。
【0077】すなわち、本実施例によれば、第1の実施
例に少量の回路を追加するだけで誤照合のないフィルタ
リングが可能となるとともに低価格なメモリを使用した
文字列照合手段102が実現できるため、低コストで高
速な文字列検索装置を提供することが可能となる。
【0078】次に、本発明の原理を用いた第3の実施例
について説明する。本実施例は、検索タームの先頭文字
が出現するまで、検索タームを構成する先頭文字以外の
文字とテキストが一致しても一致した文字を出力しない
ようにすることにより、第2の実施例よりもさらにフィ
ルタリング機能を高めたフィルタリング手段を提供する
ものである。
【0079】第2の実施例では、例えば検索タームとし
て“CMOS”が与えられ、入力テキストとして“HI
GH−SPEED CMOS DATA BOOK”が
入力された場合に、フィルタリングの結果として“S/
CMOS/OO/”のように先頭文字が一致していない
“S”や“OO”が出力される。これらの文字列は検索
タームの先頭文字“C”が先頭にないため、文字列照合
手段102へ送られても検索タームと一致する可能性は
ない。
【0080】これを防止するためには、フィルタリング
テーブルに先頭文字であることを示す一致フラグ(以
後、先頭一致フラグと呼ぶ)と、それ以外の文字である
ことを示す一致フラグ(以後、後方一致フラグと呼ぶ)
を設ける。フィルタリング時には、まず先頭一致フラグ
のみで照合を行い、先頭一致フラグが立った場合のみそ
の文字を文字列照合手段102へ送出する。一旦先頭一
致フラグが立った後は、先頭一致フラグと後方一致フラ
グのいずれかが立てばその文字を文字列照合手段102
へ送出する。その後、先頭一致フラグと後方一致フラグ
のいずれもが立たなくなった場合に、先頭一致フラグの
みによるフィルタリング動作に戻る。
【0081】以上により、文字列照合手段102には
“S”や“OO”が入力されることがなくなる。このよ
うに先頭文字について特別な処理を行うことから、本単
一フィルタリング回路を単一先頭フィルタリング回路と
呼ぶ。
【0082】本実施例におけるフィルタリング手段30
00の構成を図12に示す。本実施例は文字コードレジ
スタ3200、単一先頭フィルタリングテーブル330
1、ORゲート3462、ANDゲート3463、およ
び単一出力回路3401から構成される。
【0083】単一先頭フィルタリングテーブル3301
のスロットには、図13に示すように先頭一致フラグと
後方一致フラグが格納されており、文字コードをアドレ
スとしてアクセスされる。
【0084】単一出力回路3401はデリミタレジスタ
3430、文字コードセレクタ3420、出力ゲート3
410、フリップフロップ3450、およびORゲート
3460から構成される。
【0085】以下、本単一先頭フィルタリング回路の動
作を図14のタイミングチャートに基づいて、例を上げ
て説明する。
【0086】検索タームとして“CMOS”を、入力テ
キストとして“HIGH−SPEED CMOS DA
TA BOOK”を想定する。
【0087】初期設定として、デリミタレジスタ343
0に検索タームに使用されない文字コードを設定する。
例えば“/”を設定する。また、フリップフロップ34
50には0(ゼロ)を設定する。単一先頭フィルタリン
グテーブル3301には、図13に示す内容を設定す
る。つまり、先頭文字“C”に対応するスロットの先頭
一致フラグには1を設定し、その他の文字“M”、
“O”、および“S”に対応するスロットの後方一致フ
ラグに1を設定する。それら以外の先頭一致フラグと後
方一致フラグには0を設定する。
【0088】まず、入力テキスト204から“H”が文
字コードレジスタ3200に取り込まれるとともに、
“H”で単一先頭フィルタリングテーブル3301がア
クセスされ、先頭一致フラグ3352と後方一致フラグ
3351が読み出される。しかし、両方のフラグはとも
に0であるため単一一致フラグ3350は0となる。さ
らに、フリップフロップ3450の値も0であるため、
出力制御信号3461は0となり、文字コードセレクタ
3420でXポートの文字コード3100“H”が選択
されるものの、出力ゲート3410から“H”は出力ラ
イン207へ出力されない。
【0089】次の、“I”、“G”、“H”、および
“−”も次々と文字コードレジスタ3200に取り込ま
れるが、同様に両方のフラグが0でかつフリップフロッ
プ3450の値も0であるため出力ゲート3410から
は出力されない。
【0090】さらに次の“S”が文字コードレジスタ3
200に取り込まれると単一先頭フィルタリングテーブ
ル3301から後方一致フラグ3351として1が読み
出される。しかし、ANDゲート3463にフリップフ
ロップ3450の値の0が入力されているため、単一一
致信号3350も0となり、同様に出力ゲート3410
からは何も出力されない。
【0091】次の“P”、“E”、“E”、“D”、お
よび“ ”(スペース)の間は単一先頭フィルタリング
テーブル3300から読み出された先頭一致フラグ33
52と後方一致フラグ3351がともに0であるため、
同様に出力ライン207へは何も出力されない。
【0092】この次の“C”が取り込まれると単一先頭
フィルタリングテーブル3301から先頭一致フラグと
して1が読み出される。したがって、単一一致信号33
50も1となる。このため、文字コードセレクタ342
0からXポートの文字コード3100が選択され、出力
ゲート3410が開くため“C”が出力ライン207へ
出力される。この後、フリップフロップ3450に1が
格納される。
【0093】次の“M”、“O”、および“S”の間は
後方一致フラグ3351として1が読み出され、かつフ
リップフロップ3450の値も1のため、単一一致信号
3350は1となる。このため、文字コードセレクタ3
420からXポートの文字コード3100が選択され、
さらに出力ゲート3410も開くため“C”、“M”、
“O”、および“S”が出力ライン207へ出力され
る。
【0094】次の“ ”(スペース)が文字コードレジ
スタ3200に取り込まれると、単一先頭フィルタリン
グテーブルの先頭一致フラグ3352と後方一致フラグ
3351はともに0となるもののフリップフロップ34
50の値が1であるため、デリミタ3431が文字コー
ドセレクタ3420で選択され、“/”が出力ライン2
07へ出力される。この後、フリップフロップ3450
に0が格納され、初期値に戻る。
【0095】それらの次の“D”、“A”、“T”、
“A”、“ ”(スペース)、および“B”の間は再び
単一先頭フィルタリングテーブル3300から先頭一致
フラグ3352と後方一致フラグ3351としてともに
0が読み出されるため、出力ゲート3410から何も出
力されない。
【0096】次の“O”と“O”については後方一致フ
ラグ3351として1が読み出されるが、フリップフロ
ップ3351の値が0であるため、単一一致信号335
0は0となり、出力ゲート3410からは何も出力され
ない。
【0097】最後の“K”でも単一一致信号3350が
0となり、出力ライン207からは何も出力されない。
【0098】以上説明したように25文字の入力テキス
ト“HIGH−SPEED CMOS DATA BO
OK”がフィルタリングされて“CMOS/”の5文字
が出力されることになる。したがって、“S”や“O
O”などの先頭部分が一致しない文字列がフィルタリン
グ手段で落とされ、文字列照合手段102に入力される
ことがなくなる。このため、実施例2では出力テキスト
は10文字であったのに対し、本実施例では5文字と半
分になる。
【0099】すなわち本実施例によれば、単一先頭フィ
ルタリングテーブル3301を用いることにより、実施
例2よりも効率のよいフィルタリングが可能となるた
め、さらに低価格なメモリを使用した文字列照合手段1
02が実現でき、低コストで高速な文字列検索装置を提
供することが可能となる。
【0100】次に、本発明の原理を用いた第4の実施例
について図15を用いて説明する。
【0101】第1の実施例には、フィルタリング手段3
000と文字列照合手段102とが同期して動作するた
め、文字列照合手段102の処理が終了するまでフィル
タリング手段3000が動作できないという問題があ
る。
【0102】このため、本実施例ではフィルタリング手
段3000と文字列照合手段102の間にファーストイ
ン・ファーストアウト型のバッファリング手段106を
設け、フィルタリング手段3000と文字列照合手段1
02とが非同期で動作できるようにしたものである。
【0103】本実施例のバッファリング手段106の概
略動作について説明する。フィルタリング手段3000
で切り出された文字は出力テキスト207としてバッフ
ァリング手段106に格納される。バッファリング手段
106が満杯になるまでフィルタリング手段3000は
格納を続け、満杯になった場合は格納を停止する。格納
された出力テキストは文字列照合手段102から読み出
される。ただし、バッファリング手段106が空になっ
た場合には読出しを停止する。
【0104】このため、フィルタリング手段3000で
は、バッファリング手段106が満杯になるまで、文字
列照合手段102を意識することなくフィルタリング処
理を実行できる。
【0105】このようにすることにより、文字列照合手
段102が照合動作中であっても、フィルタリング手段
3000はテキストを入力しフィルタリング処理を行う
ことができるようになる。その結果、フィルタリング処
理と文字列照合処理と同時に並行して行うことができる
ようになるため、さらに検索スループットを上げること
が可能となる。
【0106】なお、フィルタリング手段106はFIF
O(First In FirstOut)メモリなど
で簡単に構成することが可能である。
【0107】以上によれば、高速なフィルタリング手段
3000のスループットを無駄に落とすことなく、効率
的に文字列照合ができる高速な文字列検索装置を提供す
ることが可能となる。
【0108】
【発明の効果】本発明によれば、入力テキストにおける
照合を部分的に行うことにより、高速な文字列検索方法
および装置を提供することが可能となる。
【図面の簡単な説明】
【図1】本発明の文字列検索装置の説明図。
【図2】従来の文字列検索装置の説明図。
【図3】従来の文字列照合回路の構成を示すブロック
図。
【図4】従来のオートマトンの状態遷移図。
【図5】従来のトークンの制御方法の説明図。
【図6】従来の文字列照合回路の構成を示すブロック
図。
【図7】本発明を用いたフィルタリング手段の構成を示
すブロック図。
【図8】本発明を用いたフィルタリングテーブルの説明
図。
【図9】本発明を用いたフィルタリング手段のタイミン
グチャート。
【図10】本発明を用いたフィルタリング手段の構成を
示すブロック図。
【図11】本発明を用いたフィルタリング手段のタイミ
ングチャート。
【図12】本発明を用いたフィルタリング手段の構成を
示すブロック図。
【図13】本発明を用いたフィルタリングテーブルの説
明図。
【図14】本発明を用いたフィルタリング手段のタイミ
ングチャート。
【図15】本発明の文字列検索装置の説明図。
【符号の説明】
7…アドレスレジスタ、9…アドレスデコーダ、8…ラ
ンダムアクセスメモリ、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…文字コードセレクタ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 篠崎 雅継 東京都千代田区神田駿河台四丁目6番地 株式会社日立製作所内 (56)参考文献 特開 昭61−248160(JP,A) 加藤寛次,自由語による全文検索のた めのテキストサーチマシンTSM−I, 情報処理学会第39回(平成元年後期)全 国大会講演論文集2,1989年,p.1075 −1076 (58)調査した分野(Int.Cl.7,DB名) G06F 17/30

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】コード表現されたテキスト中に、指定され
    た検索タームが存在するか否かを判定する文字列検索方
    法において、 上記入力テキストに含まれる1文字に対応するコードを
    入力し、検索タームに含まれる1文字に対応するコード
    と該入力コードの関係に応じたコードを出力し、 該出力されたコードに対し、上記検索タームを照合する
    ことを特徴とする文字列検索方法。
  2. 【請求項2】コード表現されたテキスト中に、指定され
    た検索タームが存在するか否かを判定する文字列検索方
    法において、 上記テキストに含まれるコードを入力し、該入力コード
    が上記検索タームに含まれるコードと一致する場合に上
    記コードを出力し、 該出力されたコードに対し、上記検索タームを照合する
    ことを特徴とする文字列検索方法。
  3. 【請求項3】請求項1又は請求項2記載の文字列検索方
    法において、上記入力コードが上記指定された検索ター
    ムの先頭文字と一致した場合に、それ以降該入力コード
    が予め設定されたコードと一致するか判定し、該判定に
    て一致する場合には上記コードを出力することを特徴と
    する文字列検索方法。
  4. 【請求項4】請求項3記載の文字列検索方法において、
    上記入力コードが上記指定された検索タームに含まれる
    コードと一致しない場合に、それ以降上記入力コードが
    上記指定された検索タームの先頭文字と一致するかを判
    定し、該判定にて一致する場合には上記コードを出力
    ることを特徴とする文字列検索方法。
  5. 【請求項5】請求項1又は請求項2記載の文字列検索方
    法において、上記入力コードが上記 指定された検索ター
    ムに含まれるコードと一致しない場合に所定コードを
    することを特徴とする文字列検索方法。
  6. 【請求項6】請求項3又は請求項4記載の文字列検索方
    法において、上記入力コードが上記指定された検索ター
    ムに含まれるコードと一致しない場合所定コードを
    することを特徴とする文字列検索方法。
  7. 【請求項7】請求項3又は請求項4記載の文字列検索方
    法において、上記入力コードが上記指定された検索ター
    ムに含まれるコードのいずれとも一致しない場合所定
    コードを出力することを特徴とする文字列検索方法。
  8. 【請求項8】コード表現されたテキスト中に、指定され
    た検索タームが存在するか否かを判定する文字列検索装
    置において、 上記入力テキストに含まれる1文字に対応するコードを
    入力し、検索タームに含まれる1文字に対応するコード
    と該入力コードの関係に応じてコードを出力するフィル
    タリング手段と、 該出力されたコード列に対し、上記検索タームを照合す
    る文字列照合手段とを有することを特徴とする文字列検
    索装置。
  9. 【請求項9】コード表現されたテキスト中に、指定され
    た検索タームが存在するか否かを判定する文字列検索装
    置において、 上記テキストに含まれるコードを入力し、該コードが検
    索タームに含まれるコードと一致する場合に、当該コー
    ドを出力するフィルタリング手段と、 該出力されたコード列に対し、前記検索タームを照合す
    る文字列照合手段とを有することを特徴とする文字列検
    索装置。
  10. 【請求項10】請求項8又は請求項9記載の文字列検索
    装置において、上記フィルタリング手段では、上記入力
    したコードと上記指定された検索タームの先頭コードと
    の一致を判定する第1のコード判定手段と、 上記入力したコードと上記指定された検索タームに含ま
    れるコードとの一致を判定する第2のコード判定手段
    と、 第1のコード判定手段と第2のコード判定手段の少なく
    ともいずれかにおける判定結果から当該コードの出力を
    制御する出力手段とを有することを特徴とする文字列検
    索装置。
JP06306792A 1989-06-14 1992-03-19 文字列検索方法および装置 Expired - Fee Related JP3360308B2 (ja)

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 JPH05266082A (ja) 1993-10-15
JP3360308B2 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005048142A2 (en) * 2003-10-31 2005-05-26 Sap Ag Methods and software applications for computer-aided customer independent cash collection using a state field in a data record

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
加藤寛次,自由語による全文検索のためのテキストサーチマシンTSM−I,情報処理学会第39回(平成元年後期)全国大会講演論文集2,1989年,p.1075−1076

Also Published As

Publication number Publication date
JPH05266082A (ja) 1993-10-15

Similar Documents

Publication Publication Date Title
US5140644A (en) Character string retrieving system and method
US5471610A (en) Method for character string collation with filtering function and apparatus
US5081608A (en) Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields
US6470334B1 (en) Document retrieval apparatus
JP3360308B2 (ja) 文字列検索方法および装置
JPS6033665A (ja) キ−ワ−ド自動抽出方式
US5659733A (en) Sort processing method and apparatus for sorting data blocks using work buffer merge data records while sequentially transferring data records from work buffers
JP3459049B2 (ja) 文字列検索方法およひ装置
JP3141428B2 (ja) 数値検索装置およびその方法
EP0468402B1 (en) Character string retrieving system and method
JP2925042B2 (ja) 情報リンク生成方法
JP2880192B2 (ja) 文字列検索方法及び装置
JP2880199B2 (ja) 記号列検索方法および検索装置
JP2825009B2 (ja) 記号列検索方法および装置
JPH0746362B2 (ja) 文字列照合方法
JPH06103310A (ja) 連接フィルタリング回路を備えた文字列検索装置
JPH06162083A (ja) 文字列検索装置
JP3076115B2 (ja) 大型磁気ディスク装置
JPH06139278A (ja) 文字コード変換機能を備えた文字列検索装置
JP2961888B2 (ja) 用語辞書による文書検索システム
JP2000076254A (ja) キーワード抽出装置、このキーワード抽出装置を用いた類似文献検索装置、キーワード抽出方法及び記録媒体
JPH07129576A (ja) 文書処理装置及びその単語辞書
JPH0752451B2 (ja) 情報検索装置
JPS63187334A (ja) 文字列パタ−ンマツチング装置
JPH0526220B2 (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