JP3649472B2 - 情報検索装置 - Google Patents
情報検索装置 Download PDFInfo
- Publication number
- JP3649472B2 JP3649472B2 JP14521395A JP14521395A JP3649472B2 JP 3649472 B2 JP3649472 B2 JP 3649472B2 JP 14521395 A JP14521395 A JP 14521395A JP 14521395 A JP14521395 A JP 14521395A JP 3649472 B2 JP3649472 B2 JP 3649472B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- sequence number
- pattern
- character
- appearance
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【産業上の利用分野】
本発明は、データベースからキーワードで指定された文字列を含むデータを検索する情報検索装置に関し、特に、検索処理及びデータベースへのデータの追加、更新、削除に関する処理を高速で行なえるようにしたものである。
【0002】
【従来の技術】
近年、情報検索では、利用者が思いついた言葉をキーワードとして入力すると、データベースに登録されたデータを全文検索して、そのキーワードの文字列を含むデータを自動検索するシステムが注目を集めている。特に、リレーショナルデータベース管理システム(RDBMS)などではその製品化が図られており、多方面での応用が広まっている。
【0003】
この種の情報検索装置は、例えば特開昭63−155324、特開平1−282635、特開平2−302869、特開平3−113626に示されている。特開昭63−155324(情報検索装置)では、操作者が指定した検索キ−ワ−ドに対して、登録データを1サイクル毎に1ワ−ドづつシフトさせて比較し情報検索を行なっている。また、特開平1−282635(索引保守方式)では、登録データの検索に使用する索引として、主索引と比較的小さな副索引とを保持し、追加する登録データの索引レコ−ドを副索引に加えることにより、登録デ−タの更新・追加・削除を高速化している。また、特開平3−113626(バツフア制御方式及び装置)では、バツフア内のデ−タの検索と、補助記憶装置からバツフアへのデ−タの転送とを並行して実行することにより、タスクのスル−プツトの向上を図っている。また、特開平2−302869(フアイル編集方式)では、メモリ領域の無駄を無くすとともに、メモリ上の処理対象デ−タを高速に特定できるようにするため、メモリの空きエリアポインタを保持するテ−ブルを作成し、このテ−ブルを参照してメモリ上の処理対象文字列デ−タを特定している。
【0004】
これらの4つの従来の情報検索装置では、記憶領域にデータ用領域とデータ更新用領域とをレコード番号単位で確保し、データ更新時にはデータ更新用領域にデータを蓄えて、データ用領域とデータ更新用領域とを置き換える方式(特開昭63−1554324、特開平1−282635、特開平2−302869)や、検索ファイルに格納された文字列データとそのレコードとの対応表(テーブル)を使ってデータの追加・更新・削除を行なう方式(特開平2−302869)が採られており、本発明は後者に対応する。
【0005】
次に、従来の情報検索装置における、データの登録、変更、削除の処理について説明する。図19は従来の情報検索装置の処理図を、また、図20は従来の情報検索装置でのテーブルとデータの流れとを示している。検索対象ファイルとしてテーブル図20(a)の3レコードを例として説明する。ここで、Aレコードでは2文字と2文字が各々データ構造として蓄えられ、Bレコードでは2文字と5文字が蓄えられるものとする。この時、Aレコードの「12」とAレコードの「あい」が対応し、Aレコードの「34」とAレコードの「うえ」が対応するエリアとなる。データの登録、変更、削除の処理は、図19に示すように、
ステップ1:検索対象ファイルの図20(a)のテーブルを検索対象レコードとして順次読み込み、
ステップ2:各文字の位置(レコードの何番目か)、文字サイズ、同じアイテム(項目)へのポインタをセットし、図20(a)のテーブルを図20(b)のテーブルに変換する処理をメモリ上で行なう。例えば、ポインタのセットは第一レコードAの「12」と第三レコードAの「あい」が同じアイテムであることから「あい」へのポインタp1をセットする。以下同様に第一レコードAの「34」が第三レコードAの「うえ」へのポインタをセットする処理をする。
【0006】
ステップ3:以上の処理を、図20(a)のテーブルの最後まで繰り返し、
ステップ4:メモリの空きエリアにテーブルをセットすることにより図20(b)のテーブルが最終的に作成される。
【0007】
ステップ5:データを更新する場合、例えば図20(a)で第一レコードAの「34」を「56」に更新する場合には、図20(b)のテーブルからレコードAを調べ、第3行目の内容「34」を検出して、「56」に書き換える。サイズ、ポインタの変更は発生しない。
【0008】
また、削除の場合、例えば図20(a)で第三レコードAの「うえ」を削除する場合には、図20(b)のテーブルからレコードAを調べ、このテーブルから第3行目のp2へのポインタを辿って第7行目の内容「うえ」を検出し、削除する。このとき、第3行目の「p2へ」のポインタも併せて削除する。
【0009】
このように、従来の情報検索装置では、先頭番地、サイズ、ポインタを手掛かりにテーブルを辿り、登録、更新、削除を実現する。
【0010】
【発明が解決しようとする課題】
しかし、従来の情報検索装置では、データベースのデータ数が多くなると、キーワードで指定された文字列を含むデータの全文検索に長い時間が掛かり、そのため、より高速での検索方式が求められている。
【0011】
また、従来の情報検索装置では、データの更新または削除時に、その処理のために更新または削除するレコード分の拡張領域を確保する必要があり、膨大な記憶領域を用意しなければならないという問題があった。
【0012】
また、データの更新または削除を行なった後に、レコードの順番を整えるためのソーティングの処理が必要になり、そのため、データの更新、削除に時間が掛かるという問題があった。
【0013】
また、データの更新または削除時には、データがぎっしり詰まった検索ファイル中に更新後の情報を挿入したり、このファイル中からデータを削除しているため、その挿入位置や削除位置より後方のデータについては全てシフトさせなければならず、更新や削除に時間が掛かるいう問題があった。
【0014】
また、削除するデータについて削除用のフラグを立てて間に合わせる方式もあるが、この場合には、削除データの増加に伴って、検索ファイルが増大化してしまうという問題点を有していた。
【0015】
本発明は、こうした従来の問題点を解決するものであり、キーワードで指定された文字列などを含むデータがデータベースに存在するか否かを高速で検索することができ、また、データの更新、削除を迅速に行なうことができる情報検索装置を提供することを目的としている。
【0016】
【課題を解決するための手段】
そこで、本発明では、キーワードを含むデータを検索する情報検索装置において、検索対象データを構成する文字の出現順序番号を計算する文字情報抽出手段と、検索対象データの隣接する文字の組とこの文字の各出現順序番号を組合せた出現順序番号パターンとを対応させて検索ファイルを作成する検索ファイル生成手段と、検索ファイルからキーワードにおける隣接する文字の組に対応する出現順序番号パターンを検索し、得られた出現順序番号パターンを照合してキーワードを含む検索対象データを検索する検索手段とを設けている。
【0017】
また、検索ファイル生成手段が、出現順序番号パターンを検索ファイル上に昇順または降順に配列し、検索手段が、検索ファイル上で昇順または降順を満たす範囲にある出現順序番号パターンを照合に使用している。
【0018】
また、検索ファイル生成手段は、検索ファイルの作成に当たって、出現順序番号パターンの配列の終端にその前に在る出現順序番号パターンと同じ出現順序番号パターンを付け加え、検索手段は、付け加えられた出現順序番号パターンに照合の順番が達したときその照合を止める。
【0019】
また、検索ファイルにおける出現順序番号パターンの配列の終端に空白の拡張領域を付け加えるとともに、検索対象データの変更に伴って出現順序番号パターンの追加が必要になったときにこの拡張領域に出現順序番号パターンを追加する検索ファイル修正手段を設けている。
【0020】
また、検索ファイルに記述された出現順序番号パターンの内からキーワードの検索に使用する有効出現順序番号パターンの範囲を特定するために、有効出現順序番号パターンの配列の終端にその前に在る出現順序番号パターンと同じ出現順序番号パターンを書き加え、有効でない出現順序番号パターンだけの配列の前に空白の拡張領域を付け加える検索ファイル修正手段を設けている。
【0021】
【作用】
この情報検索装置では、検索対象データの文字種ごとの出現順序番号、つまり、各文字がその文字種において何番目に出現した文字であるかを計算し、データの文字列を1文字ずつずらしながら、その文字と隣接する文字とから成る文字パターンの各文字の出現順序番号を組にした出現順序番号パターンを求め、この出現順序番号パターンを集めて検索ファイルを構成する。検索時には、キーワードを複数の文字パターンに分割し、各文字パターンに対応する出現順序番号パターンをこの検索ファイルから求め、その出現順序番号パターンを照合し、各文字パターンが検索対象データにおいて連続していると判明したとき、そのデータがキーワードを含むものとして検出している。
【0022】
この情報検索装置では、出現順序番号を利用する方式であるために、パターンの所在場所を文字位置で押さえる従来方式に比較して、検索ファイルのサイズを小さくできる。また、キーワードの検索に当たっては、検索対象データの文字列の中から、キーワードの文字パターンに一致する文字パターンだけを検索ファイルより読出し、その出現順序番号パターンを基にキーワードの包含の有無を照合しているため、検索対象データの全ての文字列を照合対象とする必要がないので、高速での検索が可能となる。
【0023】
また、検索ファイルでの出現順序番号パターンの順番を昇順または降順に設定し、検索時には、この昇順または降順を満たす範囲で出現順序番号パターンの照合を進めることにより、照合の不必要な相手を高速で確認することができる。そのため、照合回数を減らすことができ、検索を高速化することができる。
【0024】
データ更新時には、検索ファイルの出現順序番号パターンまたは拡張領域の上に新たな出現順序番号パターンを上書きすることができるため、検索ファイルのデータを一つずつずらすなどの処理が不要であり、検索ファイルの更新を高速で行なうことができる。また、出現順序番号パターンの書き加えが可能な拡張領域を、出現順序番号パターンの各配列の後に設けることにより、検索ファイル中での拡張領域の配置割合が一定化し、更新処理時間の平均化を図ることができ、更新時間の目安を立てることができる。
【0025】
また、データの削除時には、検索ファイルの関連データを全て削除する代わりに、無効となる出現順序番号パターンの配列の前に、昇順または降順を崩す出現順序番号パターンや空白の拡散領域を設けることによって、有効出現順序番号パターンと区別することができる。そのため、検索ファイルを削除する必要がないので、短時間で削除処理を実現することができる。
【0026】
なお、本明細書では、「文字」という用語を、文字データだけでなく、パターン化または記号化されたデータの全てを含むものとして用いている。本発明の情報検索装置は、文字データだけでなく、パターン化または記号化されたデータの全てを対象として、そのデータの登録、更新、削除、検索を実現することができる。
【0027】
【実施例】
(第1実施例)
実施例の情報検索装置では、テキストの文字列が例えば「ああいああいあんんああんあい」である場合に、図3に示すように、文字種(「あ」「い」「ん」)別の出現順序番号(なお、図面では「出現順序番号」を「出現度数」と表示している。)、即ち、文字列のそれぞれの「あ」が何番目の「あ」であるか、それぞれの「い」が何番目の「い」であるか、また、それぞれの「ん」が何番目の「ん」であるかを求めて文字パターン度数表(図3)を作成し、次いで、文字列の連続する2文字の組を文字パターンとして、その文字パターンに対応する出現順序番号のパターンを求める。文字列の「ああいあ」に対して、文字パターンは(あ,あ)(あ,い)(い,あ)であり、各文字パターンの出現順序番号パターンは(1,2)(2,1)(1,3)となる。次に、文字パターンごとに出現順序番号パターンを集めて、図5に示す各テキストごとの出現順序番号リスト(インデックスファイル)を作成する。
【0028】
一方、キーワードの文字列が「あいあ」である場合に、この文字列の文字パターンは(あ,い)(い,あ)である。キーワードとテキストとの照合に際しては、まず、テキストの出現順序番号リストから、キーワードの文字パターンに対応する出現順序番号パターンを得る。図5の出現順序番号リストから得た(あ,い)の出現順序番号パターンは(2,1)(4,2)(8,3)であり、(い,あ)の出現順序番号パターンは(1,3)(2,5)である。この(あ,い)の出現順序番号パターンの第2要素と、(い,あ)の出現順序番号パターンの第1要素とが一致するとき、テキストはキーワードの文字列「あいあ」を含むことになる。この例の場合、(2,1)の第2要素(1)と(1,3)の第1要素(1)とが一致し、また、(4,2)の第2要素(2)と(2,5)の第1要素(2)とが一致するから、このテキストは「あいあ」というキーワードを含んでいる。
【0029】
実施例の情報検索装置は、基本的にこうした方式でキーワードを含むテキストを検索する。この装置は、図1に示すように、検索対象のテキストデータを収めたテキストデータベース31と、テキストデータベース31からテキストを一つずつ読込んで各テキストごとのテキストレコードを生成するテキスト生成部32と、検索したいキーワードを読み込むキーワード読込部38と、テキスト修正用の修正テキストデータを読込む修正テキスト読取部312と、テキストレコードや修正用のテキストレコードから文字パターン度数表を作成し、またキーワードから文字パターンを作成する連続文字情報抽出部33と、文字パターン度数表から文字パターンとその出現順序番号パターンとより成るインデックスファイルデータを作成するインデックス生成部35と、連続文字情報抽出部33で作成される文字パターン度数表やインデックス生成部35で作成されるインデックスファイルを格納するインデックスファイル記憶部34と、インデックスファイルの出現順序番号パターンリストの最後に拡張領域を追加する拡張領域生成部36と、インデックスファイルのデータとキーワードの文字パターンとを照合してキーワードの文字パターンがテキスト中に連続する状態で含まれているかどうかを検索するインデックス検索部39と、照合すべき出現順序番号パターンが無くなったときにインデックス検索部39に照合の停止を命令する文字度数存在検索部310と、インデックス検索部39の検索結果を表示出力する検索結果出力部311と、テキスト修正時にインデックスファイルの出現度数パターンを更新する更新データ生成部37とを備えている。
【0030】
第1実施例では、テキストからインデックスファイルを生成する動作と、このインデックスファイルを使ってキーワードが含まれるテキストを検索する動作とについて説明する。この場合、図1の情報検索装置の修正テキスト読取部312及び更新データ生成部37は使用しない。
【0031】
インデックスファイルの生成は図2の処理フローに従って行なわれる。
【0032】
ステップ1:先ず、テキスト生成部32は、テキストデータベース31からテキストを読込み、そのテキストのテキストレコードにレコード番号Niを付与する。いま、このテキストレコードが「ああいああいあんんああんあい」であるとする。 ステップ2:連続文字情報抽出部33は、テキストレコードの先頭の文字にポインタpをセットし、文字種の出現順序番号N(A)のカウント値を初期化した後、
ステップ3:ポインタ位置における文字の
ステップ4:文字種ごとの出現順序番号をカウントし、
ステップ5:文字パターン度数表(図3)を作成して、インデックスファイル記憶部34に格納する。この表には文字種ごとの出現順序番号とレコード番号との組が記述される。
【0033】
ステップ6:ポインタ位置がテキストレコードの最後の文字に達していないときは、
ステップ7:ポインタを次の文字に移し、ステップ3に戻って、その文字の文字種ごとの出現順序番号を調べる。
【0034】
この手順を繰り返して、レコード番号Niのテキストレコードに関する文字パターン度数表の作成が終了すると、
ステップ8:インデックス生成部35は、この文字パターン度数表のテキストレコードの先頭に、文字パターン(2文字ずつの文字の組)を指定するポインタiをセットし、
ステップ9:ポインタiの指し示す文字パターンの各文字における出現順序番号を求め、
ステップ10:この出現順序番号の組から成る出現順序番号パターンを、文字パターンと対応させてインデックスファイル(図5)に記録する。また、インデックスファイルにはレコード番号Niを併せて記録する。
【0035】
ステップ11:ポインタiがテキストレコードの終端に達していなければ、
ステップ12:ポインタiを1文字分移動して、ステップ9に戻り、
文字パターン度数表からポインタの指し示す文字パターンの出現順序番号パターンを求め、その文字パターンが未だインデックスファイルに記録されていないときは、その文字パターンと出現順序番号パターンとを対応させてインデックスファイルに記録し、併せてレコード番号Niを記録する。また、その文字パターンが既にインデックスファイルに記録されているときは、その文字パターンに対応する出現順序番号パターンリストの末尾に、求めた出現順序番号パターンを記録する。
【0036】
こうした手順を繰り返し、ポインタiがテキストレコードの終端にまで達すると、
ステップ13:領域拡張生成部36は、インデックスファイルの全ての出現順序番号パターンリストの最後尾に拡張領域を設け、そこを空白領域としたり、またはそこに最後の出現順序番号パターンと同じ出現順序番号パターンを記録する。
【0037】
図6に拡張領域を加えたインデックスファイルのデータ構造を示している。なお、このファイルの出現順序番号パターンリストでは、出現順序番号パターンを構成する個々の要素が昇順に並んでいる。即ち、出現順序番号リストの要素を(Ai,Bi)とすると、A1<A2<‥<Am、B1<B2<‥<Bmの関係が成り立つ。
【0038】
ステップ14:以上の処理を、テキストデータベース31から順番に読出したテキストレコードに対して繰り返し、
ステップ15:テキストデータベース31に格納されたテキストの全てに対する処理が終えると、インデックスファイルの生成を終了する。
【0039】
次に、インデックスファイルを使ってキーワードが含まれるテキストを検索する動作について説明する。これは図7の手順で行なわれる。ここでは、キーワードが「あいあ」であるとする。
【0040】
ステップ1:先ず、キーワード読取部38はキーワードを読み込み、
ステップ2:連続文字情報抽出部33は、このキーワードを2文字ずつの文字パターンの組(A[p],B[p+1])(B[p+1],C[p+2])‥に分解する。ここでA[p]はキーワードのp番目の文字Aを示す。キーワード「あいあ」の場合には(あ,い)と(い,あ)とに分解される。
【0041】
ステップ3:連続文字情報抽出部33は、レコード番号Niをセットし、
ステップ4:ポインタpをキーワードの先頭文字位置にセットして、
ステップ5:キーワードの最初の2つの文字パターン、実例では(あ,い)と(い,あ)、を照合の対象として設定する。
【0042】
ステップ6:インデックス検索部39は、インデックスファイル記憶部34に格納されたレコード番号Niのインデックスファイル(図6)から、第1の文字パターン(あ,い)の出現順序番号リスト(M[p][j],N[p][j])の先頭(j=1)の出現順序番号パターン(2,1)を読取り、
ステップ7:また、第2の文字パターン(い,あ)の出現順序番号リスト(M[p+1][k],N[p+1][k])の先頭(k=1)の出現順序番号パターン(1,3)を読取る。 ここでキーワード「あいあ」に対応するインデックスファイルを図8に示す。文字パターン(A[p],B[p+1])=(あ,い)及び(B[p+1],C[p+2])=(い,あ)に対して、出現順序番号パターンは、それぞれ(MA[p][1],MB[p+1][1])=(2,1)‥(MA[p][n],MB[p+1][n])=(8,3)と(MB[p+1][1],MC[p+2][1])=(1,3)‥(MB[p+1][n],MC[p+2][n])=(2,5)とが対応する。このMA[q][j]は文字A、キーワード文字列のq番目の文字パターンに関するj番目の出現度数パターンを意味する。また、各文字パターンに対する出現順序番号パターンの終端には拡張領域として空欄または最後の出現順序番号パターンと同じ出現順序番号パターンが格納されている。
【0043】
ステップ8:インデックス検索部39は、図9に示すように、第1の文字パターンにおける出現順序番号パターン(2,1)の第2要素と、第2の文字パターンにおける出現順序番号パターン(1,3)の第1要素とが一致するかどうかをチェックし、第1の文字パターンと第2の文字パターンとが連続しているかどうかを照合する。それらが一致しているときは、
ステップ9:検索結果出力部311に、連続する文字「あいあ」とインデックス
ファイルのレコード番号Niとを出力する。
【0044】
ステップ10:インデックス検査部39は、次の連続性の照合のために、第1の文字パターンにおける出現順序番号パターンの第2要素(N[p][j])と第2の文字パターンにおける出現順序番号パターンの第1要素(M[p+1][k])との大きさを比較し、第1要素(M[p+1][k])の方が大きいとき、または、第2要素(N[p][j])と第1要素(M[p+1][k])とが等しいときには、
ステップ11:jをインクリメントし、
ステップ12:第1の文字パターンにおける出現順序番号パターンの第2要素(N[p][j])の方が大きいとき、または、第2要素(N[p][j])と第1要素(M[p+1][k])とが等しいときには、
ステップ13:kをインクリメントする。
【0045】
ステップ14:出現順序番号存在検索部310は、第1の文字パターンにおける出現度数パターンの第2要素(N[p][j])と、その文字パターンにおける次の出現順序番号パターンの第2要素(N[p][j+1])との大小を比較し、また、第2の文字パターンにおける出現順序番号パターンの第1要素(M[p+1][k])と、その文字パターンにおける次の出現順序番号パターンの第1要素(M[p+1][k+1])との大小を比較し、昇順の関係にあるときは、
ステップ15:ステップ8に戻って、更新した出現順序番号パターン間の第2要素と第1要素とを照合する。
【0046】
また、ステップ14において、昇順の関係にないとき、つまり、次の出現順序番号パターンが、領域拡張生成部36によって出現順序番号リストの末尾に生成された空白領域または最後の出現順序番号パターンと同じ出現順序番号パターンを記録した領域に達したときは、その文字パターンに関する照合を終了する。
【0047】
ここで、図10にキーワード「あいあ」についての検索の流れを示す。第1文字パターン(あ,い)の出現順序番号リスト(2,1)(4,2)(8,3)(8,3)の最初の出現順序番号パターン(2,1)と、第2文字パターン(い,あ)の出現順序番号リスト(1,3)(2,5)(2,5)の最初の出現順序番号パターン(1,3)とを比較し、第1の出現順序番号パターンの第2要素「1」が第2の出現順序番号パターンの第1要素「1」と一致するので、その結果を検索結果出力部311に格納する。続いて第1文字パターンにおける2番目の出現順序番号パターン(4,2)と、第2文字パターンにおける2番目の出現順序番号パターン(2,5)とを比較し、第1の出現順序番号パターンの第2要素「2」が第2の出現順序番号パターンの第1要素「2」と一致するので、その結果も検索結果出力部311に格納する。続いて第1文字パターンにおける3番目の出現順序番号パターン(8,3)と、第2文字パターンにおける3番目の出現順序番号パターン(2,5)とを比較することになるが、この第2文字パターンにおける3番目の出現順序番号パターン(2,5)は、同じ文字パターンにおける2番目の出現順序番号パターン(2,5)に対して昇順の関係を満たしていない。そのため、この文字パターンの照合処理をここで終了する。
【0048】
ステップ16:ステップ14において、その文字パターンに対する照合処理が終了したときは、キーワードの他の文字パターンとの照合が済んでいるかどうかを調べ、済んでいなければ、
ステップ17:ステップ5以下の処理を行なう。
【0049】
ステップ18:キーワードの全ての文字パターンについての連続性の照合が終了したときは、そのキーワードの全ての文字パターンに対してステップ9の照合結果が得られているかどうかを調べ、得られているときは、レコード番号Niのテキストを、キーワードを含むものとして表示する。
【0050】
このように実施例の情報検索装置では、テキストの文字パターン(連続する文字種の組合せ)に、その文字パターンの出現順序番号パターンを昇順に配列した出現順序番号リストを対応させて、検索ファイルを作成し、この検索ファイルからキーワードの文字パターンに対応する各出現順序番号リストを読出し、そのリスト間の出現順序番号パターンを照合することによって、キーワードの文字列がテキストデータ中に存在しているかどうかを検索する。この出現順序番号パターンの照合では、出現順序番号パターンが昇順に並んでいるため、出現順序番号パターン同士を網羅的に照合する必要が無く、少ない照合回数で検索することができる。従って、高速での検索が可能になる。
【0051】
なお、出現順序番号リストにおける出現順序番号パターンの順序は降順にしてもよい。また、この情報検索装置は、文字列データだけで無く、その他のパターン化されたデータのパターン列を検索対象とすることができる。
【0052】
(第2実施例)
第2実施例では、データベースに格納されたテキストの変更に伴うインデックスファイルのデータ更新について説明する。
【0053】
図1の情報検索装置において、修正テキスト読込部312は、テキストデータ番号が付けられたテキスト更新用の修正テキストデータを読み込み、連続文字情報抽出部33は、修正テキストデータから文字パターン度数表を作成する。作成された文字パターン度数表はインデックスファイル記憶部34に格納される。インデックス生成部35は、この文字パターン度数表から文字パターン毎の出現順序番号パターンを作成し、更新データ生成部37は、既にあるインデックスファイルの出現順序番号パターンリストにこの出現順序番号パターンを上書きする。また、拡張領域生成部36は、出現順序番号パターンの数が既にある出現順序番号パターンリストを超えた場合に出現順序番号パターン用の拡張領域を追加する。
【0054】
このテキスト変更に伴うインデックスファイルデータの更新の動作を図11の処理フローを用いて説明する。ここではテキストレコードの「ああいああいあんんああんあい」を「ああいあいいあんああいんあい」に変更する場合を例に説明をする。
【0055】
ステップ1:先ず、修正テキスト読取部312は、変更後のテキストレコードを読み取り、レコード番号をセットする。
【0056】
ステップ2:連続文字情報抽出部33は、ポインタpをテキストレコードの先頭文字「あ」にセットし、文字種の出現順序番号N(A)のカウント値を初期化した後、
ステップ3:ポインタ位置における文字の
ステップ4:文字種ごとの出現順序番号をカウントし、
ステップ5:文字パターン度数表(図12)を作成して、インデックスファイル記憶部34に格納する。この表には更新後テキストレコードの文字種ごとの出現順序番号がレコード番号とともに記述される。
【0057】
ステップ6:ポインタ位置が更新後テキストレコードの最後の文字に達していないときは、
ステップ7:ポインタを次の文字に移し、ステップ3に戻って、その文字の文字種ごとの出現順序番号を調べる。
【0058】
この手順を繰り返して、レコード番号Niの更新後テキストレコードに関する文字パターン度数表の作成が終了すると、
ステップ8:インデックス生成部35は、テキストレコード番号Niに対応するインデックスファイルをインデックスファイル記憶部34から探索し、このファイルの先頭にポインタをセットした後、
ステップ9:文字パターン度数表(図12)の更新後テキストレコードの先頭に、文字パターン(2文字ずつの文字の組)を指定するポインタiをセットし、
ステップ10:ポインタiの指し示す文字パターンの各文字における出現順序番号を求める。
【0059】
ステップ11:更新データ生成部37は、この出現順序番号の組から成る出現順序番号パターンを、ポインタの指し示すインデックスファイルの出現順序番号パターンリストに記述されている出現順序番号パターンや拡張領域の上に上書きする。
【0060】
ステップ12:出現順序番号パターンリストが一杯になると、拡張領域生成部36は、リストの最後尾に拡張領域を追加する。
【0061】
ステップ13:インデックス生成部35は、ポインタiが更新後テキストレコードの終端にまで達していなければ、
ステップ14:ポインタiを1文字分移動して、ステップ10に戻り、その文字パターンの出現順序番号パターンを求める動作を繰り返す。
【0062】
ステップ15:ポインタiがテキストレコードの終端にまで達すると、更新データ生成部37は、全ての出現順序番号パターンリストの最後尾にリスト最後の出現順序番号パターンと同じ出現順序番号パターンを生成し、また、拡張領域生成部36は、全ての出現順序番号パターンリストの最後に拡張領域を追加する。また、更新データ生成部37は、上書きがされなかった更新前のテキストレコードに関する出現順序番号パターンの全てを拡張領域に更新する。
【0063】
図13に更新用テキストレコードにおける出現順序番号パターンリストとインデックスファイルとの関係を示し、図14に更新した後のインデックスファイルの構成図を示している。出現順序番号パターンリストの最後には同一の出現順序番号パターンと拡張領域とが追加されている。また、文字パターン(ん,ん)のように、更新前は出現順序番号パターンが存在したが更新後出現しないものについては拡張領域に置き代わっている。
【0064】
更新されたインデックスファイルを用いて行なわれる検索の処理手順は図7と同様である。
【0065】
このように、実施例の情報検索装置では、インデックスファイルの出現順序番号パターンリストの最後尾に空白の拡張領域を設けているため、更新される出現順序番号パターンの数が、既に登録されている出現順序番号パターンの数より多くなる場合でも、その拡張領域に直ちに上書きすることができるので、高速でのデータ更新が可能である。また、この拡張領域は、出現順序番号パターンを記録するエリアが不足しない程度に、その都度、拡張領域を追加する構成であるため、追加の手間が少なくて済む。また、膨大なインデックスファイルを予め用意する場合には、メモリ容量が徒に大きくなるだけでなく、消去や更新の対象となる出現順序番号パターンを調べるために手間取ることになるが、実施例の装置の場合には、そうした虞れが少なく、テキストデータの変更に伴うインデックスファイルの更新を高速で行なうことができる。
【0066】
(第3実施例)
第3実施例では、テキストの一部が削除されたときのインデックスファイルの修正について説明する。
【0067】
テキストレコード「ああいああいあんんああんあい」の後半を削除して、「ああいああいあん」に修正した場合を例として、その動作を説明する。このときの情報検索装置の動作手順を図15に示している。この動作手順の内、ステップ1からステップ10までは、第2実施例で示したテキストレコードの更新時の動作(図11)と同じである。削除後のテキストレコードにより、図16に示す文字パターン度数表が構成され、インデックス生成部35は、この文字パターン度数表から文字パターンの各文字における出現順序番号を求める。
【0068】
ステップ11:更新データ生成部37は、この出現順序番号の組から成る出現順序番号パターンを、既存の同一レコード番号を有するインデックスファイルの出現順序番号パターンリストに上書きする。
【0069】
このとき、テキストレコードの一部削除によって出現順序番号パターンの数はそれまでより減少するので、出現順序番号パターンが拡張領域の上に上書きされることは無いし、また、拡張領域の追加が必要になる事態も発生しない。
【0070】
図16の文字パターン度数表を使って、文字パターンに対応する出現順序番号パターンを求める動作を削除後テキストレコードの終端まで行なったときに、図17に示す出現順序番号パターンリストが得られる。
【0071】
ステップ14:更新データ生成部37は、全ての出現順序番号パターンリストの最後尾にリスト最後の出現順序番号パターンと同じ出現順序番号パターンを追加し、また、削除後テキストレコードにおいて出現しなかった文字パターンについては出現順序番号パターンリストの先頭に拡張領域を追加する。
【0072】
図18に削除した後のインデックスファイルを示している。ここで、有効な出現順序番号パターンは太線で囲った部分であり、その他は検索に使用されない無効部分となる。
【0073】
削除されたインデックスファイルの検索の処理手順は図7と同様である。なお、インデックスファイルの検索は出現順序番号パターンの要素が昇順を保っている範囲でのみ実行されるので、図18に示すインデックスファイルの無効部分での検索は行なわれない。
【0074】
このように第3実施例の情報検索装置では、インデックスファイルを削除する時に、不要なインデックスファイルを全て削除するのでは無く、インデックスファイルの最小限度の範囲を更新するだけで済ませている。従って、削除の手間が削減され、削除を高速で行なうことができる。
【0075】
【発明の効果】
以上の実施例の説明から明らかなように、本発明の情報検索装置は、データベースから、指定されたキーワードを高速に検索することができ、また、データベースへのデータの追加、更新、削除の処理を高速で行なうことができる。
【0076】
このデータベースへのデータの追加、更新、削除の際には、既存のインデックスファイルに拡張領域を設けたり、最後の出現順序番号パターンを再録することにより、インデックスファイルの修正を最小限に保ちながら、データの整理(ごみ削除)を行なうことができる。
【図面の簡単な説明】
【図1】 本発明の実施例における情報検索装置の構成を示すブロック図、
【図2】 第1実施例におけるインデックスファイル生成の処理フロー、
【図3】 第1実施例におけるテキストレコードに対する文字パターン度数表、
【図4】 第1実施例における出現順序番号リストの説明図、
【図5】 第1実施例における文字パターンと出現順序番号パターン、
【図6】 第1実施例におけるインデックスファイル、
【図7】 第1実施例におけるインデックスファイル検索の処理フロー、
【図8】 第1実施例における検索時の文字パターンと出現順序番号パターンリスト、
【図9】 第1実施例における連続性照合の説明図、
【図10】 第1実施例における検索照合順の説明図、
【図11】 第2実施例におけるインデックスファイル更新の処理フロー、
【図12】 第2実施例における更新テキストレコードに対する文字パターン出現順序番号表、
【図13】 第2実施例における文字パターンと出現順序番号パターン、
【図14】 第2実施例におけるインデックスファイル、
【図15】 第3実施例におけるインデックスファイル削除の処理フロー、
【図16】 第3実施例における削除テキストレコードに対する文字パターン出現順序番号表、
【図17】 第3実施例における文字パターンと出現順序番号パターン、
【図18】 第3実施例におけるインデックスファイル、
【図19】 従来の情報検索装置の処理の流れを示す図、
【図20】 従来の情報検索装置のデータテーブルである。
Claims (5)
- キーワードを含むデータを検索する情報検索装置において、
検索対象データを構成する文字の出現順序番号を計算する文字情報抽出手段と、
検索対象データの隣接する文字の組と、前記文字の各出現順序番号を組合せた出現順序番号パターンとを対応させて検索ファイルを作成する検索ファイル生成手段と、
前記検索ファイルから、キーワードにおける隣接する文字の組に対応する出現順序番号パターンを検索し、得られた出現順序番号パターンを照合してキーワードを含む検索対象データを検索する検索手段と
を設けたことを特徴とする情報検索装置。 - 前記検索ファイル生成手段が、前記出現順序番号パターンを前記検索ファイル上に昇順または降順に配列し、前記検索手段が、前記検索ファイル上で昇順または降順を満たす範囲にある前記出現順序番号パターンを前記照合に使用することを特徴とする請求項1に記載の情報検索装置。
- 前記検索ファイル生成手段が、前記検索ファイルの作成に当たって、前記出現順序番号パターンの配列の終端に、その前に在る出現順序番号パターンと同じ出現順序番号パターンを付け加え、前記検索手段が、付け加えられた前記出現順序番号パターンに前記照合の順番が達したとき、前記照合を止めることを特徴とする請求項2に記載の情報検索装置。
- 前記検索ファイルにおける出現順序番号パターンの配列の終端に空白の拡張領域を付け加えるとともに、検索対象データの変更に伴って出現順序番号パターンの追加が必要になったときに、前記拡張領域に前記出現順序番号パターンを追加する検索ファイル修正手段を設けたことを特徴とする請求項1乃至3に記載の情報検索装置。
- 前記検索ファイルに記述された出現順序番号パターンの内から、キーワードの検索に使用する有効出現順序番号パターンの範囲を特定するために、有効出現順序番号パターンの配列の終端にその前に在る出現順序番号パターンと同じ出現順序番号パターンを書き加え、有効でない出現順序番号パターンだけの配列の前に空白の拡張領域を付け加える検索ファイル修正手段を設けたことを特徴とする請求項1乃至3に記載の情報検索装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14521395A JP3649472B2 (ja) | 1995-05-22 | 1995-05-22 | 情報検索装置 |
EP96108088A EP0744702B1 (en) | 1995-05-22 | 1996-05-21 | Information searching apparatus for searching text to retrieve character streams agreeing with a key word |
US08/651,014 US5715446A (en) | 1995-05-22 | 1996-05-21 | Information searching apparatus for searching text to retrieve character streams agreeing with a key word |
DE69624755T DE69624755T2 (de) | 1995-05-22 | 1996-05-21 | Informationssuchgerät für das Suchen von Text, um Zeichenfolgen wiederaufzufinden, die mit einem Schlüsselwort übereinstimmen |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14521395A JP3649472B2 (ja) | 1995-05-22 | 1995-05-22 | 情報検索装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08314975A JPH08314975A (ja) | 1996-11-29 |
JP3649472B2 true JP3649472B2 (ja) | 2005-05-18 |
Family
ID=15379996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14521395A Expired - Fee Related JP3649472B2 (ja) | 1995-05-22 | 1995-05-22 | 情報検索装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3649472B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3567711B2 (ja) * | 1997-07-11 | 2004-09-22 | 松下電器産業株式会社 | 文字列照合装置 |
JPH11203306A (ja) * | 1998-01-13 | 1999-07-30 | Matsushita Electric Ind Co Ltd | 全文検索データを記録したコンピュータ読み取り可能な記録媒体および文字列照合装置 |
JP2003223452A (ja) * | 2001-12-27 | 2003-08-08 | Center For Advanced Science & Technology Incubation Ltd | Est配列の写像方法、および、写像プログラム |
WO2008098467A1 (fr) * | 2007-02-15 | 2008-08-21 | Erzhong Liu | Procédé et système pratiques de traitement et d'extraction de texte électrique |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2817103B2 (ja) * | 1990-03-12 | 1998-10-27 | 富士通株式会社 | データ検索装置及びデータ検索方法 |
JPH07113926B2 (ja) * | 1992-01-27 | 1995-12-06 | 富士通株式会社 | インデックスを用いた文字列検索システム及びそのインデックスの作成装置 |
JPH05266080A (ja) * | 1992-03-24 | 1993-10-15 | Matsushita Electric Ind Co Ltd | 検索装置 |
JP3328334B2 (ja) * | 1992-11-06 | 2002-09-24 | 富士通株式会社 | 全文データベース検索装置 |
JP3459053B2 (ja) * | 1995-01-12 | 2003-10-20 | 株式会社日立製作所 | 文書検索方法および装置 |
-
1995
- 1995-05-22 JP JP14521395A patent/JP3649472B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08314975A (ja) | 1996-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6006267B2 (ja) | 索引キーを使用して検索を絞込むシステムおよび方法 | |
CA2281287C (en) | Method and system for efficiently searching for free space in a table of a relational database having a clustering index | |
US4677550A (en) | Method of compacting and searching a data index | |
US20090198693A1 (en) | Method and apparatus for ordering items within datasets | |
JPH11212980A (ja) | インデクス作成方法および検索方法 | |
JP2669601B2 (ja) | 情報検索方法及びシステム | |
CN105373605A (zh) | 数据文件批量存储方法及系统 | |
JP2693914B2 (ja) | 検索システム | |
JP3649472B2 (ja) | 情報検索装置 | |
US6963865B2 (en) | Method system and program product for data searching | |
JP3859044B2 (ja) | インデクス作成方法および検索方法 | |
JP2925042B2 (ja) | 情報リンク生成方法 | |
JP3565840B2 (ja) | 文書管理方法および文書管理装置 | |
JPH0561910A (ja) | 全文インデツクス検索方法 | |
JPH07105237A (ja) | 索引作成方法およびその装置と文書検索装置 | |
JPH04340164A (ja) | マルチキーワード情報検索処理方式および検索ファイル作成装置 | |
JP2002140218A (ja) | データ処理方法、コンピュータ読み取り可能な記録媒体及びデータ処理装置 | |
US11809728B2 (en) | Data storage method for massive datasets | |
JP3780772B2 (ja) | データベースの索引創成装置 | |
JPH0660120A (ja) | 可変長データの格納方法及び検索装置 | |
JP2751681B2 (ja) | 文書検索装置 | |
Zvegintzov | Partial-match retrieval in an index sequential directory | |
JPH043234A (ja) | 固定長型レコードのファイリング制御方法 | |
JPH09106364A (ja) | 情報管理方法及び装置 | |
JPH04250568A (ja) | レコード検索装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041005 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041122 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050215 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080225 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090225 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100225 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |