JPH06162083A - Character-string retrieving device - Google Patents
Character-string retrieving deviceInfo
- Publication number
- JPH06162083A JPH06162083A JP4306748A JP30674892A JPH06162083A JP H06162083 A JPH06162083 A JP H06162083A JP 4306748 A JP4306748 A JP 4306748A JP 30674892 A JP30674892 A JP 30674892A JP H06162083 A JPH06162083 A JP H06162083A
- Authority
- JP
- Japan
- Prior art keywords
- character
- output
- character string
- character code
- filtering
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は情報処理システム、特に
情報検索システムにおける検索タームの照合方法に係
り、テキスト文字列から検索タームとして指定された複
数の部分文字列が存在するか否かを一括して探索する文
字列検索装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing system, and more particularly to a method of collating search terms in an information retrieval system, which collectively checks whether or not a plurality of partial character strings designated as a search term from a text character string exist. The present invention relates to a character string search device for searching.
【0002】[0002]
【従来の技術】情報処理システムの分野では、文字列デ
ータの集まりからなる文書(以後、テキストと呼ぶ)の
中から、検索者の探したい言葉、すなわち、ある特定の
文字列(以後、検索タームと呼ぶ)を含む全ての文書を
探し出すことが一つの重要な処理となっている。2. Description of the Related Art In the field of information processing systems, a word that a searcher wants to search, that is, a specific character string (hereinafter referred to as a search term) is selected from a document (hereinafter referred to as a text) that is a collection of character string data. It is one of the important processes to find all the documents including.
【0003】このような検索システムを実現するための
文字列検索装置がいくつか提案されている。その中の代
表的な文字列検索装置の構成(エル エー ホラー :
“テキスト リトリーバル コンピューターズ”,コン
ピューター,1979年 3月,L.A. Hollaar:“Text
Retrieval Computers”,COMPUTER,March 1979))を
図2に示し、その内容について説明する。Several character string search devices for realizing such a search system have been proposed. The structure of a typical character string search device (LAE Horror:
"Text Retrieval Computers", Computers, March 1979, LA Hollaar: "Text
Retrieval Computers ", COMPUTER, March 1979)) is shown in FIG.
【0004】図2に示すように、文字列検索装置1にお
いて、検索制御手段101は、検索装置全体の制御と、
ホストコンピュータとの通信を行う。すなわち、ホスト
コンピュータから送られてくる検索要求201を受け付
け、これを解析し、文字列照合手段102と複合条件判
定手段103へ検索制御情報202として送出する。ま
た、検索制御手段101は記憶装置制御手段104を制
御して、文字列記憶手段105に格納された文字列デー
タ204を文字列照合手段102へ読み出す。As shown in FIG. 2, in the character string search device 1, the search control means 101 controls the search device as a whole.
Communicates with the host computer. That is, the search request 201 sent from the host computer is accepted, analyzed, and sent as search control information 202 to the character string collating means 102 and the compound condition judging means 103. Further, the search control means 101 controls the storage device control means 104 to read the character string data 204 stored in the character string storage means 105 to the character string collating means 102.
【0005】文字列照合手段102は、入力文字列デー
タ204の中に検索要求201に合致する文字列、すな
わち、検索タームがあるかどうかを調べ、もし該当する
ものがあれば文字列を識別する情報205を複合条件判
定手段103へ出力する。複合条件判定手段103は文
字列識別情報205に関して、検索要求201中に指示
されたANDやORで構成される論理条件などが満足さ
れるか否かを調べる。指定された複合条件を満足する場
合には、該当する文書の識別情報や文書内容のテキスト
データを検索結果206としてホストコンピュータへ返
送する。The character string collating means 102 checks whether or not there is a character string that matches the search request 201, that is, a search term, in the input character string data 204, and if there is a corresponding character string, identifies the character string. The information 205 is output to the composite condition determination means 103. The compound condition determination means 103 checks whether or not the character string identification information 205 satisfies the logical condition or the like constituted by AND or OR specified in the search request 201. When the specified composite condition is satisfied, the identification information of the corresponding document and the text data of the document content are returned to the host computer as the search result 206.
【0006】文字列検索装置1の要となる文字列照合手
段102における文字列の照合方式として、複数の文字
列を1回のテキスト走査で探索する有限オートマトンを
用いた方法が知られている。また、この有限オートマト
ンを高速に実行するためのハードウェアは、特開平3−9
5672号公報が開示されている。As a character string collating method in the character string collating means 102, which is an essential part of the character string retrieving apparatus 1, a method using a finite automaton for searching a plurality of character strings by one text scanning is known. Further, hardware for executing this finite state automaton at high speed is disclosed in Japanese Patent Laid-Open No. 3-9
Japanese Patent No. 5672 is disclosed.
【0007】本従来例では、オートマトンのどの状態で
入力文字と照合すべきかをトークンというマークを置く
ことにより示している。すなわち、入力テキストから1
文字入力されると、トークンが置かれている状態につい
てそれぞれ照合が行われる。また、トークンは入力文字
コードが入力されると必ず初期状態で生成される。ただ
し、照合の結果、遷移すべき状態がなかった場合には、
そのトークンを消滅させる。遷移先状態の決定はトーク
ンが置かれた状態の状態番号と入力文字コードをアドレ
スとして状態遷移テーブルを参照することによって行わ
れる。したがって、オートマトンの中に複数のトークン
が存在する場合には、1文字の入力に対して、複数回状
態遷移テーブルが参照されることになる。その結果、照
合スループットが数分の一に落ちてしまうという問題が
生じる。In this conventional example, the state of the automaton to be matched with the input character is indicated by placing a mark called a token. Ie 1 from the input text
When a character is entered, each state in which the token is placed is verified. Also, the token is always generated in the initial state when the input character code is input. However, if there is no transition state as a result of the collation,
Extinguish the token. The transition destination state is determined by referring to the state transition table using the state number of the state in which the token is placed and the input character code as an address. Therefore, when there are a plurality of tokens in the automaton, the state transition table is referred to a plurality of times for one character input. As a result, there arises a problem that the matching throughput drops to a fraction.
【0008】このように1文字の照合処理に複数のトー
クンが存在する場合の照合動作について、図3のオート
マトンを用いて説明する。本オートマトンは“インタフ
ェース”と、この異表記である“インターフェース”,
“インターフェ−ス”,“インターフェイス”,“イン
タ−フェース”,“インタ−フェ−ス”,“インタ−フ
ェイス”,“インタフェ−ス”、および“インタフェイ
ス”を一括して照合するためのものである。The collating operation when a plurality of tokens are present in the one character collating process will be described with reference to the automaton shown in FIG. This automaton is called "interface" and this different expression "interface",
"Interface", "interface", "interface", "interface", "interface", "interface", and "interface" for collating collectively It is a thing.
【0009】入力テキストとして“インタフェイス”が
入力された場合には、図4に示すようにトークンが移動
する。まず、“イ”が入力されると新たにトークン1が
初期状態である状態0に生成される。状態0には“イ”
による遷移が記述されている(図3参照)ため照合が成
立したことになり、トークン1は状態1へ移動する。When "interface" is input as the input text, the token moves as shown in FIG. First, when "a" is input, a new token 1 is generated in the initial state of state 0. "A" in state 0
Since the transition due to is described (see FIG. 3), the matching is established, and token 1 moves to state 1.
【0010】次の“ン”が入力されるとさらに新たにト
ークン2が状態0で生成されるが、ここには“ン”によ
る遷移が記述されていないため照合が不成立となりトー
クン2は消滅する。また状態1へ移動していたトークン
1については、状態1で“ン”と照合される。この場
合、照合が成立するため状態2へ移動する。この場合
は、このように1文字について2回の照合動作が行われ
ることになる。When the next "n" is input, a new token 2 is generated in state 0. However, since the transition by "n" is not described here, the collation fails and the token 2 disappears. . Further, the token 1 that has moved to the state 1 is collated with “n” in the state 1. In this case, since the matching is established, the state moves to state 2. In this case, the collation operation is performed twice for each character in this way.
【0011】同様にして“タ”,“フ”、および“ェ”
が入力されるにしたがって、トークン1は状態3から状
態5,状態6へと移動する。この間、初期状態ではトー
クン3〜5も同様に発生するが、照合が成立しないため
消滅する。Similarly, "ta", "fu", and "e"
Is input, the token 1 moves from the state 3 to the states 5 and 6. During this period, tokens 3 to 5 are also generated in the initial state, but they disappear because the verification is not established.
【0012】このようにして、引き続き入力される
“イ”や“ス”についても同様の処理が行われる。In this way, the same processing is performed for "i" and "s" that are successively input.
【0013】結果的に、この例では以上の照合動作過程
で、7文字のテキスト入力により14回の照合が発生す
る。As a result, in this example, in the above collation operation process, the collation is performed 14 times by the text input of 7 characters.
【0014】上述した文字列照合処理を実施する上記従
来例の文字列照合手段102を図5に示す。本文字列照
合手段102はレジスタ211と250,251,状態
遷移テーブル220,照合結果テーブル260,セレク
タ261,ゲート262,マルチプレクサ263,バッ
ファ280,281、およびコンパレータ252から構
成される。FIG. 5 shows the conventional character string collating means 102 for carrying out the above-mentioned character string collating process. The character string collating means 102 includes registers 211 and 250, 251, a state transition table 220, a collation result table 260, a selector 261, a gate 262, a multiplexer 263, buffers 280, 281, and a comparator 252.
【0015】以下、本文字列照合手段102の照合動作
の概略を説明する。An outline of the collating operation of the character string collating means 102 will be described below.
【0016】入力テキスト204は1文字ずつレジスタ
211に格納される。レジスタ211から出力される文字
コード302は、状態遷移テーブル220にアドレス情
報として入力される。状態遷移テーブル220は現在の
状態番号305と文字コード302をアドレスとして参
照され、ここから次に遷移すべき遷移先状態番号303
(以後、次状態番号と呼ぶ)が読み出され、レジスタ2
50に格納される。The input text 204 is stored in the register 211 character by character. The character code 302 output from the register 211 is input to the state transition table 220 as address information. The state transition table 220 is referred to by using the current state number 305 and the character code 302 as addresses, and the transition destination state number 303 to which the next transition is to be made
(Hereinafter referred to as the next state number) is read, and the register 2
Stored in 50.
【0017】本従来例では次状態番号303をトークン
の識別子として使用している。このトークンの識別子と
なる次状態番号303は、ゲート262およびマルチプ
レクサ263を介してトークンの存在位置を表す情報と
してバッファ280あるいはバッファ281のいずれか
選択されている方へ格納される。状態遷移テーブル22
0から出力される次状態番号303が0(ゼロ)、すな
わち、初期状態番号であるときは、トークンの移動先が
ないことを表す。このため、次状態番号303が初期状態
番号0の場合は、トークンを消滅させる必要がある。こ
の制御は、コンパレータ252とゲート262によって
行われる。In this conventional example, the next state number 303 is used as the token identifier. The next state number 303, which is the identifier of this token, is stored via the gate 262 and the multiplexer 263 in the buffer 280 or the buffer 281 that is selected as information indicating the location of the token. State transition table 22
When the next state number 303 output from 0 is 0 (zero), that is, the initial state number, it means that there is no token move destination. Therefore, when the next state number 303 is the initial state number 0, it is necessary to erase the token. This control is performed by the comparator 252 and the gate 262.
【0018】すなわち、トークンを消滅させるか否かの
判断はコンパレータ252で行なわれ、トークンを消滅
させるか否かの制御はゲート262によって行なわれ
る。That is, the comparator 252 determines whether or not to erase the token, and the gate 262 controls whether or not to erase the token.
【0019】具体的には、次の状態番号303が初期状
態番号0(ゼロ)である場合には、コンパレータ252
でレジスタ251に格納された状態番号0(初期状態番
号)との比較の結果が等しくなるため、ゲート262が
閉じられ、ゲート262で次状態番号303はマルチプ
レクサ263へ送られることなく消滅することになる。
逆に、次の状態番号303が初期状態番号0(ゼロ)で
ない場合には、次の状態番号303はゲート262から
マルチプレクサ263に送出され、トークンとして保存
されることになる。Specifically, when the next state number 303 is the initial state number 0 (zero), the comparator 252
Since the result of comparison with the state number 0 (initial state number) stored in the register 251 becomes equal, the gate 262 is closed, and the next state number 303 disappears in the gate 262 without being sent to the multiplexer 263. Become.
On the contrary, when the next state number 303 is not the initial state number 0 (zero), the next state number 303 is sent from the gate 262 to the multiplexer 263 and stored as a token.
【0020】バッファ280と281には初期値として
初期状態番号が先頭アドレスに格納されており、マルチ
プレクサ263を介して送られてきた次状態番号303
は初期状態の次のアドレスから格納される。こうするこ
とにより、初期状態にはトークンを常に存在させるよう
にしている。The buffers 280 and 281 store the initial state number as the initial value at the head address, and the next state number 303 sent through the multiplexer 263.
Is stored from the next address in the initial state. By doing this, the token always exists in the initial state.
【0021】バッファ280あるいはバッファ281の
いずれかに格納された次状態番号303は、次の文字コ
ード照合時に現状態番号305として読み出される。The next state number 303 stored in either the buffer 280 or the buffer 281 is read out as the current state number 305 at the next character code matching.
【0022】セレクタ261ではバッファ280あるい
はバッファ281の内、トークン、すなわち、次状態番
号303が格納されている方のバッファが選択され、こ
こから現状態番号305が、逐次、読み出される。すべ
て読み出し終わったところで読み出し終了信号307が
生成される。マルチプレクサ263とセレクタ261は
同期しており、マルチプレクサ263がバッファ280
を選択しているときには、セレクタ261はバッファ2
81を選択する。また、マルチプレクサ263がバッフ
ァ281を選択しているときには、セレクタ261はバ
ッファ280を選択する。すなわち、遷移元となる状態
におけるトークン(現状態番号として一方のバッファに
格納されている)が格納されているバッファとは別のバ
ッファに、遷移先の状態へ移すべきトークンを次状態番
号303として格納するようにしている。The selector 261 selects one of the buffer 280 or the buffer 281 in which the token, that is, the next state number 303 is stored, and the current state number 305 is sequentially read therefrom. The read end signal 307 is generated when all the data are read. The multiplexer 263 and the selector 261 are synchronized with each other, and the multiplexer 263 causes the buffer 280 to operate.
Is selected, the selector 261 selects the buffer 2
Select 81. Further, when the multiplexer 263 is selecting the buffer 281, the selector 261 selects the buffer 280. That is, the token to be transferred to the transition destination state is set as the next state number 303 in a buffer different from the buffer in which the token in the transition source state (stored in one buffer as the current state number) is stored. I am trying to store it.
【0023】バッファ280および281の切り換え
は、セレクタ261によって選択されたバッファ280
又は281のいずれかの読み出しが終了した時点、すな
わち読出し終了信号307が発生したタイミングで行わ
れる。レジスタ211には、通常、レジスタ250と同
期してテキストから文字コードが取り込まれるが、読出
し終了信号307が発生するまで文字コードが保持さ
れ、遷移先のトークン、すなわち、現状態番号がバッフ
ァからすべて読み出されるまで次の入力を待つことにな
る。照合結果テーブル260には検索タームの終端とな
る状態(以後、終端状態とよぶ)に対応して各検索ター
ムを識別するための所定の検索ターム番号が格納され、
それ以外の状態には0(ゼロ)が格納されている。すな
わち、状態番号に対応して照合結果テーブル260から
出力される検索ターム番号が0以外のときのみ照合結果
205として意味を持つことになる。Switching of the buffers 280 and 281 is performed by switching the buffer 280 selected by the selector 261.
Alternatively, it is performed at the time when the reading of any one of 281 or 281 is completed, that is, at the timing when the reading end signal 307 is generated. The character code is normally fetched from the text in the register 211 in synchronization with the register 250, but the character code is held until the read end signal 307 is generated, and the token of the transition destination, that is, the current state number is all stored in the buffer. It waits for the next input until it is read. The collation result table 260 stores a predetermined search term number for identifying each search term corresponding to a state that will be the end of the search term (hereinafter, referred to as an end state).
0 (zero) is stored in the other states. That is, the matching result 205 is meaningful only when the search term number output from the matching result table 260 corresponding to the state number is other than 0.
【0024】以上の一連の動作が入力テキストを構成す
る各文字毎に繰返し行われることにより文字列照合処理
が実現される。The character string collating process is realized by repeating the above series of operations for each character constituting the input text.
【0025】このように、本引例では一つのトークンの
照合時に1回の状態遷移テーブル参照が行われる。した
がって、図4の照合動作例では、7文字のテキスト入力
において14回のトークンに対して照合が行われ、14
回の状態遷移テーブルの参照が発生する。つまり、1文
字に対し平均2回の状態遷移テーブルの参照が行われる
ことになる。このため、1文字に対し1回の照合で済ま
せる場合に比較して、照合スループットが約半分に低下
してしまうという問題が生じる。As described above, in this reference, the state transition table is referenced once when matching one token. Therefore, in the collation operation example of FIG. 4, the collation is performed on the token 14 times in the text input of 7 characters.
The state transition table is referenced twice. That is, the state transition table is referred to twice for each character on average. Therefore, there is a problem that the matching throughput is reduced to about half as compared with the case where only one matching is performed for one character.
【0026】このように、文字列照合手段102の負荷
増大による文字列検索装置としての照合スループットの
低下を防ぐ方法として特願平4−63067号明細書が提案さ
れている。As described above, Japanese Patent Application No. 4-63067 has been proposed as a method for preventing the collation throughput of the character string search device from decreasing due to the increased load of the character string collating means 102.
【0027】上記従来例における文字列検索装置の構成
を図6に示す。FIG. 6 shows the configuration of the character string search device in the above conventional example.
【0028】本例では、文字列記憶手段105と文字列
照合手段102の間にフィルタリング手段300を設
け、文字列記憶手段105から読み出されたテキスト中
から検索タームに含まれない文字コードを切り捨てて、
検索タームに含まれる文字コードのみを文字列照合手段
102に送り、文字列照合手段102での無駄な照合動
作を省くことによって、等価的に照合スループットを向
上させようとするものである。すなわち、低速なメモリ
を使用した文字列照合手段102を用いても文字列検索
装置としての検索速度が低下しない安価な文字列照合装
置を提供しようとするものである。In this example, the filtering means 300 is provided between the character string storage means 105 and the character string collating means 102, and character codes not included in the search term are cut off from the text read from the character string storage means 105. hand,
Only the character code included in the search term is sent to the character string collating means 102, and unnecessary collating operation in the character string collating means 102 is omitted, so that the collating throughput is equivalently improved. That is, an object of the present invention is to provide an inexpensive character string collating device in which the search speed as a character string searching device does not decrease even if the character string collating means 102 using a low-speed memory is used.
【0029】本従来例におけるフィルタリング手段とし
て単一フィルタリング回路を用いた場合の実施例を図7
に示す。FIG. 7 shows an embodiment in which a single filtering circuit is used as the filtering means in this conventional example.
Shown in.
【0030】本単一フィルタリング回路300は、文字
コードレジスタ320,単一フィルタリングテーブル3
30、および出力ゲート360からなる単一文字出力回
路340から構成されている。The single filtering circuit 300 includes a character code register 320 and a single filtering table 3.
30 and a single character output circuit 340 including an output gate 360.
【0031】単一フィルタリングテーブル330は文字
コードをアドレスとしてアクセスされる一次元メモリで
ある。ここには、検索タームに含まれる文字コードに対
応して“1”が一致フラグとして格納されている。The single filtering table 330 is a one-dimensional memory which is accessed using a character code as an address. Here, "1" is stored as a match flag corresponding to the character code included in the search term.
【0032】例えば、検索タームとして“BUS”が与
えられた場合には、図8に示すような内容が単一フィル
タリングテーブル330に設定される。すなわち、検索
ターム“BUS”を構成する“B”,“U”および
“S”の各文字コードに対応するスロットに1が設定さ
れている。For example, when "BUS" is given as the search term, the contents shown in FIG. 8 are set in the single filtering table 330. That is, 1 is set in the slots corresponding to the respective character codes of "B", "U" and "S" that form the search term "BUS".
【0033】フィルタリング動作は、入力テキスト20
4から1文字ずつ文字コードを文字コードレジスタ32
0に取り込むことから始まる。The filtering operation is performed on the input text 20.
Character code register 32
It starts by taking in 0.
【0034】文字コードレジスタ320の出力である文
字コード310を参照アドレスとして単一フィルタリン
グテーブル330がアクセスされ、一致信号350が読
み出される。検索タームを構成する文字コードの場合に
は、一致信号350として1が出力される。このとき出
力ゲート360が開き、文字コード310は出力ライン
207へ出力され、次段の文字列照合手段102へ送ら
れる。検索タームに含まれない文字コードの場合には、
一致信号350として0が出力される。このとき、出力
ゲートは閉ざされ、文字コード310は出力ライン20
7へ出力されず、次段の文字列照合手段102へ送られ
ないことになる。The single filtering table 330 is accessed using the character code 310 output from the character code register 320 as a reference address, and the coincidence signal 350 is read. In the case of the character code forming the search term, 1 is output as the matching signal 350. At this time, the output gate 360 is opened, and the character code 310 is output to the output line 207 and sent to the character string collating means 102 in the next stage. If the character code is not included in the search term,
0 is output as the coincidence signal 350. At this time, the output gate is closed and the character code 310 changes to the output line 20.
7 is not output and is not sent to the character string collating means 102 in the next stage.
【0035】例えば、検索タームとして“BUS”が与
えられ、入力テキストとして“HIGH-SPEED CMOS SCSI B
US CONTROLLER ”が入力されたときの単一フィルタリン
グ回路の具体的な動作を図9のタイミングチャートを用
いて説明する。For example, "BUS" is given as the search term, and "HIGH-SPEED CMOS SCSI B as the input text.
A specific operation of the single filtering circuit when "US CONTROLLER" is input will be described with reference to the timing chart of FIG.
【0036】まず、入力テキスト204から“H”が文
字コードレジスタ320に取り込まれ、文字コード31
0として出力される。そして、“H”で単一フィルタリ
ングテーブル330がアクセスされ、一致信号350の
値として0が出力される。一致信号350の値が0のた
め、出力ゲート360からは文字コード“H”は出力さ
れない。First, "H" is input from the input text 204 into the character code register 320, and the character code 31
It is output as 0. Then, the single filtering table 330 is accessed at “H”, and 0 is output as the value of the coincidence signal 350. Since the value of the coincidence signal 350 is 0, the character code "H" is not output from the output gate 360.
【0037】次の、“I”,“G”,“H”、および
“−”も同様に文字コードレジスタ320に取り込まれ
るが、単一フィルタリングテーブル330から出力され
る一致信号350が0のため出力ゲート360からは出
力されない。The next "I", "G", "H", and "-" are similarly fetched in the character code register 320, but the coincidence signal 350 output from the single filtering table 330 is 0. There is no output from the output gate 360.
【0038】さらに次の“S”が文字コードレジスタ3
20に取り込まれると単一フィルタリングテーブル33
0から出力される一致信号350の値が1となり、出力
ゲート360から文字コード310の“S”が出力ライ
ン207へ出力される。The next "S" is the character code register 3
Single filtering table 33 when loaded into 20
The value of the coincidence signal 350 output from 0 becomes 1, and the output gate 360 outputs “S” of the character code 310 to the output line 207.
【0039】次の“P”,“E”,“E”,“D”、お
よび“ ”(スペース)の間は単一フィルタリングテー
ブル3300から出力される一致信号3350が0とな
るため出力ライン207へは何も出力されない。During the next "P", "E", "E", "D", and "" (space), the coincidence signal 3350 output from the single filtering table 3300 becomes 0, so the output line 207. Nothing is output to.
【0040】以下、同様にフィルタリング処理を行うこ
とにより、出力ゲートから“S”,“S”,“B”,
“U”、および“S”が出力ライン207へ出力され
る。Thereafter, by similarly performing the filtering process, "S", "S", "B" from the output gate,
“U” and “S” are output to the output line 207.
【0041】このようにして、本例では30文字の入力
テキスト“HIGH-SPEED SCSI BUS CONTROLLER”から検索
タームに含まれる“SSSBUS”の6文字が抽出され、出力
テキスト207として出力される。すなわち、入力テキ
スト204の23/30、つまり、約4/5が不要文字
として切り捨てられるため、文字列照合手段102には
約1/5が送られるだけとなり、文字列照合部102の
負荷を約1/5に削減することが可能となる。In this way, in this example, 6 characters of "SSSBUS" included in the search term are extracted from the input text of 30 characters "HIGH-SPEED SCSI BUS CONTROLLER" and output as the output text 207. That is, 23/30 of the input text 204, that is, about 4/5 is truncated as an unnecessary character, so only about 1/5 is sent to the character string matching unit 102, and the load on the character string matching unit 102 is reduced. It is possible to reduce it to 1/5.
【0042】[0042]
【発明が解決しようとする課題】上記特願平4−63067号
では、文字列記憶手段と文字列照合手段の間にフィルタ
リング手段を設け、文字列記憶手段から読み出されたテ
キスト中から検索タームに含まれない文字コードを切り
捨てて、検索タームに含まれる文字コードのみを文字列
照合手段に出力することにより文字列照合手段の負荷を
軽減し、照合スループットの等価的向上を図っている。
この結果、文字列照合手段では、“HIGHSPEED SCSI BUS
CONTROLLER"という30文字の入力テキストに対して照
合処理を行う必要があったものを“SSSBUS”の6文字分
の照合処理で済ますことができるようになり、文字列照
合手段の負荷を約1/5にすることができている。In the above-mentioned Japanese Patent Application No. 4-63067, a filtering means is provided between the character string storing means and the character string collating means, and a search term is selected from the text read from the character string storing means. By truncating the character codes not included in the above, and outputting only the character codes included in the search term to the character string matching means, the load of the character string matching means is reduced, and the matching throughput is improved equivalently.
As a result, in the character string collating means, "HIGHSPEED SCSI BUS
What was necessary to perform collation processing on the input text of 30 characters "CONTROLLER" can now be completed by collation processing for 6 characters of "SSSBUS", and the load of the character string collating means is reduced to about 1 /. It can be set to 5.
【0043】例えば、フィルタリング回路の処理速度を
50ナノ秒/回、文字列照合手段の処理速度を100ナ
ノ秒/回としたとき、フィルタリング手段を備えない場
合の処理時間およびフィルタリング手段を備えた場合の
処理時間は次のようになる。For example, when the processing speed of the filtering circuit is 50 nanoseconds / time and the processing speed of the character string collating means is 100 nanoseconds / time, the processing time when the filtering means is not provided and the case where the filtering means is provided. The processing time of is as follows.
【0044】まず、フィルタリング手段を備えない場合
には“HIGH SPEED SCSI BUS CONTROLLER”という30文
字のテキストを、すべて文字列照合する必要があるため
文字列照合手段の処理時間として 100ナノ秒/回×30回=3,000ナノ秒 が必要となる。First, if no filtering means is provided, it is necessary to collate all 30-character text "HIGH SPEED SCSI BUS CONTROLLER" with a character string, so the processing time of the character string collating means is 100 nanoseconds / times. 30 times = 3,000 nanoseconds are required.
【0045】次に、フィルタリング手段を備えた場合に
は、“HIGH SPEED SCSI BUS CONTROLLER"という30文
字のテキストはフィルタリング手段によって“SSSBUS"
の6文字に削除される。フィルタリング処理では入力文
字コード1文字に付き1回のフィルタリングテーブルの
参照が必要となるため、“HIGH SPEED SCSI BUSCONTROL
LER”という30文字のテキストをフィルタリングする
のに30回の処理が必要となる。この結果、フィルタリ
ング手段の処理時間として 50ナノ秒/回×30回=1,500ナノ秒 が必要となる。Next, when the filtering means is provided, the 30-character text "HIGH SPEED SCSI BUS CONTROLLER" is converted to "SSSBUS" by the filtering means.
Will be deleted to 6 characters. In the filtering process, it is necessary to refer to the filtering table once for each input character code, so "HIGH SPEED SCSI BUSCONTROL"
It is necessary to process 30 times to filter the text of 30 characters "LER". As a result, the processing time of the filtering means is 50 nanoseconds / time × 30 times = 1,500 nanoseconds.
【0046】また、図10に示すように“SSSBUS”の6
文字を照合するためには8回の文字列照合処理が必要と
なるため、文字列照合手段の処理時間は 100ナノ秒/回×8回=800ナノ秒 が必要となる。Further, as shown in FIG. 10, 6 of "SSSBUS"
In order to collate the character, the character string collating process needs to be performed eight times. Therefore, the processing time of the character string collating means needs to be 100 nanoseconds / time × 8 times = 800 nanoseconds.
【0047】このように、文字列記憶手段と文字列照合
手段の間にフィルタリング手段を設置することにより、
3,000ナノ秒必要であった文字列検索処理を1,50
0ナノ秒で処理することが可能となり、検索スループッ
トを2倍向上させることが可能となった。Thus, by installing the filtering means between the character string storing means and the character string collating means,
The character string search processing that required 3,000 nanoseconds was 1,50
It became possible to perform processing in 0 nanoseconds, and it was possible to improve search throughput by a factor of two.
【0048】しかし、本従来例による文字列検索装置で
は以下のような問題が生じる。However, the character string retrieval apparatus according to this conventional example has the following problems.
【0049】すなわち、文字列照合手段が実際に動作し
ている時間は800ナノ秒であるにもかかわらず、フィ
ルタリング処理に1,500 ナノ秒の処理時間を要する
ことになる。つまり、スループット向上のために設けた
フィルタリング処理がボトムネックになってしまうとい
う状況が発生してしまう。That is, although the character string collating means is actually operating for 800 nanoseconds, the filtering processing requires a processing time of 1,500 nanoseconds. That is, a situation arises in which the filtering process provided for improving the throughput becomes a bottom neck.
【0050】このように、本従来例による文字列検索装
置ではフィルタリング処理の速度がボトムネックとなる
ため、文字列照合手段が遊んでいる状態となり、文字列
照合手段の限界性能まで照合スループットを向上させる
ということができなくなるという問題が生じる。As described above, in the character string search device according to the conventional example, the speed of the filtering process becomes a bottom neck, so that the character string collating means is idle and the collating throughput is improved up to the limit performance of the character string collating means. There is a problem that it cannot be done.
【0051】本発明の目的は、複数のフィルタリング手
段を並列に動作させることにより、フィルタリング処理
のスループットをさらに向上させるとともにフィルタリ
ング処理のボトムネックを回避し、ひいては文字列照合
手段の性能を最大限に引き出す、すなわち、文字列検索
装置全体としての検索スループットを限界まで高めるこ
とにある。The object of the present invention is to further improve the throughput of the filtering process by operating a plurality of filtering means in parallel, avoid the bottom neck of the filtering process, and maximize the performance of the character string collating means. That is, to bring out, that is, to increase the search throughput of the entire character string search device to the limit.
【0052】[0052]
【課題を解決するための手段】これらの課題は、指定さ
れた複数の検索タームがコード表現された文字で構成さ
れるテキスト中に存在するか否かを一括して探索する文
字列検索装置において、文字列記憶手段と文字列照合手
段の間に下記並列フィルタリング手段を設けることによ
って達成される。These problems are solved in a character string search device for collectively searching whether or not a plurality of designated search terms are present in a text composed of code-represented characters. This is achieved by providing the following parallel filtering means between the character string storage means and the character string collating means.
【0053】すなわち、並列フィルタリング手段とし
て、上記文字列記憶手段から読み出されたテキストから
一度に複数文字を取り込み1文字ずつ分割して送出する
分配手段と、上記分配手段から出力される文字コードを
1文字ずつ取り込み、上記文字コードが上記検索ターム
に含まれている文字コードか否かを判定する、並列に並
べられた複数のフィルタリング手段と、上記複数のフィ
ルタリング手段から出力される文字コードを取り込み整
列して文字列照合手段に送出する収集手段によって構成
される。That is, as the parallel filtering means, a distributing means for fetching a plurality of characters at a time from the text read from the character string storing means and dividing and sending the divided characters one by one, and a character code output from the distributing means are used. Capturing one character at a time, determining whether or not the character code is included in the search term, a plurality of filtering means arranged in parallel, and a character code output from the plurality of filtering means It is composed of collecting means for arranging and sending to the character string collating means.
【0054】[0054]
【作用】本発明の原理について、図1を用いて以下に説
明する。並列フィルタリング手段3000において、分
配手段3100は文字列記憶手段105からテキストを
2文字ずつ読み出し、1文字ずつフィルタリング手段3
200aおよび3200bに送出する。フィルタリング
手段3200aおよび3200bでは、入力された1文
字に対して検索タームに含まれた文字であるか否かの判
定を行い、その結果を収集手段3300に出力する。収
集手段3300ではフィルタリング手段3200aおよ
び3200bにおける処理結果として、検索タームに含
まれる文字コードのみを整列して文字列照合手段102
に出力する。The principle of the present invention will be described below with reference to FIG. In the parallel filtering unit 3000, the distribution unit 3100 reads the text from the character string storage unit 105 every two characters, and the filtering unit 3 at every one character.
200a and 3200b. The filtering means 3200a and 3200b determine whether or not one input character is a character included in the search term, and output the result to the collecting means 3300. In the collection means 3300, as the processing results in the filtering means 3200a and 3200b, only the character codes included in the search term are aligned and the character string matching means 102 is arranged.
Output to.
【0055】こうすることにより、フィルタリング手段
の処理スループットを等価的に2倍向上させることがで
き、フィルタリング手段がボトムネックになるのを回避
することが可能となる。その結果、文字列検索装置とし
ての検索スループットをさらに2倍向上させることが可
能となる。By doing so, it is possible to equivalently increase the processing throughput of the filtering means by a factor of two and avoid the filtering means from becoming a bottom neck. As a result, it is possible to further improve the search throughput as the character string search device by a factor of two.
【0056】以下、具体例を用いて原理を説明する。例
えば、検索タームに“BUS”が指定され、文字列記憶
手段からテキストとして“HIGH-SPEED SCSI BUS CONTRO
LLER”が読み込まれた場合を考えてみる。The principle will be described below using a specific example. For example, "BUS" is specified as the search term, and "HIGH-SPEED SCSI BUS CONTRO" is displayed as text from the character string storage means.
Consider the case where "LLER" is loaded.
【0057】分配手段3100では、まず1回目の動作
でテキストの第1および第2文字目の“HI”を取り込
み、第1文字目の“H”をフィルタリング回路3200
aに、第2文字目の“I”をフィルタリング回路320
0bに出力する。フィルタリング回路3200aおよび
3200bでは、入力された文字コード“H”および
“I”が検索タームに含まれる文字コードではないとい
う信号を付加して収集手段3300に送出する。収集手
段3300ではこれらの情報をもとにフィルタリング処
理を一括して行う。すなわち、“H”および“I”を削
除し、文字列照合手段102に送出しない。次に、続く
2文字“GH”が入力された時も、同様に文字列照合手
段102に送出しない。さらに、続く2文字“−S”が
分配手段3100に入力されると、“−”はフィルタリ
ング回路3200aに、“S”はフィルタリング回路3
200bに出力される。フィルタリング回路3200a
では入力された文字コード“−”が検索タームに含まれ
る文字コードではないという信号を付加して収集手段3
300に送出し、フィルタリング回路3200bでは、
“S”が検索タームに含まれる文字コードであるという
信号を付加して収集手段3300に送出する。収集手段
3300ではこれらの情報をもとにフィルタリング処理
を一括して行い、“S”を文字列照合手段102に送出
する。In the distributing means 3100, first, the first operation takes in the first and second characters "HI" of the text, and the first character "H" is filtered by the filtering circuit 3200.
The second character “I” is added to a and the filtering circuit 320
Output to 0b. In the filtering circuits 3200a and 3200b, a signal indicating that the input character codes "H" and "I" are not included in the search term is added and sent to the collecting means 3300. The collecting means 3300 collectively performs filtering processing based on these pieces of information. That is, "H" and "I" are deleted and not sent to the character string collating means 102. Next, even when the next two characters "GH" are input, they are not sent to the character string collating means 102 in the same manner. Further, when the following two characters "-S" are input to the distribution means 3100, "-" is input to the filtering circuit 3200a and "S" is input to the filtering circuit 3200.
It is output to 200b. Filtering circuit 3200a
Then, a signal that the input character code "-" is not the character code included in the search term is added to collect means 3
300, and in the filtering circuit 3200b,
A signal that "S" is a character code included in the search term is added and sent to the collecting means 3300. The collecting means 3300 collectively performs filtering processing based on these pieces of information, and sends "S" to the character string collating means 102.
【0058】続く2文字“PE”が入力された時も、こ
れらは検索タームに含まれる文字コードではないので文
字列照合手段に送出しない。Even when the following two characters "PE" are input, they are not sent to the character string collating means because they are not the character codes included in the search term.
【0059】以下、同様に“ED”,“S”,“C
S”,“I”,“BU”,“S”,“CO”,“N
T”,“RO”,“LL”,“ER”が入力された場合
には、それぞれ検索タームに含まれる文字である
“S”,“S”,“BU”,“S”を出力する。Hereinafter, similarly, "ED", "S", "C"
S "," I "," BU "," S "," CO "," N "
When "T", "RO", "LL", and "ER" are input, the characters "S", "S", "BU", and "S" included in the search terms are output.
【0060】すなわち、このようなフィルタリング処理
の結果として、30文字のテキスト“HIGH-SPEED SCSI
BUS CONTROLLER”に対して15回のフィルタリング動作
で、検索タームに含まれる文字のみで構成された“SSSB
US”という文字列が文字列照合手段に送出されることに
なる。That is, as a result of such filtering processing, the 30-character text "HIGH-SPEED SCSI
"SSSB" composed only of the characters included in the search term by 15 times of filtering operations for "BUS CONTROLLER"
The character string "US" is sent to the character string collating means.
【0061】このように30文字のテキスト“HIGH-SPE
ED SCSI BUS CONTROLLER”は並列フィルタリング手段に
より、15回のフィルタリング動作で6文字のテキスト
“SSSBUS”にフィルタリングされる。すなわち、フィル
タリング処理に要する時間として 50ナノ秒/回×15回=750ナノ秒 必要となる。Thus, the 30-character text "HIGH-SPE
The ED SCSI BUS CONTROLLER "is filtered by the parallel filtering means into the 6-character text" SSSBUS "in 15 filtering operations, that is, the time required for the filtering process is 50 nanoseconds / time × 15 times = 750 nanoseconds. Becomes
【0062】また、前述したように“SSSBUS”の6文字
を照合するためには8回の文字列照合処理が必要となる
ため、文字列照合手段の処理時間は 100ナノ秒/回×8回=800ナノ秒 必要となる。Further, as described above, in order to collate 6 characters of "SSSBUS", the character string collating process is required 8 times. Therefore, the processing time of the character string collating means is 100 nanoseconds / time × 8 times. = 800 nanoseconds is required.
【0063】すなわち、30文字のテキスト“HIGH-SPE
ED SCSI BUS CONTROLLER”を800ナノ秒で照合するこ
とが可能となることになる。That is, the 30-character text "HIGH-SPE
ED SCSI BUS CONTROLLER ”can be verified in 800 nanoseconds.
【0064】このように、従来方式では1,500 ナノ
秒必要であったフィルタリング処理を、本発明により7
50ナノ秒で処理することが可能となる。これにより、
従来方式では文字列検索装置としての検索時間が1,5
00 ナノ秒必要であったものを、800ナノ秒に短縮
することが可能となる。すなわち、フィルタリング処理
がボトムネックになるのを回避し、文字列検索装置とし
て検索スループットを等価的に約2倍向上させることが
可能となる。As described above, according to the present invention, the filtering process, which requires 1,500 nanoseconds in the conventional method, can be performed by the present invention.
It can be processed in 50 nanoseconds. This allows
In the conventional method, the search time as a character string search device is 1,5
It was possible to reduce what was required from 00 nanoseconds to 800 nanoseconds. That is, it becomes possible to avoid the filtering process from becoming a bottom bottleneck and equivalently improve the search throughput of the character string search device by a factor of about two.
【0065】[0065]
【実施例】以下、本発明の原理を用いた第1の実施例を
図11を用いて説明する。本図は本実施例の構成を示す
ブロック図である。本実施例は文字列検索装置1の文字
列記憶手段105と文字列照合手段102の間に並列フ
ィルタリング手段3000を設け、文字列記憶手段10
5から読み出されたテキスト中から検索タームに含まれ
ない文字コードを切り捨てるフィルタリング回路を複数
個、並列に動作させることにより、フィルタリング処理
のスループットを向上させ、等価的に照合スループット
を向上させようとするものである。EXAMPLE A first example using the principle of the present invention will be described below with reference to FIG. This figure is a block diagram showing the configuration of the present embodiment. In the present embodiment, the parallel filtering means 3000 is provided between the character string storage means 105 and the character string collating means 102 of the character string search device 1, and the character string storage means 10 is provided.
In order to improve the throughput of the filtering process and equivalently improve the matching throughput, a plurality of filtering circuits that cut out the character codes that are not included in the search term from the text read from 5 are operated in parallel. To do.
【0066】本実施例で用いる並列フィルタリング手段
3000の一構成例を図1に示す。FIG. 1 shows an example of the configuration of the parallel filtering means 3000 used in this embodiment.
【0067】本並列フィルタリング手段3000は分配
手段3100,フィルタリング手段3200aおよび3
200b,収集手段3300によって構成される。The parallel filtering means 3000 includes a distributing means 3100, filtering means 3200a and 3200.
200b and collecting means 3300.
【0068】初めに、並列フィルタリング手段3000
の概略動作について説明する。First, the parallel filtering means 3000
The outline of the operation will be described.
【0069】分配手段3100は、文字列記憶手段10
5からテキストを一度に2バイトずつ取り込み、1バイ
トずつ二つのフィルタリング手段3200aおよび3200
bに送出する。The distribution means 3100 is the character string storage means 10
Two filtering means 3200a and 3200, each taking 2 bytes of text from 5 at a time
Send to b.
【0070】本実施例におけるフィルタリング手段32
00aおよび3200bでは、分配手段3100から1
文字入力される毎にこれを検索タームと比較し、検索タ
ーム中に含まれる文字と同じ文字があるかどうかを判定
し、その結果を一致フラグとして文字コードとともに収
集手段3300に出力する。すなわち、入力された文字
コードが検索タームに含まれる文字のときにはその1文
字に対して一致フラグとして1を、それ以外の文字コー
ドに対して0を出力する。Filtering means 32 in this embodiment
00a and 3200b, the distribution means 3100 to 1
Each time a character is input, this is compared with the search term, it is determined whether there is the same character as the character included in the search term, and the result is output as a match flag together with the character code to the collecting means 3300. That is, when the input character code is a character included in the search term, 1 is output as a match flag for the one character and 0 is output for the other character codes.
【0071】収集手段3300では、フィルタリング手
段3200aおよび3200bから出力される文字コー
ドおよび一致フラグをもとに2文字分の出力制御処理を
一括して行う。The collecting means 3300 collectively performs output control processing for two characters based on the character code and the match flag output from the filtering means 3200a and 3200b.
【0072】以上が、並列フィルタリング手段3000
の概略動作である。The above is the parallel filtering means 3000.
Is a general operation of.
【0073】次に、分配手段3100,フィルタリング
手段3200aおよび3200b,収集手段3300の
構成および動作について、それぞれ具体的に説明する。Next, the configurations and operations of the distributing means 3100, the filtering means 3200a and 3200b, and the collecting means 3300 will be specifically described.
【0074】本実施例における分配手段3100の構成
を図12に示す。本実施例における分配手段3100
は、文字コード取り込みレジスタ3110,入力文字コ
ードレジスタ3120aおよび3120bによって構成
される。FIG. 12 shows the structure of the distributing means 3100 in this embodiment. Distributing means 3100 in this embodiment
Is composed of a character code fetch register 3110 and input character code registers 3120a and 3120b.
【0075】分配手段3100は、文字列記憶手段10
5からテキストを一度に2バイトずつ取り込み、文字コ
ード取り込みレジスタ3110に格納する。そして、次
のステップでは文字コード取り込みレジスタ3110に
格納された2バイトのうち上位側1バイトを入力文字コ
ードレジスタ3120aに、下位側1バイトを入力文字
コードレジスタ3120bに格納し、それぞれデータ線
3010aおよび3010bを経由してフィルタリング
手段3200aおよび3200bに出力する。そして、
続く2バイトを新たに文字コード取り込みレジスタ31
10に取り込む。The distributing means 3100 is the character string storing means 10
The text from 5 is fetched 2 bytes at a time and stored in the character code fetch register 3110. Then, in the next step, of the 2 bytes stored in the character code fetch register 3110, the upper 1 byte is stored in the input character code register 3120a and the lower 1 byte is stored in the input character code register 3120b. It outputs to the filtering means 3200a and 3200b via 3010b. And
The following 2 bytes are newly added to the character code acquisition register 31
Take in 10.
【0076】図13は一例としてテキスト“HIGH-SPEED
SCSI BUS CONTROLLER”が入力されたときの分配手段3
100の動作を示す。FIG. 13 shows the text "HIGH-SPEED" as an example.
Distribution means 3 when SCSI BUS CONTROLLER ”is input
100 operation is shown.
【0077】まず、1回目の入力で最初の2バイト“H
I”が文字コード取り込みレジスタ3110に格納され
る。次に、2回目の入力の直前に文字コード取り込みレ
ジスタ3110に格納された2バイト“HI”のうち1
バイト目の“H”は入力文字コードレジスタ3120a
に、2バイト目の“I”は入力文字コードレジスタ31
20bに格納され、それぞれデータ線3010aおよび
3010bを経由してフィルタリング手段3200aお
よび3200bに出力される。そして、2回目の入力で
は、続く2バイト“GH”が新たに文字コード取り込み
レジスタ3110に取り込まれる。以下、同様に分配手段3
100ではテキストを2バイトずつ取り込み、1バイト
ずつ順にフィルタリング手段3200aおよび3200
bに出力していく。以上が、分配手段3100の構成お
よび動作である。First, at the first input, the first 2 bytes "H"
I "is stored in the character code fetch register 3110. Next, one of the two bytes" HI "stored in the character code fetch register 3110 immediately before the second input.
"H" at the byte is the input character code register 3120a
The second byte "I" is the input character code register 31
20b and output to the filtering means 3200a and 3200b via the data lines 3010a and 3010b, respectively. Then, in the second input, the following 2 bytes “GH” are newly fetched in the character code fetch register 3110. Hereinafter, similarly, the distribution means 3
In 100, the text is taken in every 2 bytes and the filtering means 3200a and 3200 are taken in order of every 1 byte.
Output to b. The above is the configuration and operation of the distribution unit 3100.
【0078】次に、フィルタリング手段3200aおよ
び3200bの構成および動作について説明する。Next, the configuration and operation of the filtering means 3200a and 3200b will be described.
【0079】フィルタリング手段3200aおよび32
00bは同一の回路であり、ここでは代表としてフィル
タリング手段3200aの構成および動作について説明
する。Filtering means 3200a and 32
00b is the same circuit, and the configuration and operation of the filtering means 3200a will be described here as a representative.
【0080】図14はフィルタリング手段3200aの
構成を示す。すなわち、フィルタリング手段3200a
はレジスタ3210a,単一フィルタリングテーブル32
20a,一致フラグレジスタ3230aおよび文字コードレ
ジスタ3240aによって構成される。FIG. 14 shows the structure of the filtering means 3200a. That is, the filtering means 3200a
Is a register 3210a and a single filtering table 32
20a, a match flag register 3230a and a character code register 3240a.
【0081】まず初期設定として、検索タームに含まれ
ている文字コードに対応する単一フィルタリングテーブ
ル3220aのスロットに一致フラグとして1を設定
し、それ以外のスロットに0を設定する。例えば検索タ
ームとして“BUS”が与えられた場合には、図8に示
す内容を単一フィルタリングテーブル3220aに設定
する。すなわち、“BUS”を構成する“B”,
“U”、および“S”の各文字コードに対応するスロッ
トに一致フラグとして1を設定しておく。First, as an initial setting, 1 is set as a match flag in the slot of the single filtering table 3220a corresponding to the character code included in the search term, and 0 is set in the other slots. For example, when “BUS” is given as the search term, the contents shown in FIG. 8 are set in the single filtering table 3220a. That is, "B" that composes "BUS",
1 is set as a match flag in the slots corresponding to the character codes of "U" and "S".
【0082】フィルタリング動作は、分配手段3100
から1バイトずつ文字コードをレジスタ3210aに取
り込むことから始まる。The filtering operation is performed by the distribution means 3100.
It starts by fetching the character code into the register 3210a byte by byte.
【0083】レジスタ3210aの出力である文字コー
ド3211aはそのまま文字コードレジスタ3240a
に格納され、データ線3020aを経由して収集手段33
00出力される。また、単一フィルタリングテーブル32
20aは文字コード3211aを参照アドレスとしてアクセ
スされ、一致フラグは一致フラグレジスタ3230aに
格納される。すなわち、文字コード3020aが検索タ
ームを構成する文字コードの場合には1が、それ以外の
文字コードの場合には0が一致フラグレジスタ3230
aから読みだされ、データ線3030aを経由して収集
手段3300に出力される。The character code 3211a which is the output of the register 3210a is as it is, the character code register 3240a.
Is stored in the collecting means 33 via the data line 3020a.
00 is output. Also, the single filtering table 32
20a is accessed using the character code 3211a as a reference address, and the match flag is stored in the match flag register 3230a. That is, if the character code 3020a is a character code forming a search term, 1 is displayed. If the character code 3020a is any other character code, 0 is displayed.
It is read from a and output to the collection means 3300 via the data line 3030a.
【0084】図15は、検索タームとして“BUS”が
与えられ、テキストとして“HIGH-SPEED SCSI BUS CONT
ROLLER"が入力されたときのフィルタリング手段の具体
的な動作を示す。In FIG. 15, "BUS" is given as the search term and "HIGH-SPEED SCSI BUS CONT" is given as the text.
The specific operation of the filtering means when "ROLLER" is input will be described.
【0085】まず、1回目の入力では、分配手段310
0からフィルタリング手段3200aに“H”が取り込ま
れ、レジスタ3210aに格納される。また、フィルタ
リング手段3200bには“I”が取り込まれ、レジス
タ3210bに格納される。そして、2回目の入力の直
前に、フィルタリング手段3200aではレジスタ32
10aから“H”が文字コード3211aとして出力さ
れる。このため、“H”で単一フィルタリングテーブル
3220aがアクセスされる。しかし、“H”は検索タ
ームに含まれない文字コードであるため、一致フラグの
値として0が一致フラグレジスタ3230aに格納さ
れ、データ線3030aを経由して収集手段3300に
出力される。また、文字コードとしては“H”が文字コ
ードレジスタ3240aに格納され、データ線3020
aを経由して収集手段3300に出力される。First, in the first input, the distribution means 310
“H” is fetched from 0 to the filtering means 3200a and stored in the register 3210a. Further, “I” is fetched by the filtering means 3200b and stored in the register 3210b. Immediately before the second input, the filtering unit 3200a registers 32
“H” is output from 10a as the character code 3211a. Therefore, the single filtering table 3220a is accessed at "H". However, since "H" is a character code that is not included in the search term, 0 is stored in the match flag register 3230a as the value of the match flag, and is output to the collection means 3300 via the data line 3030a. Further, as the character code, “H” is stored in the character code register 3240a, and the data line 3020
It is output to the collection means 3300 via a.
【0086】同様に、フィルタリング手段3200bで
は、レジスタ3210bから“I”が文字コード321
1bとして出力される。このため、“I”で単一フィル
タリングテーブル3220bがアクセスされる。しか
し、“I”も検索タームに含まれない文字コードである
ため0が一致フラグレジスタ3230aに格納され、デ
ータ線3030bを経由して収集手段3300に出力さ
れる。また、文字コードとしては“I”が文字コードレ
ジスタ3240bに格納され、データ線3020bを経由し
て収集手段3300に出力される。Similarly, in the filtering means 3200b, the character code 321 from the register 3210b is "I".
It is output as 1b. Therefore, the single filtering table 3220b is accessed by "I". However, since "I" is also a character code not included in the search term, 0 is stored in the match flag register 3230a and output to the collecting means 3300 via the data line 3030b. As the character code, "I" is stored in the character code register 3240b and output to the collecting means 3300 via the data line 3020b.
【0087】そして、2回目の入力では、分配手段31
00からフィルタリング手段3200aに“G”が取り込ま
れ、レジスタ3210aに格納される。また、フィルタ
リング手段3200bには“H”が取り込まれ、レジス
タ3210bに格納される。At the second input, the distribution means 31
"G" is fetched from 00 to the filtering means 3200a and stored in the register 3210a. Further, “H” is fetched by the filtering means 3200b and stored in the register 3210b.
【0088】以下、同様に、フィルタリング手段320
0aおよび3200bでは分配手段3100から文字コ
ードを1バイトずつ取り込み、文字コード3020aお
よび3020bとして収集手段3300に出力する。ま
た、これらを検索タームと比較し、検索ターム中に含ま
れる文字と同じ文字があるかどうかを判定し、同じもの
があればその1文字に対して一致フラグ3030aおよ
び3030bとして1を、それ以外の文字コードに対し
て0を収集手段3300に出力する。Hereinafter, similarly, the filtering means 320
At 0a and 3200b, the character code is fetched from the distribution means 3100 byte by byte and output to the collection means 3300 as character codes 3020a and 3020b. In addition, these are compared with the search term to determine whether or not there is the same character as the character included in the search term. If there is the same character, 1 is set as the match flags 3030a and 3030b for that one character, and other 0 is output to the collecting means 3300 for the character code of.
【0089】以上が、フィルタリング手段3200aお
よび3200bの構成および動作である。The above is the configuration and operation of the filtering means 3200a and 3200b.
【0090】図16は本実施例における収集手段330
0の構成を示す。すなわち、本実施例における収集手段
3300は、フラグレジスタ3310aおよび3310
b,文字コードレジスタ3320aおよび3320b,
OR回路3330,フラグバッファ3340aおよび3
340b,文字コードバッファ3350aおよび335
0b,フィルタリング制御回路3360および文字コー
ドセレクタ3370によって構成される。FIG. 16 shows the collecting means 330 in this embodiment.
The structure of 0 is shown. That is, the collecting means 3300 in the present embodiment uses the flag registers 3310a and 3310.
b, character code registers 3320a and 3320b,
OR circuit 3330, flag buffers 3340a and 3
340b, character code buffers 3350a and 335
0b, a filtering control circuit 3360 and a character code selector 3370.
【0091】フィルタリング手段から出力された一致フ
ラグ3030aおよび3030bは、それぞれフラグレ
ジスタ3310aおよび3310bに格納される。ま
た、文字コード3020aおよび3020bは文字コー
ドレジスタ3320aおよび3320bに一旦格納され
る。そして、取り込まれた2文字のうち少なくとも1文
字がフィルタリングを通過するとき、つまり二つの一致
フラグの論理和が1のときに、フラグレジスタ3310
aおよび3310bに格納された一致フラグをフラグバ
ッファ3340aおよび3340bにそれぞれ格納し、
出力文字コードレジスタ3320aおよび3320bに
格納された文字コードを文字コードバッファ3350a
および3350bにそれぞれ格納する。取り込まれた2
文字がともにフィルタリングによって削除される場合に
は、すなわち、二つの一致フラグの論理和が0のときに
は、その2文字に対応する一致フラグと文字コードをフ
ラグバッファ3340aおよび3340bと文字コード
バッファ3350aおよび3350bに取り込まないと
いう処理を行なう。The match flags 3030a and 3030b output from the filtering means are stored in flag registers 3310a and 3310b, respectively. The character codes 3020a and 3020b are temporarily stored in the character code registers 3320a and 3320b. When at least one of the two fetched characters passes the filtering, that is, when the logical sum of the two match flags is 1, the flag register 3310
The match flags stored in a and 3310b are stored in flag buffers 3340a and 3340b, respectively,
The character codes stored in the output character code registers 3320a and 3320b are stored in the character code buffer 3350a.
And 3350b respectively. Captured 2
When both characters are deleted by filtering, that is, when the logical sum of the two match flags is 0, the match flags and the character codes corresponding to the two characters are set to the flag buffers 3340a and 3340b and the character code buffers 3350a and 3350b. The process of not importing into.
【0092】フィルタリング制御回路3360では、フ
ラグバッファ3340aおよび3340bから読み出さ
れる一致フラグ3303aおよび3303bの値を入力
として、フラグバッファ3340aおよび3340bと
文字コードバッファ3350aおよび3350bのリー
ドイネーブル(RE)信号3301、および文字コード
セレクタ3370のセレクト信号3302を出力する。
すなわち、フラグバッファ3340aおよび3340b
と文字コードバッファ3350aおよび3350bから
一致フラグと文字コードを読み出すタイミングでリード
イネーブル信号(RE)3301として1を出力する。
また、文字コードセレクタ3370のセレクト信号3302
として、文字コードバッファ3350aから出力される
文字コード3304a(Xポート側)を選択する場合に
は0を、および文字コードバッファ3350bから出力
される文字コード(Yポート側)3304aを選択する
場合には1を出力する。The filtering control circuit 3360 receives the values of the match flags 3303a and 3303b read from the flag buffers 3340a and 3340b as input, and the read enable (RE) signals 3301 of the flag buffers 3340a and 3340b and the character code buffers 3350a and 3350b, and The select signal 3302 of the character code selector 3370 is output.
That is, flag buffers 3340a and 3340b
And 1 is output as a read enable signal (RE) 3301 at the timing of reading the match flag and the character code from the character code buffers 3350a and 3350b.
In addition, the selection signal 3302 of the character code selector 3370
As 0, when selecting the character code 3304a (X port side) output from the character code buffer 3350a, and when selecting the character code (Y port side) 3304a output from the character code buffer 3350b. 1 is output.
【0093】文字コードセレクタ3370では、フィル
タリング制御回路3360から出力されるセレクト信号
3302の値に応じてフィルタリングから出力する文字
コード207を選択する。すなわち、セレクト信号33
02の値が0のときには文字コードバッファ3350a
から出力される文字コード3304a(Xポート側)を
選択し、セレクト信号3302の値が1のときには文字
コードバッファ3350bから出力される文字コード330
4b(Yポート側)を選択する。The character code selector 3370 selects the character code 207 to be output from filtering according to the value of the select signal 3302 output from the filtering control circuit 3360. That is, the select signal 33
When the value of 02 is 0, the character code buffer 3350a
The character code 3304a (X port side) output from is selected, and when the value of the select signal 3302 is 1, the character code 330 output from the character code buffer 3350b.
4b (Y port side) is selected.
【0094】図17はフィルタリング制御回路3360
の構成を示す。本実施例においてフィルタリング制御回
路3360はフィルタリング制御デコーダ3361およ
び2文字通過フラグレジスタ3362によって構成され
る。FIG. 17 shows the filtering control circuit 3360.
Shows the configuration of. In this embodiment, the filtering control circuit 3360 is composed of a filtering control decoder 3361 and a two-character passing flag register 3362.
【0095】図18はフィルタリング制御回路3360
の概略動作を示す。フィルタリング制御デコーダ336
1は、2文字通過フラグレジスタ3362から出力され
る前ステップの2文字通過フラグ3363,フラグバッ
ファ3340aからの出力3303aおよびフラグバッ
ファ3340bからの出力3303bを入力として、本
ステップの2文字通過フラグ3364,文字コードセレ
クタ3370のセレクト信号3302およびリードイネ
ーブル(RE)信号3301を生成し、出力する。2文
字通過フラグレジスタ3362には、初期値として0を
格納する。FIG. 18 shows the filtering control circuit 3360.
The general operation of is shown. Filtering control decoder 336
1 receives the two-character passage flag 3363 of the previous step output from the two-character passage flag register 3362, the output 3303a from the flag buffer 3340a, and the output 3303b from the flag buffer 3340b as input, and the two-character passage flag 3364 of this step, The character code selector 3370 generates and outputs a select signal 3302 and a read enable (RE) signal 3301. The 2-character passage flag register 3362 stores 0 as an initial value.
【0096】まず、フラグバッファ3340aからの出
力3303aが0であり、フラグバッファ3340bか
らの出力3303bが1のときには、文字コードバッフ
ァ3350bから出力される文字コード3304bのみ
を文字列照合手段102に出力する。すなわち、文字コ
ードセレクタ3370のセレクト信号3302として1
を、リードイネーブル(RE)信号として1を出力す
る。First, when the output 3303a from the flag buffer 3340a is 0 and the output 3303b from the flag buffer 3340b is 1, only the character code 3304b output from the character code buffer 3350b is output to the character string collating means 102. . That is, 1 is set as the select signal 3302 of the character code selector 3370.
Is output as a read enable (RE) signal.
【0097】また、フラグバッファ3340aからの出
力3303aが1であり、フラグバッファ3340bか
らの出力3303bが0のときには文字コードバッファ
3350aから出力される文字コード3304aのみを
文字列照合手段102に出力する。すなわち、文字コー
ドセレクタ3370のセレクト信号3302として0
を、リードイネーブル(RE)信号として1を出力す
る。When the output 3303a from the flag buffer 3340a is 1 and the output 3303b from the flag buffer 3340b is 0, only the character code 3304a output from the character code buffer 3350a is output to the character string collating means 102. That is, 0 is set as the select signal 3302 of the character code selector 3370.
Is output as a read enable (RE) signal.
【0098】さらに、フラグバッファ3340aからの
出力3303aが1であり、フラグバッファ3340b
からの出力3303bも1の時には、まず文字コードバ
ッファ3350aから出力される文字コード3304a
を文字列照合手段102に出力する。そして、その次の
ステップで文字コードバッファ3350bから出力され
る文字コード3304bを文字列照合手段102に出力
する。すなわち、文字コードセレクタ3370のセレク
ト信号3302として0を、リードイネーブル(RE)
信号として0を出力するとともに、本ステップ2文字通
過フラグ3364として1を出力する。なお、本ステップ2
文字通過フラグ3364は2文字通過フラグレジスタ3
362に一旦格納され、次のステップに前ステップ2文
字通過フラグ3363として1が出力される。すなわ
ち、前ステップ2文字通過フラグ3363の値が1のと
きには、文字コードセレクタ3370のセレクト信号33
02として1を、リードイネーブル(RE)信号として1
を出力する。また、本ステップ2文字通過フラグ336
4として0を出力する。Further, the output 3303a from the flag buffer 3340a is 1, and the flag buffer 3340b is
When the output 3303b from is also 1, the character code 3304a first output from the character code buffer 3350a
Is output to the character string collating means 102. Then, in the next step, the character code 3304b output from the character code buffer 3350b is output to the character string collating means 102. That is, 0 is set as the select signal 3302 of the character code selector 3370 and read enable (RE) is performed.
In addition to outputting 0 as a signal, 1 is output as the step 2 character passage flag 3364. In addition, this step 2
The character passage flag 3364 is the 2 character passage flag register 3
Once stored in 362, 1 is output as the previous step 2 character passage flag 3363 in the next step. That is, when the value of the previous step 2 character passage flag 3363 is 1, the select signal 33 of the character code selector 3370 is displayed.
1 as 02 and 1 as read enable (RE) signal
Is output. In addition, this step 2 character passage flag 336
0 is output as 4.
【0099】なお、フラグバッファ3340aからの出
力3303aおよびフラグバッファ3340bからの出
力3303bがともに0になることは起こりえない。す
なわち、フラグバッファ3340aおよび3340bと
文字コードバッファ3350aおよび3350bへの書込み
条件、(フラグバッファ3340aおよび3340bか
ら出力される二つの一致フラグの論理和が1)に矛盾す
るためである。Note that the output 3303a from the flag buffer 3340a and the output 3303b from the flag buffer 3340b cannot both be 0. That is, this is because the write conditions for the flag buffers 3340a and 3340b and the character code buffers 3350a and 3350b are inconsistent with (the logical sum of the two match flags output from the flag buffers 3340a and 3340b is 1).
【0100】次に、収集手段3300の具体的な動作に
ついて、検索タームとして“BUS”が与えられ、入力
テキストとして“HIGH-SPEED SCSI BUS CONTROLLER”が
入力されたときを例に説明する。Next, the specific operation of the collecting means 3300 will be described by taking as an example the case where "BUS" is given as the search term and "HIGH-SPEED SCSI BUS CONTROLLER" is inputted as the input text.
【0101】図19に、フラグレジスタ3310aおよ
び3310b,文字コードレジスタ3320aおよび3
320b,OR回路3330,フラグバッファ3340
aおよび3340bと文字コードバッファ3350aお
よび3350bの動作例を示す。FIG. 19 shows flag registers 3310a and 3310b and character code registers 3320a and 3320.
320b, OR circuit 3330, flag buffer 3340
a and 3340b and character code buffers 3350a and 3350b are shown as operation examples.
【0102】まず1回目の入力では、フィルタリング手
段3200aおよび3200bから、文字コードとして
それぞれ“H”および“I”が取り込まれ、それぞれ文
字コードレジスタ3320aおよび3320bに格納さ
れる。また、この2文字はともに検索タームに含まれて
いない文字コードであるから、一致フラグとしてフラグ
レジスタ3310aおよび3310bに、ともに0が格
納される。First, in the first input, "H" and "I" are fetched as character codes from the filtering means 3200a and 3200b, and are stored in the character code registers 3320a and 3320b, respectively. Further, since these two characters are character codes that are not included in the search term, both 0 are stored in the flag registers 3310a and 3310b as match flags.
【0103】次に2回目の入力の直前に、フラグレジス
タ3310aおよび3310bから0が出力されるが、
この時OR回路3330からの出力が0となる、すなわ
ち文字コードレジスタ3320aおよび3320bに格
納された2文字が、ともに検索タームに含まれない文字
であるため、これら2文字に対応する文字コードと一致
フラグを文字コードバッファ3350aおよび3350
bとフラグバッファ3340aおよび3340bに取り
込まない。Immediately before the second input, 0 is output from the flag registers 3310a and 3310b.
At this time, the output from the OR circuit 3330 becomes 0, that is, since the two characters stored in the character code registers 3320a and 3320b are not included in the search term, they match the character codes corresponding to these two characters. Flags to character code buffers 3350a and 3350
b and flag buffers 3340a and 3340b.
【0104】2回目の入力時には“G”および“H”が
文字コードレジスタ3320aおよび3320bに格納
される。また、一致フラグとしてフラグレジスタ331
0aおよび3310bに、ともに0が格納される。しか
し、この時もOR回路3330からの出力が0となるため、
これら2文字に対応する文字コードと一致フラグを文字
コードバッファ3350aおよび3350bとフラグバ
ッファ3340aおよび3340bに取り込まない。At the time of the second input, "G" and "H" are stored in the character code registers 3320a and 3320b. In addition, a flag register 331 is used as a match flag.
0 is stored in both 0a and 3310b. However, since the output from the OR circuit 3330 is 0 at this time as well,
The character codes and match flags corresponding to these two characters are not taken into the character code buffers 3350a and 3350b and the flag buffers 3340a and 3340b.
【0105】そして、3回目の入力時には“−”および
“S”が文字コードレジスタ3320aおよび3320bに
格納される。この時、“−”は検索ターム“BUS”に
含まれない文字コードであるが、“S”は含まれる文字
コードのため、一致フラグとしてフラグレジスタ331
0aには0が、3310bには1が格納される。すなわ
ち、この時のOR回路3330からの出力が1となるた
め、これら2文字に対応する文字コードと一致フラグは
文字コードバッファ3350aおよび3350bとフラグバ
ッファ3340aおよび3340bにそれぞれ取り込ま
れる。At the time of the third input, "-" and "S" are stored in the character code registers 3320a and 3320b. At this time, "-" is a character code that is not included in the search term "BUS", but "S" is a character code that is included. Therefore, the flag register 331 is used as a match flag.
0 is stored in 0a and 1 is stored in 3310b. That is, since the output from the OR circuit 3330 at this time is 1, the character codes and the match flags corresponding to these two characters are fetched into the character code buffers 3350a and 3350b and the flag buffers 3340a and 3340b, respectively.
【0106】以下同様に、フィルタリング手段3200
から出力される2バイトの文字コードと一致フラグを文
字コードレジスタ3320aおよび3320bとフラグ
レジスタ3310aおよび3310bに一旦格納する。
そして、これらの文字コードのうちに検索タームに含ま
れる文字コードが少なくとも一つ存在する場合、すなわ
ちOR回路3330の出力が1の時には、これに対応す
る一致フラグと文字コードを文字コードバッファ335
0aおよび3350bとフラグバッファ3340aおよび3
340bに取り込んでいく。Similarly, the filtering means 3200 will be described below.
The 2-byte character code and the coincidence flag output from are temporarily stored in character code registers 3320a and 3320b and flag registers 3310a and 3310b.
When there is at least one character code included in the search term among these character codes, that is, when the output of the OR circuit 3330 is 1, the matching flag and the character code corresponding thereto are stored in the character code buffer 335.
0a and 3350b and flag buffers 3340a and 3340
Take it into 340b.
【0107】図20はフィルタリング制御回路3360
および文字コードセレクタ3370の具体的な動作につ
いて示す。FIG. 20 shows the filtering control circuit 3360.
The specific operation of the character code selector 3370 will be described.
【0108】一回目の入力では、フラグバッファ334
0aおよび3340bと文字コードバッファ3350a
および3350bがエンプティでなくなった状態、すな
わち文字コードバッファに“−”および“S”が書き込
まれた直後の状態で、文字コードバッファ3350aお
よび3350bから文字コードとして“−”および
“S”を、フラグバッファ3340aおよび3340b
から一致フラグ3303aとして0、3303bとして1を
読み出す。また、2文字通過フラグレジスタ3362か
ら前ステップ2文字通過フラグ3363として0を読み
出す。On the first input, the flag buffer 334
0a and 3340b and character code buffer 3350a
And 3350b are no longer empty, that is, immediately after "-" and "S" are written in the character code buffer, "-" and "S" are flagged as character codes from the character code buffers 3350a and 3350b. Buffers 3340a and 3340b
From 0, 0 is read as the match flag 3303a and 1 is read as 3303b. Also, 0 is read from the two-character passage flag register 3362 as the previous-step two-character passage flag 3363.
【0109】フィルタリング制御デコーダ3361は上
記の入力に対して、本ステップ2文字通過フラグ336
4として0を、文字コードセレクタ3370のセレクト
信号3302として1を、フラグバッファ3340aお
よび3340bと文字コードバッファ3350aおよび
3350bのリードイネーブル(RE)信号3301と
して1を出力する(図18参照)。また、2文字通過フ
ラグレジスタ3362には本ステップ2文字通過フラグ
3364として0が格納される。In response to the above input, the filtering control decoder 3361 has the present step 2 character passage flag 336.
4 is output as 0, 1 is output as the select signal 3302 of the character code selector 3370, and 1 is output as the read enable (RE) signal 3301 of the flag buffers 3340a and 3340b and the character code buffers 3350a and 3350b (see FIG. 18). Further, 0 is stored in the two-character passage flag register 3362 as the two-character passage flag 3364 in this step.
【0110】文字コードセレクタ3370では、セレク
ト信号3302の値に応じてフィルリングから出力する
文字コードの選択を行う。すなわち、セレクト信号33
02の値が1であるから、文字コードバッファ3350
bからの出力である“S”(Yポート側)を選択し、文
字列照合手段102に出力する。また、2文字通過フラ
グレジスタ3362には本ステップ2文字通過フラグ3
364として0が格納される。The character code selector 3370 selects the character code to be output from the fill ring according to the value of the select signal 3302. That is, the select signal 33
Since the value of 02 is 1, the character code buffer 3350
"S" (Y port side) which is the output from b is selected and output to the character string collating means 102. In addition, the two-character passage flag register 3362 stores this step two-character passage flag 3
0 is stored as 364.
【0111】2回目の入力では、フラグバッファ334
0aおよび3340bと文字コードバッファ3350a
および3350bのリードイネーブル(RE)信号33
01が1であるから、各バッファから次の2文字に対応
する値、すなわち文字コードバッファ3350aおよび
3350bから“ ”および“S”を、フラグバッファ
3340aおよび3340bから一致フラグ3303a
として0、3303bとして1を読み出す。フィルタリ
ング制御デコーダ3361は、先程と同様に上記の入力
に対して、本ステップ2文字通過フラグ3364として
0を、文字コードセレクタ3370のセレクト信号33
02として1を、フラグバッファ3340aおよび33
40bと文字コードバッファ3350aおよび3350
bのリードイネーブル(RE)信号3301として1を
出力する(図18参照)。すなわち、文字コードセレク
タ3370では、セレクト信号3302の値が1である
から、文字コードバッファ3350bからの出力である
“S”(Yポート側)を選択する。また、2文字通過フ
ラグレジスタ3362には本ステップ2文字通過フラグ
3364として0が格納される。On the second input, the flag buffer 334
0a and 3340b and character code buffer 3350a
And read enable (RE) signal 33 of 3350b
Since 01 is 1, the value corresponding to the next two characters from each buffer, that is, "" and "S" from the character code buffers 3350a and 3350b, and the match flag 3303a from the flag buffers 3340a and 3340b, respectively.
0, and 3303b is read as 1. Similarly to the previous case, the filtering control decoder 3361 sets 0 as the step 2 character passage flag 3364 to the above input and selects the selection signal 33 of the character code selector 3370.
1 as 02 is set to the flag buffers 3340a and 33
40b and character code buffers 3350a and 3350
1 is output as the read enable (RE) signal 3301 of b (see FIG. 18). That is, since the value of the select signal 3302 is 1 in the character code selector 3370, “S” (Y port side) which is the output from the character code buffer 3350b is selected. Further, 0 is stored in the two-character passage flag register 3362 as the two-character passage flag 3364 in this step.
【0112】さらに、3回目の入力では、フラグバッフ
ァ3340aおよび3340bと文字コードバッファ3
350aおよび3350bのリードイネーブル(RE)
信号3301が1であるから、各バッファから次の2文
字に対応する値、すなわち文字コードバッファ3350
aおよび3350bから“C”および“S”を、フラグ
バッファ3340aおよび3340bから一致フラグ3
303aとして0、3303bとして1を読み出す。フ
ィルタリング制御デコーダ3361は、先程と同様に上
記の入力に対して、本ステップ2文字通過フラグ336
4として0を、文字コードセレクタ3370のセレクト
信号3302として1を、フラグバッファ3340aお
よび3340bと文字コードバッファ3350aおよび
3350bのリードイネーブル(RE)信号3301として
1を出力する(図18参照)。すなわち、文字コードセ
レクタ3370では、セレクト信号3302の値が1で
あるから、文字コードバッファ3350bからの出力で
ある“S”(Yポート側)を選択する。また、2文字通過
フラグレジスタ3362には本ステップ2文字通過フラ
グ3364として0が格納される。Further, in the third input, the flag buffers 3340a and 3340b and the character code buffer 3 are input.
Read enable (RE) for 350a and 3350b
Since the signal 3301 is 1, the value corresponding to the next two characters from each buffer, that is, the character code buffer 3350.
a and 3350b to "C" and "S", and flag buffers 3340a and 3340b to match flag 3
0 is read as 303a and 1 is read as 3303b. The filtering control decoder 3361, in the same manner as described above, responds to the above input with the step 2 character passage flag 336.
4, 0, 1 as the select signal 3302 of the character code selector 3370, flag buffers 3340a and 3340b, and character code buffer 3350a and
1 is output as the read enable (RE) signal 3301 of the 3350b (see FIG. 18). That is, since the value of the select signal 3302 is 1 in the character code selector 3370, “S” (Y port side) which is the output from the character code buffer 3350b is selected. Further, 0 is stored in the two-character passage flag register 3362 as the two-character passage flag 3364 in this step.
【0113】さらに、4回目の入力では、フラグバッフ
ァ3340aおよび3340bと文字コードバッファ3
350aおよび3350bのリードイネーブル(RE)
信号3301が1であるから、各バッファから次の2文
字に対応する値、すなわち文字コードバッファ3350
aおよび3350bから“B”および“U”を、フラグ
バッファ3340aおよび3340bから一致フラグ3
303aとして1、3303bとして1を読み出す。フ
ィルタリング制御デコーダ3361は、上記の入力に対
して、本ステップ2文字通過フラグ3364として1
を、文字コードセレクタ3370のセレクト信号330
2として0を、フラグバッファ3340aおよび3340b
と文字コードバッファ3350aおよび3350bのリ
ードイネーブル(RE)信号3301として0を出力す
る(図18参照)。すなわち、文字コードセレクタ33
70では、セレクト信号3302の値が0であるから、
文字コードバッファ3350aからの出力である“B”
(Xポート側)を選択する。また、2文字通過フラグレ
ジスタ3362には本ステップ2文字通過フラグ336
4として1が格納される。Further, in the fourth input, the flag buffers 3340a and 3340b and the character code buffer 3 are input.
Read enable (RE) for 350a and 3350b
Since the signal 3301 is 1, the value corresponding to the next two characters from each buffer, that is, the character code buffer 3350.
a and 3350b to "B" and "U", and flag buffers 3340a and 3340b to match flag 3
1 is read out as 303a and 1 as 3303b. The filtering control decoder 3361 sets this step 2 character passage flag 3364 to 1 for the above input.
To the select signal 330 of the character code selector 3370.
2 as 0, flag buffers 3340a and 3340b
And 0 is output as the read enable (RE) signal 3301 of the character code buffers 3350a and 3350b (see FIG. 18). That is, the character code selector 33
At 70, since the value of the select signal 3302 is 0,
"B" which is the output from the character code buffer 3350a
Select (X port side). In addition, the 2-character passage flag register 3362 stores the 2-character passage flag 336 in this step.
1 is stored as 4.
【0114】5回目の入力では、フラグバッファ334
0aおよび3340bと文字コードバッファ3350a
および3350bのリードイネーブル(RE)信号33
01が0であり、各バッファから次の2文字に対応する
値を読み出さないため、文字コードバッファ3350a
および3350bから“B”および“U”が、フラグバ
ッファ3340aおよび3340bから一致フラグ33
03aとして1、3303bとして1が出力されたまま
の状態となる。また、前ステップ2文字通過フラグ33
64には2文字通過フラグ3362から1が出力され
る。フィルタリング制御デコーダ3361は、これらの
入力に対して、本ステップ2文字通過フラグ3364と
して0を、文字コードセレクタ3370のセレクト信号
3302として1を、フラグバッファ3340aおよび33
40bと文字コードバッファ3350aおよび3350
bのリードイネーブル(RE)信号3301として1を
出力する(図18参照)。すなわち、文字コードセレク
タ3370では、セレクト信号3302の値が1である
から、文字コードバッファ3350bからの出力である
“U”(Yポート側)を選択する。また、2文字通過フ
ラグレジスタ3362には本ステップ2文字通過フラグ
3364として0が格納される。At the fifth input, the flag buffer 334
0a and 3340b and character code buffer 3350a
And read enable (RE) signal 33 of 3350b
Since 01 is 0 and the value corresponding to the next two characters is not read from each buffer, the character code buffer 3350a
And 3350b from "B" and "U" from flag buffers 3340a and 3340b.
The state in which 1 is output as 03a and 1 as 3303b is maintained. Also, the previous step 2 character passage flag 33
In 64, 1 is output from the two-character passage flag 3362. The filtering control decoder 3361 sets 0 as the step 2 character passage flag 3364 for these inputs, and outputs the select signal of the character code selector 3370.
1 as 3302, flag buffers 3340a and 33
40b and character code buffers 3350a and 3350
1 is output as the read enable (RE) signal 3301 of b (see FIG. 18). That is, since the value of the select signal 3302 is 1 in the character code selector 3370, “U” (Y port side) which is the output from the character code buffer 3350b is selected. Further, 0 is stored in the two-character passage flag register 3362 as the two-character passage flag 3364 in this step.
【0115】最後に、6回目の入力では、フラグバッフ
ァ3340aおよび3340bと文字コードバッファ3
350aおよび3350bのリードイネーブル(RE)
信号3301が1であるから、各バッファから次の2文
字に対応する値、すなわち、文字コードバッファ335
0aおよび3350bから“S”および“ ”を、フラ
グバッファ3340aおよび3340bから一致フラグ
3303aとして1、3303bとして0を読み出す。
フィルタリング制御デコーダ3361は、上記の入力に
対して、本ステップ2文字通過フラグ3364として0
を、文字コードセレクタ3370のセレクト信号330
2として0を、フラグバッファ3340aおよび3340b
と文字コードバッファ3350aおよび3350bのリ
ードイネーブル(RE)信号3301として1を出力す
る(図18参照)。すなわち、文字コードセレクタ33
70では、セレクト信号3302の値が0であるから、
文字コードバッファ3350aからの出力である“S”
(Yポート側)を選択する。Finally, in the sixth input, the flag buffers 3340a and 3340b and the character code buffer 3 are
Read enable (RE) for 350a and 3350b
Since the signal 3301 is 1, the value corresponding to the next two characters from each buffer, that is, the character code buffer 335.
"S" and "" are read from 0a and 3350b, and 1 is read as the match flag 3303a and 0 as 3303b from the flag buffers 3340a and 3340b.
The filtering control decoder 3361 sets the step 2 character passage flag 3364 to 0 for the above input.
To the select signal 330 of the character code selector 3370.
2 as 0, flag buffers 3340a and 3340b
And 1 is output as the read enable (RE) signal 3301 of the character code buffers 3350a and 3350b (see FIG. 18). That is, the character code selector 33
At 70, since the value of the select signal 3302 is 0,
"S" which is the output from the character code buffer 3350a
Select (Y port side).
【0116】以上が本実施例における並列フィルタリン
グ手段3000の構成および動作である。The above is the configuration and operation of the parallel filtering means 3000 in this embodiment.
【0117】このように本実施例によると、フィルタリ
ング回路を二つ並列に動作させることにより、30文字
の入力テキスト“HIGH-SPEED SCSI BUS CONTROLLER”を
15回の処理サイクルで、検索タームに含まれる“SSSB
US”の6文字だけにフィルタリングすることが可能とな
る。すなわち、並列化しない場合に比べ、フィルタリン
グの処理サイクルを15/30、つまり1/2にするこ
とができ、これにより文字列検索装置の照合スループッ
トを2倍高めることができることになる。As described above, according to this embodiment, by operating two filtering circuits in parallel, the input text of 30 characters "HIGH-SPEED SCSI BUS CONTROLLER" is included in the search term in 15 processing cycles. "SSSB
It is possible to filter to only 6 characters of "US". That is, the processing cycle of filtering can be reduced to 15/30, that is, 1/2 as compared with the case of not parallelizing. The collation throughput can be doubled.
【0118】なお、本実施例では特願平4−93067号明細
書「フィルタリング回路を備えた文字列検索装置」に記
されているフィルタリング回路のうち、不連続文字の出
現を表す区切り記号(デリミタ)を挿入しない場合の単
一フィルタリング回路を並列に動作させた場合を例とし
て説明した。しかし、前記先願発明に記載されている他
のフィルタリング回路、例えばデリミタを挿入した場合
の単一フィルタリング回路や単一先頭フィルタリング回
路などを並列に動作させた場合についても同様に実現で
きることは明らかである。In this embodiment, among the filtering circuits described in Japanese Patent Application No. 4-93067 “Character string search device equipped with filtering circuit”, a delimiter (delimiter) indicating the appearance of discontinuous characters is used. ) Has been described as an example in which the single filtering circuits are operated in parallel. However, it is obvious that other filtering circuits described in the above-mentioned prior invention, for example, a single filtering circuit when a delimiter is inserted or a single head filtering circuit can be operated in parallel, can be similarly realized. is there.
【0119】また、本実施例ではフィルタリング手段を
二つ並列に動作させた場合について説明したが、並列に
動作させるフィルタリング手段の数を三つ以上にした場
合についても、上記実施例と同様の方法で実現できるこ
とも明らかである。Further, although the case where two filtering means are operated in parallel has been described in the present embodiment, the same method as in the above embodiment is applied to the case where the number of filtering means operated in parallel is three or more. It is also clear that can be realized with.
【0120】さらに、本実施例では入力テキストが1バ
イト文字で表された場合について説明したが、入力テキ
ストが2バイト文字で表された場合についても上記実施
例と同様に実現できることも明らかである。Further, although the case where the input text is represented by 1-byte characters has been described in the present embodiment, it is clear that the case where the input text is represented by 2-byte characters can be realized in the same manner as the above-mentioned embodiment. .
【0121】[0121]
【発明の効果】以上のように本発明によれば、フィルタ
リング回路を二つ並列に動作させることにより、例えば
30文字の入力テキスト“HIGH-SPEED SCSI BUS CONTRO
LLER”を15回の処理サイクルで、検索タームに含まれ
る“SSSBUS”の6文字だけにフィルタリングすることが
可能となる。すなわち、並列化しない場合に比べ、フィ
ルタリングの処理サイクルを15/30、つまり1/2
にすることができ、これにより文字列検索装置の照合ス
ループットを2倍高めることができる。As described above, according to the present invention, by operating two filtering circuits in parallel, the input text "HIGH-SPEED SCSI BUS CONTRO" of, for example, 30 characters can be obtained.
It is possible to filter "LLER" to only 6 characters of "SSSBUS" included in the search term in 15 processing cycles, that is, the processing cycle of filtering is 15/30, that is, compared to the case without parallelization. 1/2
Therefore, the matching throughput of the character string search device can be doubled.
【0122】[0122]
【図1】本発明の文字列検索装置の説明図。FIG. 1 is an explanatory diagram of a character string search device of the present invention.
【図2】従来の文字列検索装置の説明図。FIG. 2 is an explanatory diagram of a conventional character string search device.
【図3】従来のオートマトンの状態遷移図。FIG. 3 is a state transition diagram of a conventional automaton.
【図4】従来のトークンの制御方法の説明図。FIG. 4 is an explanatory diagram of a conventional token control method.
【図5】従来の文字列照合回路の構成を示すブロック
図。FIG. 5 is a block diagram showing a configuration of a conventional character string matching circuit.
【図6】従来の文字列検索装置の説明図。FIG. 6 is an explanatory diagram of a conventional character string search device.
【図7】従来のフィルタリング手段の構成を示すブロッ
ク図。FIG. 7 is a block diagram showing the configuration of a conventional filtering means.
【図8】従来のフィルタリングテーブルの説明図。FIG. 8 is an explanatory diagram of a conventional filtering table.
【図9】従来のフィルタリング手段のタイミングチャー
ト。FIG. 9 is a timing chart of conventional filtering means.
【図10】従来のオートマトンの状態遷移図および従来
のトークンの制御方法の説明図。FIG. 10 is a state transition diagram of a conventional automaton and an explanatory diagram of a conventional token control method.
【図11】本発明の文字列検索装置の説明図。FIG. 11 is an explanatory diagram of a character string search device of the present invention.
【図12】本発明の分配手段の構成を示すブロック図。FIG. 12 is a block diagram showing a configuration of a distribution unit of the present invention.
【図13】本発明の分配手段の動作例の説明図。FIG. 13 is an explanatory diagram of an operation example of the distribution unit of the present invention.
【図14】本発明のフィルタリング手段の構成を示すブ
ロック図。FIG. 14 is a block diagram showing the configuration of the filtering means of the present invention.
【図15】本発明のフィルタリング手段の動作例の説明
図。FIG. 15 is an explanatory diagram of an operation example of the filtering means of the present invention.
【図16】本発明の収集手段の構成を示すブロック図。FIG. 16 is a block diagram showing the configuration of a collection unit of the present invention.
【図17】本発明のフィルタリング制御回路の構成を示
すブロック図。FIG. 17 is a block diagram showing the configuration of a filtering control circuit according to the present invention.
【図18】本発明のフィルタリング制御デコーダの入出
力関係の説明図。FIG. 18 is an explanatory diagram of input / output relationships of the filtering control decoder of the present invention.
【図19】本発明の文字コードレジスタ,フラグレジス
タ,文字コードバッファ,フラグバッファの動作例の説
明図。FIG. 19 is an explanatory diagram of an operation example of a character code register, a flag register, a character code buffer, and a flag buffer of the present invention.
【図20】本発明のフィルタリング制御回路および文字
コードセレクタの動作例の説明図。FIG. 20 is an explanatory diagram of an operation example of the filtering control circuit and the character code selector of the present invention.
102…文字列照合手段、105…文字列記憶手段、3
000…フィルタリング手段、3200…文字コードレ
ジスタ、3300…単一フィルタリングテーブル。102 ... Character string collating means, 105 ... Character string storing means, 3
000 ... Filtering means, 3200 ... Character code register, 3300 ... Single filtering table.
───────────────────────────────────────────────────── フロントページの続き (72)発明者 篠崎 雅継 東京都千代田区神田駿河台四丁目6番地 株式会社日立製作所内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Masatsugu Shinozaki 4-6, Surugadai Kanda, Chiyoda-ku, Tokyo Inside Hitachi, Ltd.
Claims (6)
ト中に、指定された複数の検索タームが存在するか否か
を一括して判定する文字列検索装置において、上記テキ
ストを格納する文字列記憶手段と、上記文字列記憶手段
から読み出されたテキストを複数文字一括して取り込
み、文字コードが上記検索タームに含まれているか否か
を並列に判定し、含まれている場合のみ出力する並列フ
ィルタリング手段と、上記並列フィルタリング手段から
出力された文字コード列中に上記検索タームが存在する
か否かを一括して照合する文字列照合手段とを含むこと
を特徴とする文字列検索装置。1. A character string search device for collectively determining whether or not a plurality of designated search terms exist in a text composed of code-represented characters, and a character string for storing the text. The storage means and the text read from the character string storage means are collectively fetched in a plurality of characters, it is judged in parallel whether or not the character code is included in the search term, and only when it is included, it is output. A character string search device comprising: parallel filtering means; and character string matching means for collectively checking whether or not the search term is present in the character code string output from the parallel filtering means.
グ手段として、上記文字列記憶手段から読み出されたテ
キストから一度に複数文字取り込み、1文字ずつ分割し
て送出する分配手段と、上記分配手段から出力される文
字コードが上記検索タームに含まれている文字コードで
あるか否かを判定する並列に並べられた複数のフィルタ
リング手段と、上記複数のフィルタリング手段から出力
される文字コードを取り込み整列して出力する収集手段
とを含む文字列検索装置。2. A distribution means for fetching a plurality of characters from a text read from the character string storage means at a time and dividing and sending one character at a time, as the parallel filtering means, according to claim 1. A plurality of filtering means arranged in parallel for determining whether the output character code is a character code included in the search term, and the character codes output from the plurality of filtering means are fetched and aligned. A character string search device including a collecting means for outputting the information.
段として、上記文字列記憶手段から読み出されたテキス
トから1文字ずつ取り込み、上記文字コードが指定され
た検索タームに含まれている場合にはこれを上記文字列
照合手段に出力するとともに、含まれていない場合には
出力せず、直前に出力した文字コードが上記検索ターム
に含まれていたときにのみ特定の区切りコードを上記文
字列照合手段に出力するフィルタリング手段を有する文
字列検索装置。3. The filtering means according to claim 2, wherein the filtering means fetches the characters one by one from the text read out from the character string storing means, and if the character code is included in the designated search term, this is used. Is output to the above character string collating means and is not output if it is not included, and a specific delimiter code is output only when the character code output immediately before is included in the above search term. A character string search device having filtering means for outputting to.
段として、予め指定された検索タームに含まれる文字の
文字コードに対応するスロットに1を、それ以外の文字
コードに対応するスロットに0を設定したフラグ格納手
段と、上記文字列記憶手段から入力された文字コードに
対応して上記フラグ格納手段を参照し、読み出されたフ
ラグが1の場合には上記文字コードを上記文字列照合手
段に出力し、0の場合には出力しないという選択を行う
出力選択手段により構成した文字列検索装置。4. The filtering means according to claim 2, wherein the slot corresponding to a character code of a character included in a search term designated in advance is set to 1 and the slots corresponding to other character codes are set to 0. The flag storage means and the flag storage means are referred to in correspondence with the character code input from the character string storage means, and when the read flag is 1, the character code is output to the character string collating means. However, the character string search device constituted by the output selection means for selecting not to output when 0.
段として、上記文字列記憶手段から読み出されたテキス
トから1文字ずつ取り込み、上記文字コードが上記検索
タームの先頭文字コードのとき文字列照合手段に出力す
るとともに、先頭文字コード以外のときには出力せず、
一旦上記先頭文字コードを上記文字列照合手段に出力し
た後は入力文字コードが上記検索タームに含まれる場合
のみこれを文字列照合手段に出力し、含まれない場合に
は出力しない、フィルタリング手段を有する文字列検索
装置。5. The filtering means as claimed in claim 2, wherein each character is fetched from the text read from the character string storage means one by one, and when the character code is the first character code of the search term, the character string collating means. In addition to outputting, it does not output except for the first character code,
Once the first character code is output to the character string collating means, the input character code is output to the character string collating means only when it is included in the search term, and is not output when it is not included. A character string search device having.
段として、上記文字列記憶手段から読み出されたテキス
トから1文字コードずつ取り込み、上記文字コードが上
記検索タームの先頭文字コードのとき上記文字列照合手
段に出力するとともに、先頭文字コード以外のときには
出力せず、一旦上記先頭文字コードを上記文字列照合手
段に出力した後は入力文字コードが上記検索タームに含
まれる場合のみこれを上記文字列照合手段に出力すると
ともに、含まれない場合には出力せず、直前に出力した
文字コードが上記検索タームに含まれていた場合にのみ
特定の区切りコードを上記文字列照合手段に出力するフ
ィルタリング手段を有する文字列検索装置。6. The filtering means according to claim 2, wherein the character code is fetched from the text read from the character string storage means one by one, and when the character code is the first character code of the search term, the character string collation is performed. The above character string collation is performed only when the input character code is included in the above search term after outputting the above first character code to the above character string collating means while outputting to the means The filtering means that outputs the specified delimiter code to the character string collating means only when the character code output immediately before is output to the character string collating means while not outputting the character code to the character string collating means. A character string search device having.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4306748A JPH06162083A (en) | 1992-11-17 | 1992-11-17 | Character-string retrieving device |
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 |
---|---|---|---|
JP4306748A JPH06162083A (en) | 1992-11-17 | 1992-11-17 | Character-string retrieving device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06162083A true JPH06162083A (en) | 1994-06-10 |
Family
ID=17960841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4306748A Pending JPH06162083A (en) | 1989-06-14 | 1992-11-17 | Character-string retrieving device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06162083A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011010341A (en) * | 1999-06-30 | 2011-01-13 | Apptitude Acquisition Corp | Method and apparatus for monitoring traffic in network |
JP2014235625A (en) * | 2013-06-04 | 2014-12-15 | 日本電気株式会社 | Character string extraction apparatus, character string extraction method, and program |
-
1992
- 1992-11-17 JP JP4306748A patent/JPH06162083A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011010341A (en) * | 1999-06-30 | 2011-01-13 | Apptitude Acquisition Corp | Method and apparatus for monitoring traffic in network |
JP2014235625A (en) * | 2013-06-04 | 2014-12-15 | 日本電気株式会社 | Character string extraction apparatus, character string extraction method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5140644A (en) | Character string retrieving system and method | |
US7254632B2 (en) | Apparatus and method for pattern matching in text based protocol | |
US5752020A (en) | Structured document retrieval system | |
US5471610A (en) | Method for character string collation with filtering function and apparatus | |
JPS5846742B2 (en) | Interactive data search device | |
EP0245041A2 (en) | Text processing apparatus for processing text in accordance with different selected text formats | |
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 | |
JPH11224258A (en) | Device and method for image retrieval and computer-readable memory | |
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 | |
JPH06162083A (en) | Character-string retrieving device | |
JP3141428B2 (en) | Numerical value search apparatus and method | |
EP0468402B1 (en) | Character string retrieving system and method | |
JP3459049B2 (en) | Character string search method and device | |
JP3360308B2 (en) | Character string search method and device | |
JPH05147275A (en) | Printing device | |
JPH0619962A (en) | Text dividing device | |
JPH0561758A (en) | Information link device | |
JP3005380B2 (en) | Slip transaction data input device and input method | |
JPH11161666A (en) | Method and device for document data retrieval and document editing device | |
JPH09265472A (en) | Picture database system | |
JP2838972B2 (en) | Automatic indexing device | |
JPH06103310A (en) | Character stiring retrieving device equipped with concatenated filtering circuit | |
JPH06139279A (en) | Retrieving device | |
JP3293551B2 (en) | Sorting method |