JP2007299021A - インデクス更新方法及びそのシステム - Google Patents
インデクス更新方法及びそのシステム Download PDFInfo
- Publication number
- JP2007299021A JP2007299021A JP2006123763A JP2006123763A JP2007299021A JP 2007299021 A JP2007299021 A JP 2007299021A JP 2006123763 A JP2006123763 A JP 2006123763A JP 2006123763 A JP2006123763 A JP 2006123763A JP 2007299021 A JP2007299021 A JP 2007299021A
- Authority
- JP
- Japan
- Prior art keywords
- index
- information
- data
- item
- temporary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
Abstract
【解決手段】インデクス更新システムは、登録対象のデータ及びこのデータに対応する識別子を格納する蓄積用一時領域112と、インデクスを格納するインデクス格納領域110とを備え、インデクス更新システムの演算部102が、入力された登録対象のデータ及びこのデータに対応する識別子を、蓄積用一時領域112に格納し、蓄積用一時領域112に格納されたデータに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した識別子を含んだ索引情報とを作成し、索引項目単位で、作成した索引項目及びこれに対応した索引情報をインデクスとしてインデクス格納領域110に格納するインデクス更新方法。
【選択図】図1
Description
このため、変更が必要になった部分のみを書き換える処理を行う。これを文書インデクスの更新と呼ぶ。文書インデクスの更新では、文書インデクスの中で変更される索引項目ごとに索引情報を書き込む必要があり、大量のディスクI/Oが発生するため、文書データベースの登録・更新・削除処理のレスポンスが悪くなるという問題がある。
すなわち、シングルスレッド・シングルプロセスで特許文献1に記載のマージ処理を実行する環境において、まれに登録、更新、削除のレスポンスが非常に悪くなってしまうという問題がある。
図1は、本発明の第1の実施形態に係る文書検索システムの構成を示す図面である。本実施形態に係る文書検索システムでは、ユーザから入力された文書である文書情報の主インデクス110への登録・削除と、入力された文書情報から、ユーザから入力された文字を含む文書情報の検索を行う。
なお、CPU102は特許請求の範囲の演算部に相当している。
さらに、主記憶装置105には、削除用のプログラムとして文書削除プログラム125及びインデクス削除プログラム136が、また、各処理で用いるプログラムとして索引項目作成プログラム123が、二次記憶装置104から読み出されるとともに、各データを一時的に格納するワークエリア124が確保されている。
なお、本実施形態では、反映用一時領域113は、この蓄積用一時領域112と同じ構成であるため、その説明は省略する。反映用一時領域113は、主インデクス110へ書き込む文書情報を一時的に格納するために使用される。
なお、二次記憶装置104に格納される各情報の生成手順、及び主記憶装置105に格納されたプログラムの詳細な動作手順については後記する。
次に、図1を参照しつつ、本実施形態における文書登録時の処理の概要について説明する(適宜、図2〜図5参照)。
図1に示した文書検索システムのキーボード101から入力されるコマンドにより起動したシステム制御プログラム120は、文書登録プログラム121を起動し、文書の登録処理を開始する。
ここで、文書登録プログラム121は、キーボード101から入力された登録対象の文書である文書情報及びこの文書情報に対応する文書識別子を読み込み、読み込んだ文書情報及び文書識別子を使用して主インデクス110を更新する。
まず、文書登録プログラム121は、キーボード101から入力されたすべての登録対象の文書である文書情報及びこの文書情報に対応する一意な文書識別子に対し、ステップ12101から12104までに示す一連の処理を繰り返し実行する(ステップ12100)。
ここで、インデクス反映プログラム135は、反映用一時領域113に格納された文書情報に対応する索引項目の中で、主インデクス110に書き込んでいない索引項目から0個、1個または複数個の索引項目を選択し、主インデクス110中の索引項目200及び索引情報210を読み込み、選択した索引項目と対応する索引情報を追加し、主インデクス110の索引情報に書き込むことで、索引項目に対応する索引情報を更新して、文書登録プログラム121の処理は終了する。
まず、インデクス反映プログラム135は、ステップ13500において、反映種類決定プログラム130を実行する。この反映種類決定プログラム130は、ワークエリア124に読み込まれた登録対象の文書情報に対し、二次記憶装置104の種類リスト111、蓄積用一時領域112、及び反映用一時領域113を参照することにより、ステップ13502の処理を行うために必要な、主インデクス110中で更新する索引項目の種類である反映索引項目種類を決定し、主記憶装置105のワークエリア124に格納する。これにより、主インデクス110に反映する反映索引項目種類が選択される。
まず、反映種類決定プログラム130は、ステップ13000において、主インデクス110の中で更新する索引項目の個数である反映索引項目個数を計算し、ワークエリア124に格納する。
例えば、‘↑↑’を、その中の式の値を含む最小の整数を表すとした場合、C=↑P×(n÷N)↑やC=MAX(↑P×((I+n)÷N)↑−M,0)、C=↑(P−M)×n÷(N−I)↑等のように、蓄積用一時領域112に登録対象の文書情報が入りきらなくなった時点で、種類リスト111の索引項目300が、すべて書き込み済みになるような個数に決定する。
ここで、反映索引項目個数が、種類リスト111の反映情報310のうち、書き込み済みでない個数より大きい場合には、ステップ13002を実行し、大きくない場合にはステップ13002は実行せず、ステップ13003に進む。
このステップ13002では、反映索引項目個数を、種類リスト111の反映情報310の中で、主インデクス110に書き込み済みでない索引の個数と同じ個数に変更することで、反映索引項目個数が種類リスト111の反映情報310の中で書き込み済みでない索引の個数より大きくならないようにする。
まず、主インデクス反映プログラム132は、ステップ13200として、ワークエリア124にある、すべての反映索引項目種類に対し、ステップ13201から13204までに示す一連の処理を繰り返し実行する。
ステップ13201では、二次記憶装置104上の主インデクス110にある索引項目200の中で、反映索引項目種類の要素に対応する索引情報210を取得して、ワークエリア124に読み込む。ただし、主インデクス110に対応する索引項目が存在しない場合は、空の情報をワークエリア124に読み込む。
そして、ステップ13202において、ステップ13201でワークエリア124に読み込んだ索引情報に対し、インデクス反映プログラム135のステップ13501(図7参照)で作成した反映索引項目種類に対応する索引情報を追加し、ワークエリア124に格納する。
最後に、ステップ13204において、種類リスト111上の、反映索引項目種類に対応する反映情報310を書き込み済みである情報「True」に書き換えて、主インデクス反映プログラム132の処理が終了する。
一方、蓄積用一時領域112に登録対象の文書情報を書き込むための空き領域が無い場合には、ステップ13302からステップ13306を実行する。
まず、インデクス登録プログラム133は、ステップ13302において、蓄積用一時領域112と、反映用一時領域113とに格納された情報を入れ替える。そして、ステップ13303において、蓄積用一時領域112上の文書識別子400及び文書情報410をすべて削除する。
最後に、ステップ13306において、蓄積用一時領域112に、ワークエリア124上の登録対象の文情報書及び文書識別子を書き込んで、インデクス登録プログラム133の処理が終了する。
さらに、本実施形態では、1つの文書情報の入力に対してインデクス反映プログラム135を実行したが、複数回の文書情報の入力後にインデクス反映プログラム135を実行しても良い。
また、主インデクス110に書き込む索引情報の個数は、蓄積用一時領域112に書き込み可能な文書情報量と登録する文書情報量の比率よりも、種類リスト111の索引項目の数と主インデクス110へ書き込む数の比率が大きくなる値が設定される。
この索引項目の数の決定方法により、蓄積用一時領域112が一杯になるまでの間に、種類リスト111のすべての索引項目に対応する索引情報を、主インデクス110に書き込むことができる。また、種類リスト111のすべての索引項目に対応する索引情報を主インデクス110に書き込むことは、反映用一時領域113に書き込まれているすべての文書情報から作成される索引情報を主インデクス110に書き込むことと等しい。従って、蓄積用一時領域112が一杯になるまでの間に、反映用一時領域113に書き込まれている文書情報に対応する索引情報は、すべて主インデクス110に書き込むことができる。
これにより、蓄積用一時領域112が一杯になった際には、反映用一時領域113の内容を削除することができる。さらに、蓄積用一時領域112及び反映用一時領域113の大きさを固定にすることもできる。
ここで、本実施形態における具体例における処理手順では、インデクスとして1−gramインデクスを用いることとする。1−gramインデクスとは、登録時に文書を1文字毎に区切り、区切った文字位置に対応する文書識別子と文字位置情報とを、区切った文字に対応して格納することで、文書の全文検索を高速化するものである。
まず、図6に示すPADにおけるステップ12101では、文書「・・・の生物は・・・」の文書情報及び文書識別子「061」を主記憶装置105上のワークエリア124に格納する。
最後に、ステップ12103において、インデクス反映プログラム135を実行する。ここで、反映用一時領域113にはデータが存在しないため、インデクス反映プログラム135は何も実行しない。
そして、ステップ13301において、図4に示す蓄積用一時領域112に対し、文書情報として「・・・の生物は・・・」と、文書識別子として文書識別子「061」を書き込む。これで、インデクス登録プログラム133、図6におけるステップ12103の処理が終了する。
以上が「・・・の生物は・・・」を登録した場合の処理手順である。
同様にして、文書情報を47個登録する。これにより、合計1000文字分の文書情報が蓄積用一時領域112に登録される。
文書「海洋には数万種の微生物が・・・」の登録では、文書「・・・の生物は・・・」の登録の場合と同様に、図6に示した文書登録プログラム121のPADのステップ12100により、ステップ12101からステップ12103を実行する。ここで、文書「海洋には数万種の微生物が・・・」の文書識別子は「092」とする。
図10を参照して、ステップ13300では、蓄積用一時領域112に、登録対象の文書情報が書き込める大きさがあるかどうかを判定する。ここで、登録対象の文書「海洋には数万種の微生物が・・・」の大きさが20文字であり、蓄積用一時領域112の空き容量が0文字分であるため、登録対象の文書情報を書き込める大きさが無い。このため、ステップ13302からステップ13306を実行する。
そして、ステップ13304において、反映用一時領域113にある、すなわち、今回のインデクス登録プログラム133が実行される直前に蓄積用一時領域112に格納されていた内容に対し、索引項目作成プログラム123を実行して、索引項目を取得し、すべての索引項目300の反映情報310を書き込んでいないことを示す「False」にして、種類リスト111に書き込む。このとき、反映用一時領域113には、文書「・・・の生物は・・・」,「・・・は生で・・・」,「・・・は・・・」が含まれているため、種類リストの索引項目には、「の」「生」「物」「は」「で」が含まれ、これらの索引項目に対応する索引情報はすべて、書き込んでいないことを示す「False」となる。
インデクス反映プログラム135はまず、ステップ13500において、反映種類決定プログラム130を実行する。反映種類決定プログラム130は、図8に示したPADのステップ13000からステップ13003を実行する。
そして、ステップ13001において、反映索引項目個数と書き込んでいない索引項目の個数とを比較する。ここで、反映索引項目個数が‘2’で、書き込んでいない索引項目の個数が‘100’であるため、ステップ13002は実行されない。
最後に、ステップ13003において、反映索引項目種類を決定し、ワークエリア124に格納する。ここでは、「生」「物」を、ワークエリア124に格納する。これで、図7のPADにおける、ステップ13500の処理が終了する。
そして、ステップ13502において、主インデクス反映プログラム132を実行する。主インデクス反映プログラム132は、図9に示したPADのステップ13200からステップ13204を実行する。主インデクス反映プログラム132のステップ13200では、すべての反映索引項目種類について繰り返すため、「生」「物」それぞれに対し、ステップ13201からステップ13204を実行する。
そして、ステップ13202において、ワークエリア124上にある、ステップ13201で読み込んだ索引情報に対し、反映索引項目種類「生」の索引情報を作成して追加する。
最後に、ステップ13204において、図3に示す種類リスト111上の、参照符号301で示す索引項目「生」に対応する、参照符号311で示す反映情報310の要素に、書き込み済みであることを示す「True」を書き込む。
以上が、文書「海洋には数万種の微生物が・・・」を登録した場合の処理手順である。
まず、文書「陸上の生物は・・・」の登録イベント90005が発生し、参照符号90401で示す反映用一時領域113と、種類リスト111とを使用し、文書識別子と文字位置からなる索引情報を主インデクス110に書き込む。そして、書き込んだ種類リスト111の索引項目に対応する反映情報を、書き込み済みを示す「True」に書き替え(参照符号90412から参照符号90512)、蓄積用一時領域112に、文書「陸上の生物は・・・」の文書情報及び文書識別子「094」を書き込む。
以上が、文書「陸上の生物は・・・」の登録により処理される内容である。
次に、図1を用いて本実施形態における文書検索時の処理の概要について説明する。
文書検索時には、文書検索プログラム122が実行される。文書検索プログラム122では、キーボード101から入力された検索文字列をワークエリア124に格納し、検索文字列に対し、インデクス検索プログラム134を実行し、このインデクス検索プログラム134の実行結果である文書識別子を取得し、ディスプレイ100に出力する。
そして、ステップ13401において、ワークエリア124に格納されている検索文字列を使用して反映用一時領域113を検索し、この検索結果の文書識別子をワークエリア124に格納する。
そして、ステップ13402において、ワークエリア124に格納されている検索文字列を使用して蓄積用一時領域112を検索し、この検索結果の文書識別子をワークエリア124に格納する。
最後にステップ13404において、ステップ13403でワークエリア124に格納された検索結果の文書識別子から、削除リスト115にある文書識別子を削除し、この結果をワークエリア124に格納する。そして、ステップ13404で格納した文書識別子をインデクス検索プログラム134の処理結果として返して、インデクス検索プログラム134の処理が終了する。
次に、図1を用いて本実施形態における文書削除時の処理の概要について説明する。
本実施形態において、文書削除時には、文書削除プログラム125が実行される。文書削除プログラム125は、インデクス削除プログラム136を使用して文書情報を削除する。このインデクス削除プログラム136は、削除リスト115に削除対象の文書識別子を書き込むことで、主インデクス110から、削除対象の文書識別子に対応する索引項目を削除し、蓄積用一時領域112または反映用一時領域から、文書識別情報に対応する文書情報を削除する。
以上が文書削除時の処理である。
本実施形態では、特にアプリケーションに直接リンクされ、アプリケーションに処理が返されるまでの間に処理が必要な主インデクス110の更新処理において、レスポンスの最悪時間が少ないという効果がある。
また、データベース等のトランザクションを使用する環境へ適用した場合は、特にコミットされた文書を、後で索引項目毎に主インデクス110へ書き込むという処理を行う場合には、更新中に障害が発生した場合においてもロールバックが必要な量を減らすことが可能になるという効果がある。
また、本実施形態では、障害発生時にロールバックを行う場合、ロールバックのために必要なログの量が少なくなるという効果もある。
また、本実施形態では、あらかじめ蓄積用一時領域112および反映用一時領域113の大きさを固定にすることができる。また、種類リスト111は、あらかじめ最大サイズが決まるので、主インデクス110および削除リスト115以外に、二次記憶装置104上に必要な領域の大きさをあらかじめ決めておくことができる。このため、本実施形態によれば、インデクスを使用するためにあらかじめ必要な領域を見積もることが容易になるという効果がある。
また、必要な領域を見積もることが容易であるため、種類リスト111、蓄積用一時領域112、反映用一時領域113を、他の記憶領域に格納したり、専用ハードウェア化したりすることも容易になるという効果がある。
以下、本発明を実施するための第2の実施形態として、文書の登録時以外でもインデクス反映プログラム135を実行するようにした場合の形態について説明する。
本実施形態は、図1に示したインデクス反映プログラム135を、文書の検索時でも行うことで、登録処理のレスポンスを良くできる。このように登録時以外でもインデクス反映プログラム135を実行するために、インデクス反映プログラム135は、入力された文書情報を使用せず、既に、文書検索システムに登録済みの文書情報を使用する。
なお、本実施形態において、説明しない文書検索システムの構成は、第1実施形態の文書検索システムと同様である。また、単独の文書登録の手順及び文書削除の手順は、第1の実施形態と同様であるためその説明を省略する。
本実施形態における、インデクス検索プログラム134は、主インデクス110、蓄積用一時領域112、反映用一時領域113、削除リスト115を使用して、対象となる文書情報を検索し、さらに、反映用一時領域113にある文書情報の一部を主インデクス110に書き込む。
そして、ステップ13411において、反映用一時領域113を検索すると同時に、検索条件に一致した索引項目に対応する索引情報を、索引情報作成プログラム131を実行することで作成する。
以上が、インデクス検索プログラム134の処理である。
本実施形態によると、更新時に必要な主インデクス110への書き込み処理の一部を検索時に行うことで、検索処理に必要な時間をわずかに増加させることで、更新時間および更新処理のレスポンスを、大幅に短縮できるという効果がある。
また、インデクス反映プログラム135を文書検索時に実行することで、特にアプリケーションに直接リンクされ、アプリケーションの処理の延長でのみ処理可能な全文検索インデクスにおいて、アプリケーションから必要な呼び出しを減らすことができ、アプリケーション側から全文検索インデクスの更新に関する考慮を無くすことができるという効果がある。
さらに、検索文字列に対応する索引項目及び索引情報を使用し、主インデクス110を更新することで、次回以降の検索を高速化できるという効果がある。
以下、本発明を実施するための第3の実施形態として、削除処理において主インデクス110から索引情報を削除するようにした場合の形態を詳細に説明する。
本実施形態では、図1に示した文書検索システムにおいて、二次記憶装置104上の削除リスト115が無い構成となる。また、蓄積用一時領域112および反映用一時領域113の構造が変更され、インデクス登録プログラム133、主インデクス反映プログラム132、文書削除プログラム125およびインデクス削除プログラム136の処理が一部変更される。
なお、その他の構成については、第1の実施形態の文書検索システムと同様であるため、その説明を省略する。
または、インデクス削除プログラム136は、文書情報を蓄積用一時領域112に削除対象として書き込み、インデクス反映プログラム135を用いて主インデクス110への追加・削除を行う。
文書の削除処理では、まず、キーボード101から入力される削除コマンドにより、システム制御プログラム120は文書削除プログラム125を起動する。文書削除プログラム125では、まず、キーボード101から入力された削除対象の文書情報及び文書識別子を、ワークエリア124に格納する。ここで、文書情報及び文書識別子の対応は、登録時と等しいものとする。次に、インデクス削除プログラム136を実行し、主インデクス110から、索引項目及び索引情報を削除する。以上が、本実施形態における文書削除プログラム125の処理になる。
まず、ステップ13201では、二次記憶装置104上の主インデクス110にある索引項目200の中で、反映索引項目種類の要素に対応する索引情報210を取得して、ワークエリア124に読み込む。
まず、ステップ13221において、索引情報の要素が登録対象であれば、ステップ13222を実行する。このステップ13222では、ワークエリア124上の索引情報に対し、登録対象である索引情報の要素を追加する。
一方、ステップ13221において、索引情報の要素が削除対象であれば、ステップ13223を実行する。このステップ13223では、ワークエリア124上の索引情報に対し、削除対象である索引情報の要素を削除する。
最後に、ステップ13204において、種類リスト111上の、反映索引項目種類に対応する反映情報310を書き込み済みである情報「True」に書き換えて、本実施形態の主インデクス反映プログラム132の処理が終了する。
以上、説明した本実施形態によれば、主インデクス110から不要なデータを削除する場合においても、キーワード毎に分割して削除することができるため、データの削除処理を高速化できるという効果がある。
なお、本実施形態では、図19のPADに示した主インデクス反映プログラム132におけるステップ13220から13223の処理において、反映用一時領域113を参照して、登録または削除を判断するが、図7に示すインデクス反映プログラム135における、ステップ13501において、索引情報を作成する際に、索引情報の要素に、登録か削除かの情報を付加することで、図19のステップ13221において、反映用一時領域113を参照せずに、索引情報の付加情報を参照して判断しても良い。
また、反映用一時領域113に削除対象の文書識別子が存在する場合は、反映用一時領域113から、削除対象の文書識別子および削除対象の文書情報を削除しても良い。
ただし、反映用一時領域113においては、主インデクス110に書き込み済みの、削除対象の文書情報から作成された索引項目が存在する可能性があるため、削除対象の文書識別子および削除対象の文書情報を蓄積用一時領域112に追加する必要がある。なお、主インデクス110に書き込んでいないことが分かっている場合は、削除対象の文書識別子および削除対象の文書情報を蓄積用一時領域112に追加しなくても良い。
以下、本発明を実施するための第4の実施形態として、種類リスト111に索引情報を格納する場合の形態について、詳細に説明する。
また、本実施形態では、索引情報作成プログラム131およびインデクス登録プログラム133の処理の一部が変更される。
なお、その他の構成については、第1の実施形態の文書検索システムと同様であるため、その説明を省略する。
索引情報作成プログラム131における処理では、図20に示す種類リスト111の、索引項目300に対応した索引情報3002の要素を、ワークエリア124に格納する処理になる。
インデクス登録プログラム133における処理では、図10のPADに示す、ステップ13304の後に、ステップ13304で作成した種類リストに対応する索引情報を作成する処理を実行する。
以上、説明した本実施形態によれば、文書を登録する処理毎に索引情報を作成する必要がなくなり、インデクスの更新を行う際のレスポンスを向上させることができるという効果がある。
以下、本発明を実施するための第5の実施形態として、反映用一時領域113を使用せずに、1つの蓄積用一時領域112のみを使用し、文書識別子ごとに主インデクス110に書き込んだか否かを管理する形態について、詳細に説明する。
本実施形態では、図1に示した第1の実施形態における文書検索システムにおいて、二次記憶装置104上の、反映用一時領域113が無い構成となる。また、種類リスト111の反映情報の要素に格納するデータ内容が変更される。さらに、反映種類決定プログラム130、主インデクス反映プログラム132、インデクス登録プログラム133及びインデクス検索プログラム134の処理の一部が変更される。
なお、その他の構成については、第1の実施形態の文書検索システムと同様であるため、その説明を省略する。
また、本実施形態における、反映種類決定プログラム130は、図21に示した種類リスト111を使用して、主インデクス110に書き込む索引項目を決定する。そして、主インデクス反映プログラム132は、反映種類決定プログラム130及び索引情報作成プログラム131で作成された索引項目及び索引情報を、主インデクス110に書き込む。
また、本実施形態では、図9のPADに示した第1の実施形態の主インデクス反映プログラム132におけるステップ13204において、図21に示した種類リスト111の索引項目300に対応する文書識別子3101には、ステップ13204を実行するまでの間に、最後に割り当てた文書識別子を書き込む。
さらに、ステップ13200の繰り返しがすべて終了した後で、種類リスト111上の反映情報3101中の、最も早く登録された文書識別子に対し、それ以前に登録された、すべての文書識別子と、この文書識別子に対応する文書情報とを、図4に示した蓄積用一時領域112上の文書識別子400及び文書情報410の中から削除する。
以上が、本実施形態における、インデクス登録プログラム133における処理である。
以上、説明した本実施形態によれば、一時領域を複数扱う必要が無くなるため、第1の実施形態における蓄積用一時領域112および反映用一時領域113の内容を交換する必要がなくなる。このため、第1の実施形態における蓄積用一時領域112および反映用一時領域113の内容を移動する必要が無くなり、一時領域の管理が容易になるという効果がある。また、索引情報の作成を、文書登録時に分割して行うため、インデクスへの書き込みに必要な時間やメモリを少なくすることができるという効果がある。
また、本実施形態では、索引項目として作成される種類の最大数が決まっていれば、その最大数に比例した回数以内に、登録した文書が、主インデクス110に書き込まれるため、種類リスト111が無制限に大きくなることは無い。
なお、本実施形態では、蓄積用一時領域112のみを用いて実現した例で示したが、蓄積用一時領域112を複数に分割し、2つ以上の一時領域を用いても良い。
以下、本発明を実施するための第6の実施形態として、反映用一時領域113を使用せずに、1つの蓄積用一時領域112のみを使用し、蓄積用一時領域112への登録時に索引情報を作成する形態について、詳細に説明する。
本実施形態では、図1に示した第1の実施形態の文書検索システムにおいて、二次記憶装置104の反映用一時領域113が無い構成となる。
また、反映種類決定プログラム130、主インデクス反映プログラム132、インデクス登録プログラム133およびインデクス検索プログラム134の処理の一部が変更される。
なお、その他の構成については、第1の実施形態の文書検索システムと同様であるため、その説明を省略する。
また、インデクス登録プログラム133は、文書登録プログラム121から実行され、文書情報を蓄積用一時領域112に書き込む。さらにインデクス検索プログラム134は、文書検索プログラム122から実行され、主インデクス110、蓄積用一時領域112、削除リスト115を使用して、対象となる文書情報を検索する。
また、インデクス登録プログラム133における処理は、まず、種類リスト111の索引項目の中に、登録対象の文書情報から作成される索引項目が無ければ、登録対象の文書情報から作成される索引項目をすべて追加する処理を行う。ここで、追加した索引項目に対応する反映情報には、‘0’を設定する。次に、索引情報作成プログラム131を実行し、登録対象の文書情報から索引情報を作成し、蓄積用一時領域112に登録し、反映情報に追加した索引情報の大きさを記録する。以上が、本実施形態における、インデクス登録プログラム133における処理である。
本実施形態によれば、一時領域を複数種扱う必要が無くなる。このため、第1の実施形態における蓄積用一時領域112及び反映用一時領域113の内容を交換する必要がなくなるため、第1の実施形態における蓄積用一時領域112及び反映用一時領域113の内容を移動する必要が無くなり、一時領域の管理が容易になるという効果がある。また、索引情報の作成を、文書登録時に分散して行うため、インデクスへの書き込みに必要な時間やメモリを少なくすることができるという効果がある。
なお、本実施形態では、蓄積用一時領域112のみを用いて実現した例で示したが、蓄積用一時領域112を複数に分割し、2つ以上の蓄積用一時領域を用いても良い。
104 二次記憶装置
105 主記憶装置
110 主インデクス
111 種類リスト
112 蓄積用一時領域
113 反映用一時領域
114 各種プログラム格納領域
115 削除リスト
120 システム制御プログラム
121 文書登録プログラム
122 文書検索プログラム
123 索引項目作成プログラム
124 ワークエリア
130 反映種類決定プログラム
131 索引情報生成プログラム
132 主インデクス反映プログラム
133 インデクス登録プログラム
134 インデクス検索プログラム
135 インデクス反映プログラム
136 インデクス削除プログラム
Claims (21)
- 入力された検索情報を含むデータを、データ群から検索するためのインデクスを格納するインデクス更新システムにおいて、前記インデクスを更新するインデクス更新方法であって、
前記インデクス更新システムは、登録対象のデータ及びこのデータに対応する識別子を格納する蓄積用一時領域と、前記インデクスを格納するインデクス格納領域とを備え、
前記インデクス更新システムの演算部が、
入力された登録対象のデータ及びこのデータに対応する識別子を、前記蓄積用一時領域に格納し、
前記蓄積用一時領域に格納された前記データに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した前記識別子を含んだ索引情報とを作成し、
前記索引項目単位で、前記作成した索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納すること、
を特徴とするインデクス更新方法。 - 入力された検索情報を含むデータを、データ群から検索するためのインデクスを格納するインデクス更新システムにおいて、前記インデクスを更新するインデクス更新方法であって、
前記インデクス更新システムは、登録対象のデータに含まれる所定の検索情報からなる索引項目及び前記データに対応した識別子を含んだ索引情報を格納する蓄積用一時領域と、前記インデクスを格納するインデクス格納領域とを備え、
前記インデクス更新システムの演算部が、
入力された登録対象のデータに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した前記識別子を含んだ索引情報とを作成して前記蓄積用一時領域に格納し、
前記索引項目単位で、前記蓄積用一時領域に格納された索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納すること、
を特徴とするインデクス更新方法。 - 前記インデクス更新システムは、登録対象のデータ及びこのデータに対応する識別子を格納する反映用一時領域をさらに備え、
前記インデクス更新システムの演算部が、
前記入力された登録対象のデータ及びこのデータに対応する識別子を、前記蓄積用一時領域に格納する容量があるか否かを判定し、前記容量がないと判定した場合に、現在、前記蓄積用一時領域に格納されている前記データ及び前記識別子を前記反映用一時領域に転送して、前記蓄積用一時領域に格納されている前記データ及び前記識別子を消去し、
前記反映用一時領域に格納された前記データを用いて、このデータに含まれる所定の検索情報からなる索引項目と、この索引項目を抽出した前記データに対応する前記識別子を含む索引情報とを作成し、
前記索引項目単位で、前記作成した索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納し、
前記蓄積用一時領域に、前記入力された登録対象のデータ及びこれに対応する前記識別子を格納すること、
を特徴とする請求項1に記載のインデクス更新方法。 - 前記インデクス更新システムの演算部が、
入力された検索情報を用いて、前記インデクスを検索して、対応する前記索引情報を取得して、この索引情報に含まれる前記識別子を取得し、
前記入力された検索情報を用いて、前記反映用一時領域から対応する前記データを検索して、対応する前記識別子を取得し、
前記入力された検索情報を用いて、前記蓄積用一時領域から対応する前記データを検索して、対応する前記識別子を取得し、
それぞれ取得した前記識別子を出力すること、
を特徴とする請求項3に記載のインデクス更新方法。 - 前記インデクス更新システムの演算部が、
前記反映用一時領域または前記蓄積用一時領域から検索した、前記データに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した識別子を含む索引情報を作成し、前記作成した索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納すること、
を特徴とする請求項4に記載のインデクス更新方法。 - 入力された削除対象の前記データに含まれる所定の検索情報からなる削除対象の索引項目と、この索引項目に対応した前記識別子を含んだ削除対象の索引情報とを作成し、
前記インデクスから、前記作成された削除対象の索引項目に対応した前記索引情報を削除し、
削除対象の前記データを前記蓄積用一時領域または前記反映用一時領域から削除すること、
を特徴とする請求項3ないし請求項5のいずれか1項に記載のインデクス更新方法。 - 前記インデクス更新システムは、前記蓄積用一時領域を複数備えること、
を特徴する請求項1または請求項2に記載のインデクス更新方法。 - 前記インデクス更新システムは、前記蓄積用一時領域及び前記反映用一時領域とのいずれか、または両方を、複数備えること、
を特徴する請求項3ないし請求項6のいずれか1項に記載のインデクス更新方法。 - 前記インデクス更新システムの演算部が、
前記索引項目及びこれに対応した索引情報を作成時に、前記蓄積用一時領域に格納されたデータ量に応じて、作成する前記索引項目の数を決定すること、
を特徴する請求項1ないし請求項8のいずれか1項に記載のインデクス更新方法。 - 前記インデクス更新システムの演算部が、
前記索引項目及びこれに対応した索引情報の作成時に、この索引情報を前記インデクスに格納していないことを示す反映情報を作成し、
前記インデクスに前記索引項目及びこれに対応した索引情報を格納する際に、前記反映情報に基づいて、前記インデクスに格納されていない前記索引項目及びこれに対応した索引情報のみを前記インデクスに格納し、格納した前記索引情報に対応する前記反映情報を、前記インデクスに格納されたことを示す情報に書き換えること、
を特徴する請求項1ないし請求項9のいずれか1項に記載のインデクス更新方法。 - 指定された検索情報を含むデータを、データ群から検索するためのインデクスを格納するインデクス更新システムであって、
前記インデクス更新システムは、
登録対象のデータ及びこのデータを識別する識別子を格納する蓄積用一時領域、並びに前記データに含まれる所定の検索情報からなる索引項目及びこの索引項目に対応した前記識別子を含んだ索引情報を前記インデクスとして格納するインデクス格納領域を含む記憶部と、
入力されたデータ及びこれに対応する識別子を、前記蓄積用一時領域に格納し、
前記入力されたデータに含まれる所定の検索情報からなる前記索引項目と、この索引項目に対応した前記索引情報とを作成し、前記索引項目単位で、前記索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納する演算部と、
を備えることを特徴とするインデクス更新システム。 - 指定された検索情報を含むデータを、データ群から検索するためのインデクスを格納するインデクス更新システムであって、
前記インデクス更新システムは、
登録対象のデータに含まれる所定の検索情報からなる索引項目及び前記データに対応した識別子を含んだ索引情報を格納する蓄積用一時領域と、前記インデクスを格納するインデクス格納領域とを含む記憶部と、
入力された登録対象のデータに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した前記識別子を含んだ索引情報とを作成して前記蓄積用一時領域に格納し、
前記索引項目単位で、前記蓄積用一時領域に格納された索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納する演算部と、
を備えることを特徴とするインデクス更新システム。 - 前記記憶部は、
前記データ及びこれに対応する前記識別子を格納する反映用一時領域をさらに含み、
前記演算部は、
前記蓄積用一時領域に、前記入力されたデータ及びこれに対応する識別子を格納する容量があるか否かを判定し、前記容量がないと判定すると、現在、前記蓄積用一時領域に格納されている前記データ及び前記識別子を前記反映用一時領域に転送して、前記蓄積用一時領域に格納されている前記データ及び前記識別子を消去し、
前記反映用一時領域に格納された前記データに含まれる所定の検索情報からなる索引項目と、この索引項目を抽出した前記データに対応する前記識別子を含んだ索引情報とを作成し、
前記索引項目単位で、前記索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納し、
前記蓄積用一時領域に、前記入力されたデータ及びこれに対応する識別子を格納すること、
を特徴とする請求項11に記載のインデクス更新システム。 - 前記演算部は、
入力された検索情報を用いて、前記インデクスを検索して、対応する前記索引情報を取得して、この索引情報に含まれる前記識別子を取得し、
前記入力された検索情報を用いて、前記反映用一時領域から対応する前記データを検索して、対応する前記識別子を取得し、
前記入力された検索情報を用いて、前記蓄積用一時領域から対応する前記データを検索して、対応する前記識別子を取得し、
それぞれ取得した前記識別子を出力すること、
を特徴とする請求項13に記載のインデクス更新システム。 - 前記演算部は、
前記反映用一時領域または前記蓄積用一時領域から検索した、前記データに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した識別子を含む索引情報を作成し、前記作成した索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納すること、
を特徴とする請求項14に記載のインデクス更新システム。 - 前記演算部が、
入力された削除対象の前記データに含まれる所定の検索情報からなる削除対象の索引項目と、この索引項目に対応した前記識別子を含んだ削除対象の索引情報とを作成し、前記インデクスから、前記作成された削除対象の前記索引項目に対応した前記索引情報を削除し、削除対象の前記データを、前記蓄積用一時領域または前記反映用一時領域から削除すること、
を特徴とする請求項13ないし請求項15のいずれか1項に記載のインデクス更新システム。 - 前記インデクス更新システムは、前記蓄積用一時領域を複数備えること、
を特徴する請求項11または請求項12に記載のインデクス更新システム。 - 前記インデクス更新システムは、前記蓄積用一時領域及び前記反映用一時領域とのいずれか、または両方を、複数備えること、
を特徴する請求項13ないし請求項16のいずれか1項に記載のインデクス更新システム。 - 前記演算部が、
前記索引項目及びそれに対応した索引情報を作成する際に、前記蓄積用一時領域に格納されたデータ量に応じて、作成する前記索引項目の数を決定すること、
を特徴する請求項11ないし請求項18のいずれか1項に記載のインデクス更新システム。 - 前記演算部が、
前記索引項目及びこれに対応した索引情報の作成時に、この索引情報を前記インデクスに格納していないことを示す反映情報を作成し、前記インデクス格納領域に前記索引項目及びこれに対応した索引情報を格納する際に、前記反映情報に基づいて、前記インデクス格納領域に格納されていない前記索引項目及びこれに対応した索引情報のみを前記インデクス格納領域に格納して、この格納した前記索引情報に対応する前記反映情報を、前記インデクス格納領域に格納されたことを示す情報に書き換えること、
を特徴する請求項11ないし請求項19のいずれか1項に記載のインデクス更新システム。 - コンピュータを、請求項11ないし請求項20のいずれか1項に記載のインデクス更新システムとして動作させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006123763A JP5108252B2 (ja) | 2006-04-27 | 2006-04-27 | インデクス更新方法及びそのシステム |
EP07250463A EP1850250A1 (en) | 2006-04-27 | 2007-02-05 | Method and system for renewing an index |
US11/702,494 US20070255771A1 (en) | 2006-04-27 | 2007-02-06 | Method and system for renewing an index |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006123763A JP5108252B2 (ja) | 2006-04-27 | 2006-04-27 | インデクス更新方法及びそのシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007299021A true JP2007299021A (ja) | 2007-11-15 |
JP5108252B2 JP5108252B2 (ja) | 2012-12-26 |
Family
ID=38323888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006123763A Expired - Fee Related JP5108252B2 (ja) | 2006-04-27 | 2006-04-27 | インデクス更新方法及びそのシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070255771A1 (ja) |
EP (1) | EP1850250A1 (ja) |
JP (1) | JP5108252B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8161051B2 (en) | 2008-01-21 | 2012-04-17 | Hitachi, Ltd. | Method and apparatus for data processing with index search |
JP2014119846A (ja) * | 2012-12-14 | 2014-06-30 | Exa Corp | データ管理装置及びデータ管理プログラム |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1591916B1 (en) * | 2004-04-26 | 2013-11-06 | Sap Ag | Method, computer program and device for deleting data sets contained in a table system |
US8838928B2 (en) | 2008-02-08 | 2014-09-16 | Freescale Semiconductor, Inc. | Memory management and method for allocation using free-list |
CN101739400B (zh) * | 2008-11-11 | 2014-08-13 | 日电(中国)有限公司 | 生成索引的方法和装置以及检索方法和装置 |
US8239391B2 (en) * | 2010-07-13 | 2012-08-07 | Microsoft Corporation | Hierarchical merging for optimized index |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01282635A (ja) * | 1988-05-10 | 1989-11-14 | Nec Corp | 索引保守方式 |
JPH0373036A (ja) * | 1989-05-29 | 1991-03-28 | Hitachi Ltd | バッファ管理方法 |
JPH07146880A (ja) * | 1993-11-22 | 1995-06-06 | Nippon Steel Corp | 文書検索装置及び方法 |
JPH10240754A (ja) * | 1997-02-26 | 1998-09-11 | Hitachi Ltd | テキストデータ登録検索方法 |
JPH1139326A (ja) * | 1997-07-22 | 1999-02-12 | Hitachi Ltd | 高速文書登録検索方法および装置 |
JP2002245039A (ja) * | 2001-02-15 | 2002-08-30 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索方法及びシステム及び文書検索プログラム及び文書検索プログラムを格納した記憶媒体 |
JP2004341926A (ja) * | 2003-05-16 | 2004-12-02 | Toshiba Corp | データベース管理システム、データベース管理プログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5685003A (en) * | 1992-12-23 | 1997-11-04 | Microsoft Corporation | Method and system for automatically indexing data in a document using a fresh index table |
US6516337B1 (en) * | 1999-10-14 | 2003-02-04 | Arcessa, Inc. | Sending to a central indexing site meta data or signatures from objects on a computer network |
US7702666B2 (en) * | 2002-06-06 | 2010-04-20 | Ricoh Company, Ltd. | Full-text search device performing merge processing by using full-text index-for-registration/deletion storage part with performing registration/deletion processing by using other full-text index-for-registration/deletion storage part |
US20070067325A1 (en) * | 2005-02-14 | 2007-03-22 | Xsapio, Ltd. | Methods and apparatus to load and run software programs in data collection devices |
JP2006236019A (ja) * | 2005-02-25 | 2006-09-07 | Hitachi Ltd | データコピー方式の切替方法 |
-
2006
- 2006-04-27 JP JP2006123763A patent/JP5108252B2/ja not_active Expired - Fee Related
-
2007
- 2007-02-05 EP EP07250463A patent/EP1850250A1/en not_active Withdrawn
- 2007-02-06 US US11/702,494 patent/US20070255771A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01282635A (ja) * | 1988-05-10 | 1989-11-14 | Nec Corp | 索引保守方式 |
JPH0373036A (ja) * | 1989-05-29 | 1991-03-28 | Hitachi Ltd | バッファ管理方法 |
JPH07146880A (ja) * | 1993-11-22 | 1995-06-06 | Nippon Steel Corp | 文書検索装置及び方法 |
JPH10240754A (ja) * | 1997-02-26 | 1998-09-11 | Hitachi Ltd | テキストデータ登録検索方法 |
JPH1139326A (ja) * | 1997-07-22 | 1999-02-12 | Hitachi Ltd | 高速文書登録検索方法および装置 |
JP2002245039A (ja) * | 2001-02-15 | 2002-08-30 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索方法及びシステム及び文書検索プログラム及び文書検索プログラムを格納した記憶媒体 |
JP2004341926A (ja) * | 2003-05-16 | 2004-12-02 | Toshiba Corp | データベース管理システム、データベース管理プログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8161051B2 (en) | 2008-01-21 | 2012-04-17 | Hitachi, Ltd. | Method and apparatus for data processing with index search |
JP2014119846A (ja) * | 2012-12-14 | 2014-06-30 | Exa Corp | データ管理装置及びデータ管理プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP5108252B2 (ja) | 2012-12-26 |
EP1850250A1 (en) | 2007-10-31 |
US20070255771A1 (en) | 2007-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
CN105630865B (zh) | 用于内存列式存储的n比特压缩版本化列数据阵列 | |
JP6998928B2 (ja) | データを記憶およびクエリするための方法、装置、設備、および媒体 | |
JP5211514B2 (ja) | 更新装置、更新方法および更新プログラム | |
TWI412945B (zh) | 擷取以及保存來自或存至關聯資料庫之各物件的方法及系統 | |
JP2007042134A (ja) | マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法 | |
JP5108252B2 (ja) | インデクス更新方法及びそのシステム | |
JP2006172446A (ja) | 複合データアクセス | |
Brachmann et al. | Your notebook is not crumby enough, REPLace it | |
CN109871386A (zh) | 非易失性存储器中的多版本并发控制(mvcc) | |
JP6937759B2 (ja) | データベース操作方法及び装置 | |
US20170255662A1 (en) | Database engine for mobile devices | |
JPS62501243A (ja) | スタツク指向のメモリに対するアクセスのためのアドレス環境記憶装置 | |
JP2004030638A (ja) | マイクロプロセッサキャッシュ設計初期化 | |
WO2015105043A1 (ja) | 演算システム、データベース管理装置および演算方法 | |
JP2018085042A (ja) | データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム | |
US11625386B2 (en) | Fast skip list purge | |
JP4825504B2 (ja) | データ登録・検索システムおよびデータ登録・検索方法 | |
US20230244649A1 (en) | Skip-List Checkpoint Creation | |
US11681705B2 (en) | Trie data structure with subtrie data structures | |
JP2831837B2 (ja) | 文書検索装置 | |
JP3590211B2 (ja) | データベース管理方式 | |
JP5208117B2 (ja) | 表形式データを操作するマルチコア対応データ処理方法、マルチコア型処理装置、及び、プログラム | |
JP2021170302A (ja) | 情報処理装置および情報処理プログラム | |
Vitter | Computational complexity of an optical disk interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080704 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120403 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120531 |
|
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: 20121002 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121005 |
|
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: 20151012 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |