JP2880199B2 - 記号列検索方法および検索装置 - Google Patents

記号列検索方法および検索装置

Info

Publication number
JP2880199B2
JP2880199B2 JP1268927A JP26892789A JP2880199B2 JP 2880199 B2 JP2880199 B2 JP 2880199B2 JP 1268927 A JP1268927 A JP 1268927A JP 26892789 A JP26892789 A JP 26892789A JP 2880199 B2 JP2880199 B2 JP 2880199B2
Authority
JP
Japan
Prior art keywords
search
character string
collation
symbol string
symbol
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
JP1268927A
Other languages
English (en)
Other versions
JPH03131969A (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
Maxell Holdings Ltd
Original Assignee
Hitachi Ltd
Hitachi Maxell 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, Hitachi Maxell Ltd filed Critical Hitachi Ltd
Priority to JP1268927A priority Critical patent/JP2880199B2/ja
Publication of JPH03131969A publication Critical patent/JPH03131969A/ja
Priority to US08/349,124 priority patent/US5452451A/en
Application granted granted Critical
Publication of JP2880199B2 publication Critical patent/JP2880199B2/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

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータベース,文書フアイリングシステム等
の非数値データ処理を含む情報処理システムにおいて、
データの高速な検索処理、特に文字列検索による文書デ
ータの全文検索に好適な記号列検索方法及びその方法を
実現する装置、更に該装置としての半導体集積回路に関
する。
〔従来の技術〕
情報処理システムの記憶容量が年々増大するに従い、
文書データに代表される非数値データを扱う処理の比率
が高くなつている。このような背景から、大容量のデー
タベースから所望の文書やデータを高速に漏れなく検索
する処理の重要性が高まりつつある。
従来、文書データの検索においては、キーワードや分
類コード等の付加情報を用いる方法が多く取られてき
た。しかし、キーワードや分類コードだけでは細かい検
索の条件を厳密に表現することは難しく、十分な絞り込
みを行いにくい。したがつて、この方法では検索者が意
図しなかつた文書も検索ノイズとして含まれてしまう。
そのため、最終的には検索者が直接本文を読んで文書デ
ータを選択しなければならず、検索処理の効率が上がら
ないという問題があつた。更に文書データの増大に伴
い、キーワードや分類コードを付加するインデキシング
の作業量が増大し、文書データの登録の遅れの原因にな
つている。また、キーワードや分類コードは時代と共に
その意味が変化して陳腐化する場合があり、データベー
スの最新性維持の困難の原因となつている。
これらの問題を克服するために、文書の本文をスキヤ
ンしつつ、その内容とユーザにより任意に設定されたキ
ーワードとの比較照合を行う方法(以下、フルテキスト
サーチと呼ぶ)が、提案されている。
このフルテキストサーチを用いた文字列検索システム
の一例を第34図に示す。(アール.エル.ハスキン ア
ンド エル.エー.ホラー:“オペレーシヨナル キヤ
ラクタリステイツクス オブア ハードウエア ベース
ト パターン マツチヤー",エー シー エム トラン
ザクシヨンズオン データベース システムズ,第8
巻,第1号,1983年(R.L.Haskin and L.A.Hollaar:“Op
erational Characteristics of a Hardware−Based Pat
tern Matcher",ACM Trans.on Database Systems,Vol.8,
No.1,1983))文字列検索システム300はホストコンピユ
ータに接続され、検索要求320と検索結果324を通信によ
りやり取りする。ホストコンピユータから検索要求320
が送られると、検索制御手段310はこれを受け付け、解
析し、文字列照合手段313と複合条件判別手段314へ検索
制御情報321を送る。また、検索制御手段310は記憶装置
制御手段311を制御して、文字列記憶手段312に格納され
ている文字列データ322を文字列照合手段313へ転送させ
る。
文字列照合手段313は入力された文字列データ322と、
予め検索制御情報321として設定された文字列との照合
を行ない、該当する文字列を検出すると、検出情報323
を複合条件判別手段314へ出力する。複合条件判別手段3
14は、予め検索制御情報321として設定された、検索要
求中の文字列間の位置関係等に関する複合条件に、検出
情報323が合致するかを調べる。合致する場合には、該
当する文書データの識別情報や文書内容を、検索結果32
4として出力し、これがボストコンピユータへ送られ
る。
上記文字列照合手段313で行なうフルテキストサーチ
のひとつに有限オートマンを用いた方法がある。この方
法ではキーワード数によらず1回の本文スキヤンで検索
を行うことができる。(エー.ブイ.エーホ アンド
エム.ジェイ.コラツシツク:“エフイシエント スト
リングマツチング",コミユニケーシヨンズ エー シー
エム,第18巻,第6号,1975年(A.V.Aho and M.J.Cor
asick:“Efficient String Matching",Comm.ACM,Vol.1
8,No.6,1975))この方法はdon′t care文字を含む検
索、誤り文字を含む検索など様々な曖昧検索も実現する
ことができ、フルテキストサーチに有効な手法である。
この有限オートマトンを用いたフルテキストサーチを高
速に処理するアルゴリズムやその実現手段については、
特開昭63−311530号に記載されている。
ところで、特開昭63−311530号にも記載されているよ
うに、従来の有限オートマトンを用いたフルテキストサ
ーチにおいては、各サイクルの状態遷移は常に状態遷移
テーブルを参照しつつ行なわれる。一般にこの状態遷移
テーブルの容量は大きくなるため、有限オートマトンの
実行を制御する半導体集積回路とは別チップのメモリに
格納されるのが通常である。このため各サイクル毎にオ
ートマトン実行制御手段から外部へのメモリアクセスが
必要となり、処理速度向上の妨げとなつてしまう。
そこで、本願発明者らは、先に、検索文字列の照合処
理において実行頻度の高い部分を高速化することで、文
字列検索のトータルの処理速度を向上させる方式(高速
先頭照合方式)を提案して出願済である。(特願平1−
150401,平成1年6月15日出願)第35図に、この方式の
ブロツク図を示す。
これは状態遷移テーブルの参照頻度の高い部分、すな
わちテーブルを格納しているメモリのアクセス頻度の高
いデータを、有限オートマトン実行手段と同じチップ上
に置く方式である。言い換えれば状態遷移テーブルを階
層化して、有限オートマトン実行手段の内部と外部に分
割して置くものである。これはある意味では従来のキヤ
ツシユメモリの概念のアナロジーのようであるが、照合
処理中にデータを異なつた記憶階層間で移動させること
がないという点で、キヤツシユメモリとは本質的に異な
るものである。従つて、照合処理は状態遷移テーブルの
アクセス頻度の高い内容を、これと等価になるように並
列比較器に設定することにより、検索処理時にはこの並
列比較器に設定された部分文字列とテキストデータとの
比較だけで、その大部分の処理を行なうことができるよ
うになる。つまり、メモリアクセスなしで大部分の処理
が行なえるようになるために処理速度が著しく向上する
ことになる。
ところで、先に我々が提案した方式においては、並列
比較器に設定できるものとしては、部分文字列そのもの
と、その部分文字列の任意位置にdon′t careを設定し
たものだけであつた。しかし実際の照合処理において
は、「特定の文字以外の全ての文字を対象とする照合」
(否定条件)を行なう場合もある。この例を次に示す。
例えば、指定された検索文字列“大容量”に対して、
正常な検索文字列以外に1文字誤りを許容する検索を行
なう場合について説明する。すなわち、1文字入れ替わ
り、1文字挿入、及び1文字脱落を許容する場合であ
る。
ここで、 「任意の1文字(don′t careの設定)」を?、で示
すことにすると、設定文字列“大容量”に対して1文字
誤り許容検索を行なうためには、 の9個の文字列を検索しなければならない。これらの文
字列をフルテキストサーチにより検索する有限オートマ
トンを(後述する第4図のように)生成すると、否定条
件を含む文字の入力が状態の遷移条件として現れる。
(これを排他遷移と呼ぶ。)従つて並列比較器はこの様
な条件が検出できなければならない。このように、誤り
文字を許容するような曖昧検索を実現するためには、並
列比較器に否定条件の設定機能を持たせることが必要と
なる。
また、否定条件の設定が可能となることによつて不要
な検索結果、すなわち、いわゆる検索ノイズを抑制する
ことができるようになる。
例えば“金属原子",“導体”、という文字を含むテキ
ストをサーチする場合について考える。部分文字列とし
て先頭2文字を並列比較器へ設定するとすれば、“金
属",“導体”、が設定され、テキストとの照合が行なわ
れる。しかし、この照合の際に“金属”という部分文字
列に対して“非金属”を含むテキストが、あるいは“導
体”という部分文字列に対して“半導体”を含むテキス
トが検出されてしまう。これら“非金属",“半導体”は
それぞれ設定部分文字列“金属",“導体”を内部に含む
にもかかわらず、それとは異なつた意味を持つ別の文字
列である。検索の目的によつては、これらはフルテキス
トサーチの際の不要な検索結果、いわゆる検索ノイズと
して現わてしまう。
そこで、このような検索ノイズを取り除くためには、
否定条件を用いて次のような限定の強い部分文字列の設
定を行なえばよい。
これにより“非金属",“半導体”が検索ノイズとして
現れることを防ぐことができる。このような例は他にも
等々、多く存在する。従つて否定 条件の設定が可能となることで、検索ノイズが抑制でき
ることになる。
しかし、従来はこの否定条件の設定機能がないため、
1文字誤り許容検索や、ノイズ抑制のための限定検索が
できないという問題があつた。
〔発明が解決しようとする課題〕
オートマトンを用いたフルテキストサーチによる文書
検索において、状態遷移テーブルが格納されたメモリと
オートマトン実行手段とのデータの入出力頻度を従来よ
りも低減して処理の高速化を図る方法がある。この方法
を実行する際に、検索文字列中にdon′t care文字を設
定した検索や、検索文字列中に否定条件を設定した誤り
許容検索等の、曖昧検索を可能とする半導体集積回路を
提供することを目的とする。
〔課題を解決するための手段〕
上記目的を達成するために、文書データ中から探し出
すべき複数の文字列(以後、検索文字列と呼ぶ)の一部
分を取り出した部分文字列と、文書データを先頭文字か
ら順に並べた文字列(以後、被検索文字列と呼ぶ)との
照合を並列に高速処理する並列比較器を、オートマトン
実行手段の前段に設けた半導体集積回路において、この
並列比較器に設定する部分文字列の任意位置にdon′t c
areの設定を可能とする手段と、否定条件の設定を可能
とする手段を設けることにより、高速かつ柔軟性の高い
曖昧検索を実現した。
〔作用〕
第1図に本発明の原理を説明したブロツク図と、ここ
で実行する処理のオートマトンを示す。これらを用いて
本発明の作用を説明する。
本発明は第1図(a)に示すように、入力バツフア10
2を介して取り込む被検索文字列101を、並列比較部10と
有限オートマトン実行部11とに同時に入力する。そし
て、並列比較部10で、先頭照合オートマトン13に相当す
る先頭照合処理(分割した検索文字列の先頭部分文字列
の照合処理)を行い、後方照合オートマトン14に相当す
る後方照合処理(分割した検索文字列の残りの部分文字
列の照合処理)を有限オートマトン実行部11で行う。各
々の処理を行なつたのち、検索結果(該当する検索文字
列と、それが文書データ中のどこの場所にあつたかを示
す位置情報)111を出力バツフア105を介して外部へ出力
するものである。また、この処理の際に実行されるオー
トマトンの概念図を第1図(b)に示す。番号付けされ
た円は各状態を、内部の数字は状態番号を表わし、円の
大きさは各状態への状態遷移頻度の割合を相対的に示し
ている。矢印は状態遷移を表わし、初期状態は0であ
る。
本発明では、並列比較器106に設定する部分文字列の
任意位置にdon′t careの設定を可能とする手段である
バリツドフラグレジスタ400と、否定条件の設定を可能
とする手段である否定条件フラグレジスタ410を、先頭
照合処理を行なう並列比較部10に新たに設けた。
並列比較器106での先頭照合処理の際には、これらを
参照して処理を行なう。これにより、先頭照合処理にお
ける柔軟性を高めることができるので、並列比較部10に
おいても、有限オートマトン実行部11と同様な1文字誤
り検索や限定検索等、より高度な曖昧検索を実現するこ
とが可能となる。また、部分文字列を消去、再書き込み
することなく、don′t care設定手段や否定条件設定手
段のみの操作で検索文字列の破棄、回復を行なうこと
や、部分文字列の語長を可変にすることも同時に可能と
なる。
〔実施例〕
以下、本発明の実施例について説明する。
本発明の第1の実施例のブロツク図を第2図に示す。
本実施例は、 入力バツフア102,並列比較器106,バリツドフラグレジス
タ400,否定条件フラグレジスタ410(以降これらを総称
して照合制御レジスタ40と呼ぶ),コード変換器107,状
態コードキユー109,入力セレクタ108、オートマトン実
行手段104,文字コードバツフア103,状態遷移テーブル11
0.出力バツフア105、から構成される。
データベース内の文書データは被検索文字列101とし
て1文字単位、あるいは複数文字単位で入力バツフア10
2へ入力される。被検索文字列101は入力バツフア102で
データ幅を変換され、並列比較器106、および入力文字
コードバツフア103へ同時に入力される。入力文字コー
ド130のデータ幅は被検索文字列のデータ幅とは必ずし
も一致しない。並列比較器106には、予め検索文字列の
先頭部分が部分文字例として格納されており、入力バツ
フア102から1文字、あるいは複数文字送られるたび
に、すべての検索文字列の部分文字列との照合が同時に
行われる。この時バリツドフラグレジスタ400、否定条
件フラグレジスタ410に設定した条件が、部分文字列の
照合条件として参照される。検索文字列の部分文字列と
の一致が検出されると、一致信号131がアサートされ
る。この一致信号はコード変換器107により、各部分文
字列が検出されたことを示す状態コード132に変換され
る。コード変換器107から出力された状態コード132は、
セレクタ108により選択されて状態コードキユー109に蓄
えられる(以後、現状態と呼ぶ)。
一方、文字コードバツフア103内の文字コードデータ
に対して、上記の並列比較と同時に有限オートマトン実
行手段104による処理が行われる。文字コードバツフア1
03は、入力バツフア102の文字コード転送速度と、有限
オートマトン実行手段104の処理速度とのギャツプを解
消するためのものである。有限オートマトン実行手段10
4の入力は、文字コードバツフア103内部の文字コードデ
ータと状態コードキユー109に蓄えられている現状態コ
ード134である。有限オートマトン実行手段104は状態コ
ードキユー109から現状態コード134を取り出して、これ
と文字コードバツフア103内の文字コードデータ135とか
ら状態遷移テーブル110のアクセスアドレス137を生成す
る。該当アドレスの内容が有限オートマトンの現状態の
遷移先138(以後、次状態と呼ぶ)となり、これがセレ
クタ108を通して状態コードキユー109に蓄えられる。こ
の様に現状態コードが処理されると、次の文字コードデ
ータが文字コードバツフア103から取り込まれる。
こうした一連の処理が繰り返される過程で、オートマ
トンの状態遷移の結果138が検索文字列の検出を示す状
態となつた場合に、一致する文字列が検出されたことに
なる。そしてこれらに対応する検索結果111が出力バツ
フア105へ書き出される。なお被検索文字列に特定のコ
ードを終了コードとして挿入すると、並列比較器が終了
コードを検出して、強制的に検索処理を終了させる。こ
の終了コードは任意のコードを並列比較器内に設定する
ことが可能である。
以上の一連の処理は制御論理ブロツクにより制御され
る。したがつて、各モジユール間のデータパス上のデー
タ転送や終了コード検出による処理の強制終了は、制御
論理ブロツクが制御する。
並列比較器106における部分文字列と被検索文字列101
との照合の際に参照される照合制御レジスタ40は、次の
ような働きをする。
バリツドフラグレジスタ400は、セツトすると該当位
置の設定文字と入力文字との照合結果をそのまま有効と
し、リセツトすると該当位置の設定文字と入力文字の照
合結果を、入力文字にかかわらず常に一致とするドント
ケア指定となる。
否定条件フラグレジスタ410は、セツトすると該当位
置の設定文字と入力文字との照合の際に、両者が一致し
た場合にイネーブル出力を行ない、両者が不一致の場合
にデイスイネーブル出力を行なう。また、リセツトする
と照合結果の論理が反転し、両者が一致した場合にデイ
スイネーブル出力を行ない、両者が不一致の場合にイネ
ーブル出力を行なう。
先頭照合方式に加え、これらの照合制御レジスタ40を
備えることで、柔軟性の高い曖昧検索を可能とする高速
な照合処理を実現することができる。
次に本発明において実現される曖昧検索について実施
例に基づいて説明する。
第3図は検索文字列K:abcが与えられ、これについて
種々の1文字誤りを許容する曖昧検索を行なう場合の、
検索文字列の展開例を示している。ここで、否定条件の
設定は で、don′t careの設定は“?"で表現している。
展開された検索文字列は、K1が完全一致、K2〜K4が1
文字入れ替わり、K5〜K6が1文字挿入、K7〜K9が1文字
削除である。これらの全てを検索の対象とする必要があ
る。
第4図は検索対称である第3図のK1〜K9を、被検索文
字列から検索するためのオートマトンの一例である。
ここで、番号付けされた円は各状態を表し、内部の数
字は状態番号を示している。初期状態は状態0であり、
2重円は検索文字列の検出を示す状態である。2重円の
下の記号は、検出される検索文字列に対応した検索文字
列識別子である。また、矢印は状態遷移を表しており、
矢印の上部に記された文字が入力された場合に状態が遷
移する。これ以外の文字が入力された場合、または一部
を除き2重円の状態のように、遷移先が記述されていな
い場合には、すべて初期状態0へ遷移する。
(これをフェイルと呼ぶ。) 本発明においては、検索処理に先立ち検索文字列の部
分文字列を並列比較器106へ設定する。また、検索文字
列から展開されたオートマトンの状態遷移を制御する制
御情報を状態遷移テーブル110へも設定する。
ここでは、検索文字列の部分文字列として、オートマ
トンの先頭部分2文字を設定する場合を例として説明す
る。
第4図において、オートマトンを2分している点線81
0は、先頭の2文字を並列比較器に設定する場合のオー
トマトンの分割位置を示している。したがつて、状態2,
9,13,18へ至るまでの遷移は並列比較器106によつて実行
され、それ以降の遷移は有限オートマトン実行手段104
と状態遷移テーブル110とによつて実行される。分割さ
れた後半のオートマトンは、状態2,9,13,18をそれぞれ
初期状態とする4つのオートマトンの集合と見ることが
できる。並列比較器106には、状態0から状態2,9,13,18
へ各々へ至る遷移条件を表わす、すべて2文字に展開し
た部分文字列が設定される。したがつて、例えば“ab"
が入力された場合の状態遷移は0→1→2となる。ま
た、“ac"が入力された場合の状態遷移は0→1→9で
あり、“a"による状態遷移0→1は“ab"が入力された
場合と共通であるが、“c"による遷移により状態9へ分
岐遷移することになる。この状態遷移0→1→9は、図
中の点線で示したように2文字の連続出現による0→
1′→9の状態遷移と見なすことができるため、“ab"
と独立して“ac"という部分文字列を並列比較器に設定
すればよいことになる。
第5図は第4図のオートマトンを、並列比較器106と
後方照合用に生成されたオートマトンとにより構成した
概念図である。並列比較器106からの一致信号がオート
マトンを初期状態から遷移させる。以後が状態遷移テー
ブルに従つて状態遷移し、次々と被検索文字列101との
比較照合処理を行なつていく。なお状態13と発火は、 の両者と被検索文字列との照合結果が一致(図中では&
で表現)した場合に限られる。
このように全体の処理では、第4図のオートマトンを
実行しているのと等価となる。
第6図は第5図における並列比較器での、先頭照合を
実現するための部分文字列、及び照合制御レジスタ40の
設定の一実施例である。本実施例では並列比較器内106
に設定する部分文字列と、バリツドフラグレジスタ400,
否定条件フラグレジスタ410へそれぞれ設定するデータ
を示している。
部分文字列は第5図に示されている2文字を設定す
る。バリツドフラグレジスタ400へは、該2文字を設定
した箇所に対応するように、各文字ごとに“1"をフラグ
へセットし、それ以外の使用しない箇所に対応するフラ
グがリセツト(“0"をセツト)する。否定条件フラグレ
ジスタ410へは、否定条件が設定されていないことを示
す“1"を初期値として設定し、部分文字列として否定条
件を伴つて設定すべき文字に対してのみ、該当するフラ
グをリセツト(“0"をセツト)する。
したがつて、第5図に示されている部分文字列“ab",
“ac", “bc"を並列比較器内に設定するためには、第6図に示
されているようにそれぞれの項目を設定すればよい。第
6図は設定の一例であり、例えば各項目は組合せさえ同
じであれば、設定するアドレスはどこでもよい。ただ
し、複数の部分文字列が同時に検索された場合には、後
述する後段のピライオリテイーエンコーダにより処理さ
れる順序が決定される。
第7図に連想機能を持つメモリ、すなわちCAM(Conte
nt Addressable Memory)を用いた並列比較器の実施例
を示す。
本実施例では、1ワードを4バイトのCAMレジスタで
構成し、全体が16ワード(CAM R0〜R15)の構成として
いる。本実施例は設定モードと、比較モードをもつ。設
定モードでは、入力バツフア102に取り込んだ文字列を
部分文字列として設定するために、これらを選択的に任
意のCAMレジスタへ転送する。比較モードでは、取り込
んだ被検索文字列101を複数の部分文字列と並列照合す
るために、同時に全てのCAMレジスタへ分配する。個々
の部分文字列比較回路の構成は同じなので、添え字0の
ものを例にして説明を行う。
本実施例は、 並列比較器106へ設定される第1番目の部分文字列を
格納するCAMレジスタ(R0)201−0、 該CAMレジスタ(R0)201−0の設定データのバイトご
との有効性を示し、don′t care設定を可能とするバリ
ツドフラグレジスタ(VF0)400−0、 否定条件の設定を可能とする否定条件フラグレジスタ
(EF0)410−0、 該否定条件フラグレジスタ(VF0)410−0がセツト
(“1")されている場合には、該CAMレジスタ(R0)201
−0でのバイトごとの比較照合結果をそのまま有効とし
て出力し、リセツト(“0")されている場合にはCAMレ
ジスタ(R0)201−0でのバイトごとの比較照合結果を
論理反転して、設定された否定条件に対する比較照合結
果を出力する論理回路部411−0と、 該バリツドフラグレジスタ(VF0)400−0がセツト
(“1")されている場合には、該CAMレジスタ(R0)201
−0でのバイトごとの否定条件設定に対する比較照合結
果を出力する論理回路部411−0の出力を有効とし、リ
セツト(“0")されている場合には該論理回路部411−
0でのバイトごとの比較照合結果を無効として常に“1"
を出力するとともにこれらバイトごとの結果を統合する
論理回路部203−0と、 部分文字列の全バイトをバリツドフラグレジスタ(VF
0)400−0で無効指定した場合にこれを検出する論理回
路部204−0と、 上記論理回路部203−0,204−0の結果である214−0,2
15−0を統合して部分文字列の最終的な比較照合結果を
得る論理回路部205−0、及びその出力である一致信号
線(h0)216−0, から構成され、この1ワード分のハードウエア16組か
ら、並列比較器106の全体が構成されている。なお、本
実施例のCAMレジスタのバイト、ワード構成、およびバ
リツドフラグレジスタ、否定条件フラグレジスタの構成
は、それぞれ容易に拡張可能であり任意のものを取りう
る。
CAMレジスタ(R0〜R15)201,バリツドフラグレジスタ
(VF0〜VF15)400,否定条件フラグレジスタ(EF0〜EF1
5)410へは、入力バツフア102を介して任意のものにア
クセスすることができる。また、個々の専用のデータバ
スを設ける構成も取りうる。
指定された文字列の検索に必要な部分文字列とバリツ
ドフラグレジスタ400、否定条件フラグレジスタ410の内
容を設定した後、部分文字列を全く設定していない不要
なCAMレジスタ201に対しては、付随するバリツドフラグ
レジスタ400をリセツトし、無効化する。これにより不
要なCAMレジスタでの比較照合処理は論理回路部204によ
つて常に不一致となり、一致信号はデイスイネーブル固
定となる。
以上の初期設定の後に、被検索文字列101が入力バツ
フア102を介してすべてのCAMレジスタ201へ同時に分配
される。個々のCAMレジスタ201は比較モードにしてある
ため、分配された入力文字コードとあらかじめ設定され
ている部分文字列との照合を行う。両者の照合はビツト
対応に行ない、その結果は1バイトごとに論理積をとつ
てまとめる。すなわち、8ビツトコードであれば英数字
1文字単位で完全一致を検出する。これらの比較照合結
果は、まず否定条件フラグレジスタ410の内容を参照し
て一致、不一致の判定を行ない、次にバリツドフラグレ
ジスタ400の対応ビツトと共にバイト比較結果を統合す
る論理回路部203に入力される。バリツドフラグレジス
タ400によつて部分文字列中にdon′t care文字の設定さ
れたバイトについては、常に一致を示す値が出力され
る。そして、これらの出力についてまとめて論理積がと
られる。すなわち、部分文字列1語の比較結果215が得
られることになる。
一方、上述した論理回路だけでは4バイトすべてを無
効に指定すると、どの様な入力文字コードに対しても一
致を示してしまう。従つて、同一ワード内のバリツドフ
ラグレジスタ400がすべてリセツトされている場合には
一致信号が常にデイスイネーブルされる必要がある。こ
のための論理回路を構成するのが、第7図の204,205で
ある。
以上のように本実施例によれば、複数の部分文字列に
対して並列に比較照合処理を高速に行うことができるだ
けでなく、部分文字列の任意の位置に否定条件文字とdo
n′t care文字を設定することができる。また、並列比
較器106の1ワード以下の語長であれば、不要部分にdo
n′t care文字の設定、すなわち不要部分のバリツドフ
ラグ400をリセツトすることにより、バイト単位で任意
の長さの部分文字列を設定することも可能となり、柔軟
な並列比較照合処理が実現できるという効果が生じる。
また、バリツドフラグレジスタ400の操作のみで、一度
設定した部分文字列の破棄,回復が高速に行えるという
効果も生じる。
第8図にCAMレジスタとバリツドフラグレジスタへ部
分文字列を設定する際の従来例を示す。検索文字列“m
y"を設定する場合、“my"をバイト3とバイト2に設定
し、バイト1、及びバイト0のブランクを無効とするた
めに、バリツドフラグv3,v2,v1,v0をそれぞれ“1"“1"
“0"“0"に設定する。こうすることにより、検索文字列
が設定されていないバイト1とバイト0の照合結果は、
常に“1"となるため、バイト3及びバイト2の“my"の
照合結果だけで、一致信号線の出力が定まることにな
る。
しかし本従来例では部分文字列と被検索文字列との一
致検出しかできないので、 のような否定条件を含む部分文字列の照合は不可能であ
る。
第9図は、本発明において第8図と同様の部分文字列
を設定する場合の実施例である。検索文字列“my"およ
びバリツドフラグレジスタ設定データ“1100"をそれぞ
れ設定する。更にこの場合は否定条件の設定がないの
で、否定条件設定フラグレジスタEF0へは“1111"を設定
し、CAMレジスタにおける照合結果の論理反転は行なわ
ないようにする。
第10図は、本発明における否定条件を含んだ部分文字
列の設定の実施例である。第5図において並列比較器内
に設定されている部分文字列 を、部分文字列として実際に設定する場合を例として示
す。
まず、否定条件を取り除いた部分文字列“ab"をCAMレ
ジスタのバイト3とバイト2に設定する。バイト1、バ
イト0のブランクを無効とするために、バリツドフラグ
レジスタは“1100"を設定する。更に否定条件をバイト
2の“b"に付加させるために、否定条件フラグレジスタ
へは“1011"を設定する。本発明において、これらを設
定することで部分文字列と被検索文字列との比較結果を
バイト単位で任意に論理反転することができるので、従
来は実現できなかつた否定条件を含む部分文字列 の照合を実現することが可能となる。
第11図は、検索された部分文字列に否定条件の設定が
あることを検出する機能を追加した実施例である。
本実施例では、部分文字列が検索され一致信号線216
−0がh0=1となつた場合に、否定条件設定フラグレジ
スタの内容に“0"が少なくとも1つ存在すれば、すなわ
ち部分文字列のどこかに否定条件が設定されていれば、
否定条件設定を含む部分文字列が検索されたことを検出
する論理回路部412−0の出力413−0がイネーブルとな
る。第11図は第9図と同様に検索文字列“my"を設定す
る場合の実施例である。この場合には否定条件の設定が
ないので、否定条件フラグレジスタへは“1111"を設定
し、CAMレジスタにおける照合結果の論理反転は行なわ
ないようにする。従つて、否定条件設定を含む部分文字
列が検索されたことを検出する論理回路部412−0の出
力413−0は、常にデイスイネーブルとなる。
第12図は第11図の否定条件設定の検出機能を追加した
実施例における、否定条件を含んだ部分文字列の設定例
である。第10図と同様に を部分文字列として実際に設定する場合を例として示
す。否定条件フラグレジスタへ“1011"が設定されてい
るので、部分文字列が検索されると否定条件設定を検出
する論理回路部412−0の出力413−0はイネーブルとな
る。
第13図はCAMを用いた並列比較器における終了コード
検出手段の実施例である。否定条件フラグレジスタがな
い点を除けば、構成、終了コードの設定方法、および動
作は、並列比較器と同様である。ただし、並列比較器に
おける一致信号が、終了コード検出手段においては終了
信号(trm_sig.)216−16として制御論理ブロツクへと
伝達される。
第13図に示したのは、終了コードとして“FFE0"を設
定した例である。この終了コードの有効文字数を変更す
る場合、あるいは全く終了コードを使用しない場合に
は、バリツドフラグレジスタレジスタ400−16の設定を
変えることで対応できる。
第14図はCAMレジスタのかわりに、レジスタ207と比較
回路208とを用いた第2の実施例である。
本実施例においては、入力バツフア102に取り込んだ
部分文字列を、設定モードにおいて一度レジスタ207に
蓄えた後に、比較モードに切り替えてレジスタ207と入
力バツフア102とから比較回路208へデータを送り比較照
合を行う。各比較回路における比較動作は同時に行なわ
れ、その結果は212として照合結果を統合する論理回路
部203へ送られる。バリツドフラグレジスタ400、否定条
件フラグレジスタ410の操作、およびこれらを反映した
出力信号によるバイトごとの照合結果を統合する論理回
路部203、部分文字列の全バイト無効指定を検出する論
理回路部204、部分文字列の最終的な照合結果を得る論
理回路部205の動作は、第7図の実施例と同様である。
すなわち本実施例においても任意の長さの部分文字列を
設定することができ、また部分文字列として否定条件を
含む文字や、可変長のdon′t care文字を設定すること
も可能で、柔軟な並列比較照合処理を実現できるという
効果が得られる。
第15図にレジスタとバリツドフラグレジスタへ部分文
字列を設定する際の従来例を示す。第8図と同様に、検
索文字列“my"を設定する場合、“my"をバイト3とバイ
ト2に設定し、バイト1、及びバイト0のブランクを無
効とするために、バリツドフラグv3,v2,v1,v0をそれぞ
れ“1"“1"“0"“0"に設定する。こうすることにより、
検索文字列が設定されていないバイト1とバイト0の照
合結果は、常に“1"となるため、バイト3及びバイト2
の“my"の照合結果だけで、一致信号線h0の出力が定ま
ることになる。
第16図は、第14図の並列比較器の第2の実施例の、CA
Mレジスタのかわりにレジスタと比較回路とを用いた実
施例を示したものである。これは第15図と同様の部分文
字列を設定する場合を示している。検索文字列“my"お
よびバリツドフラグレジスタ設定データ“1100"をそれ
ぞれ設定する。更にこの場合は否定条件の設定がないの
で、否定条件設定フラグレジスタ(EF0)410−0へは
“1111"を設定し、比較回路における照合結果の論理反
転は行なわないようにする。
第17図は、第14図の並列比較器の第2の実施例におけ
る、否定条件を含んだ部分文字列を設定した場合の説明
図である。第5図において並列比較器内に設定されてい
る部分文字列 を、部分文字列として実際に設定する場合を例として示
す。
まず、否定条件を取り除いた部分文字列“ab"をレジ
スタのバイト3とバイト2に設定する。バイト1、バイ
ト0のブランクを無効とするために、バリつドフラグレ
ジスタ(VF0)400−0へは“1100"を設定する。更に否
定条件をバイト2の“b"に付加させるために、否定条件
フラグレジスタ(EF0)410−0へは“1011"を設定す
る。本発明において、これらを設定することで、従来は
実現できなかつた否定条件を含む部分文字列 の照合を実現することが可能となる。
第18図は、並列比較器の第2の実施例に、検索された
部分文字列に否定条件の設定があることを検出する機能
を追加した実施例である。
本実施例では、部分文字列が検索され一致信号線216
−0がh0=1となつた場合に、否定条件設定フラグレジ
スタ(EF0)410−0の内容に“0"が少なくとも1つ存在
すれば、すなわち部分文字列のどこかに否定条件が設定
されていれば、否定条件設定を含む部分文字列が検索さ
れたことを検出する論理回路部412−0の出力413−0が
イネーブルとなる。本図は第16図と同様に検索文字列
“my"を設定する場合を示している。この場合には否定
条件の設定がないので、否定条件フラグレジスタ(EF
0)410−0へは“1111"を設定し、比較回路における照
合結果の論理反転は行なわないようにする。従つて否定
条件設定を含む部分文字列が検索されたことを検出する
論理回路部412−0の出力413−0は、常にデイスイネー
ブルとなる。
第19図は、否定条件設定の検出機能を追加した第18図
の実施例における、否定条件を含んだ部分文字列の設定
例を示したものである。第17図と同様に を部分文字列として実際に設定する場合を例として示
す。否定条件フラグレジスタへ“1011"が設定されてい
るので、部分文字列が検索されると否定条件設定を検出
する論理回路部412−0の出力413−0はイネーブルとな
る。
第20図はレジスタと比較回路を用いた並列比較器にお
ける、終了コード検出手段の実施例である。否定条件フ
ラグレジスタがないことを除けば、構成、終了コードの
設定方法、および動作は、レジスタと比較回路を用いた
並列比較器と同様である。ただし、並列比較器における
一致信号が、終了コード検出手段においては終了信号
(trm_sig.)216−16として制御論理ブロツクへと伝達
される。
本図に示したのは、終了コードとして“FFE0"を設定
した例である。この終了コードの有効文字数を変更する
場合、あるいは全く終了コードを使用しない場合には、
バリツドフラグレジスタ400−16の設定を変えることで
対応できる。
第21図は部分文字列設定のための入力ポート、バリツ
ドフラグレジスタ、否定条件フラグレジスタ設定のため
の入力ポート、および被検索文字列の入力ポートを共有
する構成の第1の実施例である。
アクセスモードは、CAMレジスタ201またはバリツドフ
ラグレジスタ400、否定条件フラグレジスタ410からのデ
ータ読みだし(リードモード)、それらへのデータ書き
込み(ライトモードまたは設定モード)、および被検索
文字列と部分文字列との照合(コンペアモードまたは比
較モード)の3種である。データポート150はリードモ
ードではデータ出力ポートとして、ライトモードおよび
コンペアモードではデータ入力ポートとして機能する。
またCAMレジスタ201−0〜201−15とバリツドフラグレ
ジスタ400−0〜400−15、否定条件フラグレジスタ410
−0〜410−15はアドレス付けされており、リードモー
ド、ライトモードにおいてアドレスポート160からのア
ドレス入力で、デコーダ161を介して任意のものを選択
することができる。
次に各モードでのデータの流れを説明する。
リードモードでは、任意のCAMレジスタ201−0〜201
−15またはバリツドフラグレジスタ400−0〜400−15、
否定条件フラグレジスタ410−0〜410−15をアドレスで
指定し、その内容を出力データバス上へのせ、出力バツ
フア142のゲートを開けてデータ140を読みだす。
ライトモードでは、入力バツフア102のゲートを開け
てデータを入力データバス上へのせ、任意のCAMレジス
タ201−0〜201−15またはバリツドフラグレジスタ400
−0〜400−15、否定条件フラグレジスタ410−0〜410
−15をアドレスで指定し、その内部へ入力データバス上
のデータ130をラツチする。
コンペアモードでは、入力バツフア102のゲートを開
けてデータ130を入力データバス上へのせ、特定のCAMレ
ジスタ201−0〜201−15やバリツドフラグレジスタ400
−0〜400−15、否定条件フラグレジスタ410−0〜410
−15が選択されることのないようにアドレスを設定し
て、すべてのCAMレジスタ201−0〜201−15へバス上の
データを分配し、ラツチされている部分文字列との照合
を行なう。
上記の各モードでポートを共有することにより、半導
体集積回路上のパツド数を減少させることができる。従
つてチップ面積増大やピン数増加の対策として有効であ
る。
第22図は第21図と同様に、部分文字列設定のための入
力ポート、バリツドフラグレジスタ、否定条件フラグレ
ジスタ設定のための入力ポート、および被検索文字列の
入力ポートを共有する構成の第2の実施例である。これ
は第21図のCAMレジスタのかわりに、レジスタと比較回
路とを用いて構成したもので、動作及び効果は第21図の
実施例と同様で、チツプ面積増大やピン数増加の対策と
して有効である。
第23図にコード変換器107の実施例を示す。
本実施例は、 並列比較器106からの一致信号(h0〜h15)230を入力信
号とし、これを状態コード231に変換するプライオリテ
イーエンコーダ220、やはり一致信号230を入力信号と
し、一致信号のすべてがデイスイネーブルであること、
すなわち被検索文字列中に部分文字列が全く見つからな
かつたことを検出する論理221、イネーブルが少なくと
も1つはあること、すなわち被検索文字列中にいずれか
の部分文字列が見つかつたことを検出する論理222、 から構成される。
プライオリテイーエンコーダ220は一致信号(h0〜h1
5)230に優先度を付けてエンコードするエンコーダで、
複数の一致信号がイネーブルとなる場合に、優先度の高
いものから一つずつエンコードして状態コード231に変
換する。状態コード231は一旦状態コードキユー109に蓄
えられ、有限オートマトン実行手段104へ送られる。こ
こで検索文字列の後半部分との比較照合処理が行われ
る。また、並列比較器106での一致検出状況230を監視す
る論理の出力232,233は、状態コード231をセレクタ108
へ転送する条件の判断に用いられる。すなわち、少なく
とも1つは部分文字列が見つかつたことを示すヒツト信
号233が“1"である場合に、状態コード231はセレクタ10
8へ転送される。また、該ヒツト信号233とその否定であ
るノンヒツト信号232の論理和は毎サイクル“1"となる
ので(毎サイクル終了時にリセツトされる)、これをタ
イミング信号としてデータ転送の同期制御を行なう。
本発明の第2の実施例のブロツク図を第24図に示す。
本実施例は第1の実施例(第2図)から状態コードキ
ユー109を取り除いたものであり、 被検索文字列101を取り込む入力バツフア102、入力文字
コード130と予め設定された複数の部分文字列とを一括
照合する並列比較器106、並列比較器内のバリツドフラ
グレジスタ400、否定条件フラグレジスタ410、並列比較
器での比較の結果、検索文字列の部分文字列との一致が
検出されたことを知らせる一致信号131を、状態コード1
32に変換するコード変換器107、有限オートマトン実行
手段104へ入力する状態コード134の選択をする入力セレ
クタ108、オートマトン動作を実現するオートマトン実
行手段104、これに入力する文字コード135を蓄える文字
コードバツフア103、オートマトンの状態遷移の制御情
報を格納した状態遷移テーブル110、出力する検索結果1
11を保持する出力バツフア105 から構成される。
本実施例の動作は第1の実施例とほぼ同様である。し
たがつて、第1の実施例と同様に検索文字列の部分文字
列の一致が検出されるまで並列比較器のみで処理でき、
文字列検索処理の非常に多くの部分をテーブルアクセス
なしで比較処理のみで行うことができる。このため検索
処理全体の速度を向上させることが可能となる。さらに
並列比較器内の照合制御レジスタによつて、先頭照合処
理においても柔軟な照合処理が可能である。
本実施例では、まず並列比較器106で検索文字列の部
分文字列との一致検出が行なわれる。一致が検出される
と一致信号131は状態コード132に変換されて、セレクタ
108を経て、有限オートマトン実行手段104へ転送され
る。そしてこれ以降入力された比検索文字列に対して
は、並列比較器106の比較結果は参照せず、有限オート
マトン実行手段104と状態遷移テーブル110とで、オート
マトンの実行を行なう。セレクタ108は状態遷移テーブ
ル110からの次状態コード138を選択して、有限オートマ
トン実行手段104へ転送する。以上の動作が入力文字コ
ードに対して次々と繰り返され、後方照合が行なわれ
る。一方検索文字列が検索された場合や、初期状態へ遷
移するフェイルが発生した場合には、再び並列比較器10
6で先頭照合処理が行なわれる。
これらの一連の処理の実行は、並列比較部10と有限オ
ートマトン実行部11の処置がシーケンシャルに実行され
るので、並列度に関しては第1の実施例よりも劣る。し
かし、全体に占める先頭照合の処理の比率が高い場合に
は、本実施例でも十分高速化の効果があり、さらに状態
コードキユー109とそれを制御するハードウエア量の削
減の効果や、制御方式の簡略化による処理速度向上の効
果がある。また制御方式が簡略であるため、並列比較器
106や状態遷移テーブル110、各種バツフアを独立チツプ
として切り出して、全体をマルチチツプ構成とし、より
大規模なシステム構成とすることも容易となる。
本発明の第3の実施例のブロツク図を第25図に示す。
本実施例は、第1の実施例における有限オートマトン実
行手段104としてCPUを利用したものである。
本実施例の構成は、入力バツフア102,文字コードバツ
フア103,並列比較器106,コード変換器107,入力セレクタ
108,状態コードキユー109,バリツドフラグレジスタ400,
否定条件フラグレジスタ410までは第1の実施例と同様
である。しかし有限オートマトン実行手段としてCPU112
を用いているため、文字コードバツフア103と状態コー
ドキユー109はCPU112のメモリ空間にマツピングされて
いる。これらの出力は内部バス113に接続され、これを
介してCPU112のデータバスへ接続されている。CPU112で
実行するオートマトンの制御情報を格納する状態遷移テ
ーブル114へは、アドレスを指定してアクセスする。こ
の結果、テーブルの内容である次状態は内部バス113へ
返され、セレクタ108を経て状態コードキユー109へ蓄え
られる。このとき、検索文字列との一致検出を示す状態
が得られれば、これに対応する検索結果111がCPU112か
ら内部バス113を介して出力バツフア105へ書き出され
る。以上の処理において、システム全体の制御、内部バ
ス113の制御、また並列比較器106,状態遷移テーブル114
へのデータ設定はCPU112が行なう。
本実施例においても第1の実施例と同様、並列比較器
106での部分文字列の比較処理がテーブルアクセスなし
で行なえるので、検索処理全体の速度が向上するという
効果が得られる。さらに並列比較器内の照合制御レジス
タによつて、先頭照合処理においても柔軟な照合処理が
可能になるという効果も得られる。
本発明の第4の実施例のブロツク図を第26図に示す。
本実施例は、第3の実施例における文字コードバツフア
103(第25図)と状態コードキユー109(第25図)と状態
遷移テーブル114(第25図)をCPU112の管理下にあるメ
モリ空間に割り付ける構成をとつたものである。
本実施例の構成は、入力バツフア102、並列比較器10
6,コード変換器107,バリツドフラグレジスタ400,否定条
件フラグレジスタ410までは第3の実施例と同様であ
る。しかし第3の実施例における文字コードバツフア10
3(第25図)を介した内部バス113(第25図)への接続、
入力セレクタ108(第25図)と状態コードキユー109(第
25図)を介して内部バス113(第25図)への接続が、そ
れぞれ直接、内部バス113へ接続された形になつてい
る。そして文字コードバツフア116と状態コードキユー1
17は、状態遷移テーブル115を含むメモリ空間内の一部
として配置されている。これらは内部バス113を介し
て、CPU112からアドレス指定によりアクセスすることが
できる。
被検索文字列101中からの検索文字列の一連の比較照
合処理は、第3の実施例と同様に行なわれる。その際の
内部バス113の制御は、CPU112が行なう。
本実施例においても第1,第2,第3の実施例と同様、並
列比較器106での部分文字列の比較処理がテーブルアク
セスなしで行なえるので、検索処理全体の速度が向上す
るという効果が得られる。さらに並列比較器内の照合制
御レジスタによつて、先頭照合処理においても柔軟な照
合処理が可能になるという効果も得られる。
本発明の第5の実施例のブロツク図を第27図に示す。
本実施例は第4の実施例に検索結果参照テーブル118を
追加した構成となつている。
検索結果参照テーブル118は、状態遷移テーブル115、
文字コードバツフア116、状態コードキユー117と同様に
CPU112管理下のメモリ空間内に配置され、CPU112からア
ドレス指定によりアクセスすることができる。
本実施例においては、比較照合処理により被検索文字
列101と検索文字列との一致検出を示す状態が得られた
場合に、CPU112が検索結果参照テーブル118の該当アド
レスから検索結果111の一部として付加する情報を得
て、出力バツフア105へ書き出す。検索結果参照テーブ
ル118には、一連の検索処理の終了を知らせるターミネ
ータや、次段に接続するハードウエアへ渡すための、種
々の制御情報も格納されており、これらも必要に応じて
出力バツフア105へ書き出される。
検索結果参照テーブル118の内容は書き換え可能とす
ることにより、ユーザプログラマブルにすることができ
る。このため異なつた処理ごとに、あるいはチツプごと
に、その内容を任意に設定することが可能である。
従つて本実施例においては、検索結果111のデータフ
ォーマツトや内容を任意に設定することが可能であるの
で、様々なシステム構成やインターフェイスに柔軟に対
応することができるという効果が得られる。さらに、本
実施例においても第1,第2,第3,第4の実施例と同様、並
列比較器106での部分文字列の比較処理がテーブルアク
セスなしで行なえるので、検索処理全体の速度が向上す
るという効果が得られる。さらに並列比較器内の照合制
御レジスタによつて、先頭照合処理においても柔軟な照
合処理が可能になるという効果も得られる。
第28図は、照合フラグレジスタの設定をコマンドで行
なう実施例の構成を示す図である。本実施例は、 照合フラグレジスタ設定コマンド420を取り込むコマ
ンドレジスタ421と、照合フラグレジスタ設定コマンド4
20を解析するコマンドデコーダ422と、コマンドデコー
ダ422の出力から、照合フラグレジスタへ設定するデー
タおよびデータ設定のための制御信号424とを生成する
制御回路423と から構成される。
照合フラグレジスタ設定コマンド420は、外部からコ
マンドレジスタ421へ入力され、更にコマンドデコーダ4
22に送られて解析される。解析結果に従つて制御回路42
3で照合フラグレジスタに設定するデータと、設定の際
に必要な制御信号を生成する。制御信号は設定データを
設定すべき照合フラグレジスタに対して、データラツチ
のタイミング制御を行なう。
照合フラグレジスタへのデータ設定をコマンド方式と
することによつて、複数のレジスタへ同時にデータを設
定することや、複数のレジスタを同時に無効にすること
が可能になるという効果が得られる。
第29図は、本発明の第1の実施例に、第28図のコマン
ド方式での照合フラグレジスタ設定回路を加えた第6の
実施例のブロツク図である。本実施例では、第1の実施
例の効果に加え、複数のレジスタへ同時にデータを設定
することや、複数のレジスタを同時に無効にすることが
可能になるという効果が得られる。
以下、第30図〜第33図は、本発明の第2〜第5の実施
例に、それぞれ第28図のコマンド方式での照合フラグレ
ジスタ設定回路を加えた第7〜第10の実施例のブロツク
図である。これらの実施例では第2〜第5の実施例の効
果に加え、複数のレジスタへ同時にデータを設定するこ
とや、複数のレジスタを同時に無効にすることが可能に
なるという効果が得られる。
〔発明の効果〕
本発明によれば、オートマトンを用いたフルテキスト
サーチによる文書検索の際に、有限オートマトン実行手
段の前段に並列比較器を置き先頭照合処理を高速化する
ことで、検索処理速度を向上させる検索方式において、
並列比較器内にバリツドフラグレジスタ以外に否定条件
フラグレジスタを設けることにより、語長の異なつた部
分文字列や、don′t care文字、否定条件文字を含む部
分文字列の設定が可能となる。これによつて、オートマ
トンを用いた高速な検索における部分文字列設定の自由
度を向上させ、1文字誤り許容検索や限定検索等の、よ
り柔軟性の高い曖昧検索を実現できるという効果が得ら
れる。
【図面の簡単な説明】
第1図(a),(b)は本発明における有限オートマト
ンを用いた文字列検索の原理の説明図、第2図は本発明
の第1の実施例の構成を示すブロツク図、第3図は検索
文字列の1文字誤りを許容する展開例の説明図、第4図
は第3図の展開された検索文字列を検索するためのオー
トマトンの説明図、第5図は第3図の検索文字列を検索
するための並列比較器と後方照合オートマトンの説明
図、第6図は第5図の並列比較器での部分文字列検索を
実現するための照合フラグレジスタおよび部分文字列の
設定例の説明図、第7図はCAMを用いた並列比較器の実
施例の説明図、第8図は従来のCAMを用いた並列比較器
への検索部分文字列の設定の仕方の説明図、第9図は本
発明におけるCAMを用いた並列比較器への検索部分文字
列の設定の仕方の説明図、第10図は本発明におけるCAM
を用いた並列比較器への否定条件を含む検索部分文字列
の設定の仕方の説明図、第11図は否定条件を含む検索文
字列の検出機能を持つCAMを用いた並列比較器への検索
部分文字列の設定の仕方の説明図、第12図は否定条件を
含む検索文字列の検出機能を持つCAMを用いた並列比較
器への否定条件を含む検索部分文字列の設定の仕方の説
明図、第13図はCAMを用いた並列比較器への終了コード
の設定の仕方の説明図、第14図はレジスタと比較器を用
いた並列比較器の実施例の説明図、第15図は従来のレジ
スタと比較器を用いた並列比較器への検索部分文字列の
設定の仕方の説明図、第16図は本発明におけるレジスタ
と比較器を用いた並列比較器への検索部分文字列の設定
の仕方の説明図、第17図は本発明におけるレジスタと比
較器を用いた並列比較器への否定条件を含む検索部分文
字列の設定の仕方の説明図、第18図は否定条件を含む検
索文字列の検出機能を持つレジスタと比較器を用いた並
列比較器への検索部分文字列の設定の仕方の説明図、第
19図は否定条件を含む検索文字列の検出機能を持つレジ
スタと比較器を用いた並列比較器への否定条件を含む検
索部分文字列の設定の仕方の説明図、第20図はレジスタ
と比較器を用いた並列比較器への終了コードの設定の仕
方の説明図、第21図はCAMを用いた並列比較器における
部分文字列、バリツドフラグレジスタ,否定条件フラグ
レジスタの設定ポートと被検索文字列の入力ポートとを
共有する実施例の説明図、第22図はレジスタと比較器を
用いた並列比較器における部分文字列、バリツドフラグ
レジスタ,否定条件フラグレジスタの設定ポートと被検
索文字列の入力ポートとを共有する実施例の説明図、第
23図はコード変換器の実施例の説明図、第24図は本発明
の第2の実施例の構成を示すブロツク図、第25図は本発
明の第3の実施例の構成を示すブロツク図、第26図は本
発明の第4の実施例の構成を示すブロツク図、第27図は
本発明の第5の実施例の構成を示すブロツク図、第28図
はコマンド方式での照合フラグレジスタ設定回路の説明
図、第29図は本発明の第6の実施例の構成を示すブロツ
ク図、第30図は本発明の第7の実施例の構成を示すブロ
ツク図、第31図は本発明の第8の実施例の構成を示すブ
ロツク図、第32図は本発明の第9の実施例の構成を示す
ブロツク図、第33図は本発明の第10の実施例の構成を示
すブロツク図、第34図は文字列検索システムの説明図、
第35図(a),(b)は本願発明者らが先に提案した方
式の原理の説明図である。 10…並列比較部、11…有限オートマトン実行部、12…有
限オートマトン、13…先頭照合オートマトン、14…後方
照合オートマトン、40…照合フラグレジスタ、101…被
検索文字列、102…入力バツフア、103,116…文字コード
バツフア、104…有限オートマトン実行手段、105…出力
バツフア、106…並列比較器、107…コード変換器、108
…セレクタ、109,117…状態コードキユー、110,114,115
…状態遷移テーブル、111,136…検索結果、112…CPU、1
13…内部バス、118…検索結果参照テーブル、130,135…
入力文字コード、131…一致信号、132,133,134…状態コ
ード、137…状態遷移テーブルアクセスアドレス、138…
遷移先の状態、140…照合フラグレジスタ格納データ、1
42…出力バツフア、150…データポート、160…アドレス
ポート、161…アドレスデコーダ、162…照合フラグレジ
スタ書き込み制御信号、400…バリツドフラグレジス
タ、410…否定条件フラグレジスタ、420…照合フラグレ
ジスタ設定コマンド、421…コマンドレジスタ、422…コ
マンドデコーダ、423…照合フラグレジスタへのデータ
設定の制御回路、424…照合フラグレジスタへの設定デ
ータと設定制御信号、810…オートマトン分割線。
フロントページの続き (72)発明者 加藤 寛次 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 畠山 敦 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 野口 孝樹 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 藤沢 浩道 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭63−187334(JP,A) 特開 昭63−228220(JP,A) 特開 昭63−73422(JP,A) 特開 昭62−44878(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 17/30 JICST科学技術文献ファイル

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】コード表現された記号で構成される被検索
    記号中に、検索対象記号列が存在するか否かを判定する
    記号列検索方法において、 検索対象記号列を被検索記号列中から検索する際、前記
    検索記号列を任意の位置で少なくとも二つの部分記号列
    に分割し、前記検索記号列の先頭部分を構成する前記部
    分記号列の照合である先頭照合処理を行い、上記先頭照
    合処理に関する検索条件を満足した検索記号列に対し
    て、残りの部分記号列の照合である後方照合処理を行
    い、後方照合処理の結果に関する検索条件を満足した場
    合に前記検索記号列が検索されたと判定し、前記先頭照
    合処理ではさらに上記先頭部分の部分記号列に関する検
    索条件として、特定の記号以外の記号を検索する否定条
    件を前記部分記号列中に設定して、先頭照合処理を行う
    ことを特徴とする記号列検索方法。
  2. 【請求項2】コード表現された記号で構成される被検索
    記号中に、検索対象記号列が存在するか否かを判定する
    記号列検索装置において、 (a)前記被検索記号列を入力する第1の外部情報アク
    セス手段と、 (b)前記第1の外部アクセス手段より入力された被検
    索記号列と前記検索記号列の先頭部分を構成する部分記
    号列と先頭照合処理を行うものであって、先頭照合処理
    を行う際は、前記部分記号列に関する検索条件として、
    特定の記号以外の全ての記号を検索するとの否定条件を
    前記部分記号列中に設定して行う先頭照合処理手段と、 (c)前記第1の外部情報アクセス手段より入力された
    前記被検索記号列と前記検索記号列の後方照合処理を行
    う後方照合処理手段と、 (d)前記後方照合処理手段で後方照合処理を制御する
    後方照合処理制御データを格納するデータ格納手段と、 (e)前記後方照合処理制御データを前記データ格納手
    段から前記後方照合処理手段に入力する第2の外部情報
    アクセス手段と、を備えたことを特徴とする記号列検索
    装置。
  3. 【請求項3】請求項2に記載の記号列検索装置におい
    て、 前記(a)乃至(e)のうち少なくとも2つを同一チッ
    プ上に集積した半導体集積回路を有することを特徴とす
    る記号列検索装置。
  4. 【請求項4】請求項2または3に記載の記号列検索装置
    において、 (f)前記第1の外部情報アクセス手段より入力された
    被検索記号列をバッファリングする入力バッファリング
    手段を有し、 前記先頭照合処理手段は、予め設定された複数の検索記
    号列と前記入力バッファリング手段でバッファリングさ
    れた被検索記号列の照合を並行して行うことを特徴とす
    る記号列検索装置。
  5. 【請求項5】請求項4に記載の記号列検索装置におい
    て、 前記先頭照合処理手段で照合を行う部分文字列に、前記
    部分文字列が有効か無効かを示すバリッドフラグレジス
    タを各記号毎に設定する手段を備え、前記先頭照合処理
    手段で照合する際は、前記バリッドフラグレジスタに基
    づいて照合を行うことを特徴とする記号列検索装置。
JP1268927A 1989-06-15 1989-10-18 記号列検索方法および検索装置 Expired - Fee Related JP2880199B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1268927A JP2880199B2 (ja) 1989-10-18 1989-10-18 記号列検索方法および検索装置
US08/349,124 US5452451A (en) 1989-06-15 1994-12-01 System for plural-string search with a parallel collation of a first partition of each string followed by finite automata matching of second partitions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1268927A JP2880199B2 (ja) 1989-10-18 1989-10-18 記号列検索方法および検索装置

Publications (2)

Publication Number Publication Date
JPH03131969A JPH03131969A (ja) 1991-06-05
JP2880199B2 true JP2880199B2 (ja) 1999-04-05

Family

ID=17465214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1268927A Expired - Fee Related JP2880199B2 (ja) 1989-06-15 1989-10-18 記号列検索方法および検索装置

Country Status (1)

Country Link
JP (1) JP2880199B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3275816B2 (ja) 1998-01-14 2002-04-22 日本電気株式会社 記号列検索方法及び記号列検索装置並びに記号列検索プログラムを記録した記録媒体
JP3613134B2 (ja) 2000-05-12 2005-01-26 日本電気株式会社 高速ターボデコーダ
KR101068678B1 (ko) * 2003-03-03 2011-09-30 파우스, 스테판, 씨. 스트링들을 검색하기 위한 방법 및 배열
KR100828038B1 (ko) * 2004-04-19 2008-05-08 더 리전트 오브 더 유니버시티 오브 캘리포니아 딥 패킷 필터링을 위한 프로그램 가능 하드웨어
WO2009093307A1 (ja) * 2008-01-22 2009-07-30 Fujitsu Limited 検索装置および検索方法

Also Published As

Publication number Publication date
JPH03131969A (ja) 1991-06-05

Similar Documents

Publication Publication Date Title
US5452451A (en) System for plural-string search with a parallel collation of a first partition of each string followed by finite automata matching of second partitions
US5168533A (en) Hierarchical presearch type text search method and apparatus and magnetic disk unit used in the apparatus
US5051947A (en) High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream
JP3672242B2 (ja) パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体
JPS5823375A (ja) デ−タ−処理システムにおけるキヤツシユの選択的クリア方法および装置
JPH02109167A (ja) 文字列検索方法及び装置
JP2986865B2 (ja) データ検索方法および装置
JPH04293161A (ja) 文書検索方法および装置
US10691964B2 (en) Methods and systems for event reporting
JP2960533B2 (ja) 記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ
JP2880199B2 (ja) 記号列検索方法および検索装置
JP3213244B2 (ja) データ圧縮方法およびデータ処理システム
JP2000200287A (ja) 文書検索装置
US5519860A (en) Central processor index sort followed by direct record sort and write by an intelligent control unit
JP2825009B2 (ja) 記号列検索方法および装置
JPH1027183A (ja) データ登録方法および装置
JPH05101102A (ja) 検索装置
JP3141428B2 (ja) 数値検索装置およびその方法
JPH04308B2 (ja)
JPH04169973A (ja) 記号列検索方法および装置
JPH0752450B2 (ja) 辞書デ−タ検索装置
JP2772125B2 (ja) 辞書検索方式
JPH043251A (ja) 文書検索方法および文書検索処理装置
JPS6373422A (ja) 情報検索装置
WO2014207416A1 (en) Method and system for searching and storing data

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees