JP3563823B2 - 文書管理装置 - Google Patents
文書管理装置 Download PDFInfo
- Publication number
- JP3563823B2 JP3563823B2 JP12137095A JP12137095A JP3563823B2 JP 3563823 B2 JP3563823 B2 JP 3563823B2 JP 12137095 A JP12137095 A JP 12137095A JP 12137095 A JP12137095 A JP 12137095A JP 3563823 B2 JP3563823 B2 JP 3563823B2
- Authority
- JP
- Japan
- Prior art keywords
- document
- character
- search
- component table
- registered
- 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】
【従来の技術】
従来の文書管理装置について記載した公知文献としては、例えば、特開平5−324722号公報がある。この公報のものは、文字列検索において、利用する文字成分表を小さく抑え、かつ、検索程度を上げ、高速な文書登録を可能とするために、入力部に入力された検索文字列は、処理部の文字列入力処理で処理し、文書検索処理部において、データ部の文字成分表を利用して文字列を含むと思われる文書を検索する。検索した文書に対応する文書データを文書出力処理により出力部に出力し、文書登録処理では、登録する文書を文書データに登録し、文書データより文字成分を抽出して文字成分表に登録する。検索文字列を文書から検索する場合、文字成分表として、文字から算出される値が文書中に存在するか否かを示す1文字成分表及び隣接する文字から算出される値が文書中に存在するか否かを示す隣接文字成分表を利用して文書を検索する。すなわち、文書ごとに出現した文字を記録した文字成分表を用いて文書を高速に検索するシステムである。
【0003】
また、前述した特開平5−324722号公報や、先に提案した特願平5−298433号に記載のものは、文字成分が文書中に存在するか否かを示す単一文字成分表、及び隣接する文字から抽出したある文字成分が文書中に存在するか否かを示す隣接文字成分表を利用して文書を検索するものである。
【0004】
【発明が解決しようとする課題】
しかし、前記公報等に記載の方式には、以下に示すような問題点がある。
▲1▼.文字成分表の構成が固定的だった。
▲2▼.検索文字列が長くなるのに応じて検索時間がかかる。
▲3▼.単一の文字列しか検索条件として指定できない。そのため、複数の文字列を論理演算子(AND,OR)で組み合わせた条件を満たす文書を検索することができない。
▲4▼.文字成分表のビットマップデータを格納するブロックの大きさ(ブロックサイズ)が固定的であるため、ブロックサイズを小さくすると検索速度が低下し、ブロックサイズを大きくすると登録速度が低下してしまう。
▲5▼.複数の文書を一括して登録する機能がなく、多量の文書を登録するのに処理時間がかかる。
▲6▼.文書のデータがシステム内にあるので、ユーザにとって参照するのに手間がかかったり、文書の登録,削除,更新などの処理が面倒である。
【0005】
本発明は、このような実情に鑑みてなされたもので、▲1▼文字成分表の構成を目的に合わせて変更できるようにすること、▲2▼重複エントリを単一化して最適化すること、また、文字成分表のエントリに3文字以上のものを含めること、▲3▼論理演算子に対応すること、また、論理演算子に合わせた最適化すること、▲4▼ブロックサイズに大小2種類用意すること、▲5▼従来の文字成分表ではデータブロックが小さく二次記憶上で分散し、広範囲の二次記憶をアクセスすることになり、検索速度が遅いので、それを改善すること、▲6▼従来では文字エントリへのアクセス、つまり二次記憶へのアクセスが多く、検索速度の低下を招いていたので、それを改善すること、▲7▼多数の文書の登録処理の速度を改善すること、▲8▼ユーザや他のアプリケーションによる登録文書の参照を容易にすること、▲9▼複数の文書の登録時の文書指定を容易にすること、また、文書の登録,更新,削除があった場合に当該装置の文書管理の自動化を行うようにした文書管理装置を提供することを目的としている。
【0006】
【課題を解決するための手段】
本発明は、上記目的を達成するために、(1)登録文書を保存するとともに、該登録文書に含まれる各文字あるいは連続する2文字から算出される値を文字成分表に登録し記録する文書登録手段と、前記文字成分表を用いて検索条件に該当する文書を高速に探し出す文書検索手段とを有し、前記文書登録手段は、前記文字成分表の構成を指定した文字成分表エントリ指定を参照して前記登録文書から文字成分を抽出し、該文字成分から文字成分表エントリを計算して前記文字成分表を作成するようにし、前記文書検索手段は、前記文字成分表エントリ指定を参照して検索文字列から文字成分を抽出して、該抽出した文字成分から文字成分表エントリを計算して検索するようにしたこと、或いは、(2)前記(1)において、前記文書登録手段は、前記登録文書を複数に分類してそれぞれ別々のフォルダに分割して管理可能で、かつ、該フォルダに登録された登録文書に対する文字成分表の構成を指定する文字成分表エントリ指定を持たせるようにしたこと、或いは、(3)前記(1)において、前記文書検索手段で単一の文字列から抽出される文字成分に同一のものが2個以上ある場合、前記文字成分表の文字成分に対するアクセスを一回しか行わないこと、或いは、(4)前記(1)において、文字成分の算出値として、連続する3文字以上の文字列から算出される値をも用いること、或いは、(5)前記(4)において、文書登録時の文字成分の算出において、連続する3文字以上の文字列から算出される値を用いる場合には、該文字列から1文字あるいは連続する2文字から算出される値を文字成分表に登録しないこと、或いは、(6)前記(1)において、前記文書検索手段において、単一の文字列あるいは複数の文字列をAND論理演算子あるいはOR論理演算子で組み合わせた検索条件を処理可能とすること、或いは、(7)前記(6)において、前記文書検索手段でAND論理演算子で結合される2つの文字列から抽出される文字成分に同一のものが2個以上ある場合、文字成分表の文字成分に対するアクセスを一回しか行わないこと、或いは、(8)前記(6)において、前記文書検索手段でOR論理演算子で結合される2つの文字列から抽出される文字成分に同一のものが2個以上ある場合、文字成分表の文字成分に対するアクセスを一回しか行わないこと、或いは、(9)前記(1)において、前記文字成分表を、該文字成分表を保存する大小2種類のブロックから構成されるデータファイルと、文字成分ごとのブロック位置を記録するインデックスファイルによって記憶し、複数の小さいブロックを大きいブロックにまとめるブロック融合手段を有すること、或いは、(10)前記(9)において、前記ブロック融合手段において、データファイルの前方に大きいブロックをまとめ、後方に小さいブロックをまとめること、或いは、(11)前記(10)において、前記ブロック融合手段において、データファイルの小さいブロックが存在する領域のみをブロック融合の対象とすること、或いは、(12)前記(9)において、前記ブロック融合手段において、検索時に高速に文字成分表エントリを二次記憶から読み出すために、複数の固定長ブロックに分割された各文字成分表エントリを大きな固定長ブロックにまとめあげる時に大きな固定長ブロックをアロケートの単位とし、まとめ上げられた大きな固定長ブロック及びまとめあげられなかった残りの小さな固定長ブロックを詰め込んだ大きな固定長ブロックを順時書き出すことによって、文字成分表のデータを一回のスキャンで処理し、高速にかつ処理時に必要な二次記憶領域を最小限に抑えること、或いは、(13)前記(1)において、前記文字成分表の構成を、文書の各文字および連続する2文字から算出される値を記録するものとした場合、前記文書検索手段が検索文字列から、連続する2文字から算出される値のみを抽出すること、或いは、(14)前記(13)において、前記文書検索手段が、検索文字列からの連続する2文字から算出される値と、該検索文字列の末尾の1文字から算出される値を抽出すること、或いは、(15)前記(13)において、前記文書検索手段が、検索文字列からの連続する2文字から算出される値と、該検索文字列の先頭の1文字から算出される値を抽出すること、或いは、(16)前記(15)において、前記文字成分表の構成を連続する3文字以上の文字列から算出される値をも用いる場合、前記文書検索手段が、検索文字列から前記文字エントリが抽出される時には、該文字列エントリに対応する文字列に含まれる1文字あるいは前記文字列にその前後の文字を含めた文字列に含まれる2文字から算出される値を抽出しないこと、或いは、(17)前記(13)において、前記文書検索手段が、単一の文字列あるいは複数の文字列を「論理積」,「論理和」あるいは「論理差」論理演算子で組み合わせた検索条件を処理可能なこと、或いは、(18)前記(17)において、前記文書検索手段で「論理差」で結合される2つの文字列の処理において、後側の文字列を処理しないこと、或いは、(19)前記(1)において、前記文書登録手段が、多数の文書を一括して登録する場合に、一文書を登録するごとに生成された文字成分表データを直接二次記憶上の文字成分表に書き込むのではなく一旦メモリ上に登録し、その後、一括してメモリ上の文字成分表データを二次記憶の文字成分表に書き出すことによって、高速に文書の一括登録を行うこと、或いは、(20)前記(1)において、前記文書登録手段により登録されたファイルシステム上の登録文書のディレクトリパス名を二次記憶上で管理し、文書内容を参照する場合には、登録したディレクトリパス名を基に直接ファイルシステム上のオリジナルデータを参照することによって、文書管理システムが内部にオリジナルデータを持つ必要がないだけでなく、ユーザや他のアプリケーションによる登録文書の参照を容易にすること、或いは、(21)前記(1)において、前記文書登録手段により登録されたファイルシステム上の登録文書のオリジナルデータのディレクトリパス名を管理し、文書内容を参照する場合には、登録したディレクトリパス名を基に直接ファイルシステム上のオリジナルデータを参照するようにし、文書の登録時にディレクトリを指定し、そのディレクトリ内およびその下位ディレクトリの文書をすべて登録することにより、複数の文書の登録時の文書指定を容易にすること、或いは、(22)前記(1)において、前記文書登録手段により登録されたファイルシステム上の登録文書のオリジナルデータのディレクトリパス名を管理し、文書内容を参照する時には、登録したディレクトリパス名を基に直接ファイルシステム上のオリジナルデータを参照するようにし、あらかじめ登録対象とするディレクトリを指定しておき、そのディレクトリ上での文書の登録,更新,削除を常に監視し、文書の登録,更新,削除があった場合には、自動的に当該の文書について文字成分表に登録,更新,削除を行うことによって、ユーザの文書管理の手間を削減することを特徴としたものである。
【0007】
【作用】
本発明の文書管理装置は、(1)登録文書を保存するとともに、該登録文書に含まれる各文字あるいは連続する2文字から算出される値を文字成分表に登録し記録する文書登録手段と、前記文字成分表を用いて検索条件に該当する文書を高速に探し出す文書検索手段とを有しており、前記文字成分表エントリ指定により文字成分表の構成を変更可能とし、前記登録文書を複数のフォルダに分割して管理可能で、かつフォルダごとに文字成分表エントリ指定できるようにし、文字成分表の構成を目的に合わせて変更できるようにしたため、効率的な文書管理システムを構築できる。
【0008】
(2)前記文書検索手段で単一の文字列から抽出される文字成分に同一のものが2個以上ある場合、前記文字成分表の文字成分に対するアクセスを一回しか行わないようにし、また、文字成分の算出において、連続する3文字以上の文字列から算出される値をも用いるようにし、さらに、文書登録時の文字成分の算出において、連続する3文字以上の文字列から算出される値を用いる場合には、該文字列から1文字あるいは連続する2文字から算出される値を文字成分表に登録しないようにしたので、検索文字列が長い場合でも、高速に文書検索できる。
【0009】
(3)前記文書検索手段において、単一の文字列あるいは複数の文字列をANDあるいはOR論理演算子で組み合わせた検索条件を処理可能とし、また、前記文書検索手段でAND論理演算子で結合される2つの文字列から抽出される文字成分に同一のものが2個以上ある場合、文字成分表の文字成分に対するアクセスを一回しか行わないようにし、さらに、前記文書検索手段でOR論理演算子で結合される2つの文字列から抽出される文字成分に同一のものが2個以上ある場合、文字成分表の文字成分に対するアクセスを一回しか行わないようにした。検索条件を複数の文字列を論理演算子(AND,OR)で組み合わせで表現できるので、複雑な検索要求を表現することが可能となる。また、論理演算子に合わせた最適化を行うので、高速に文書検索できる。
【0010】
(4)前記文字成分表を、該文字成分表を保存する大小2種類のブロックから構成されるデータファイルと、文字成分ごとのブロック位置を記録するインデックスファイルによって記憶し、複数の小さいブロックを大きいブロックにまとめるブロック融合手段を有し、また、前記ブロック融合手段において、データファイルの前方に大きいブロックをまとめ、後方に小さいブロックをまとめるようにし、さらに、前記ブロック融合手段において、データファイルの小さいブロックが存在する領域のみをブロック融合の対象とするようにし、文字成分表のビットマップデータを格納するブロックの大きさに大小2種類用意したため、登録/検索速度をともに高速化できる。
【0011】
(5)前記ブロック融合手段において、検索時に高速に文字成分表エントリを二次記憶から読み出すために、複数の固定長ブロックに分割された各文字成分表エントリを大きな固定長ブロックにまとめあげる時に大きな固定長ブロックをアロケートの単位とし、まとめ上げられた大きな固定長ブロック及びまとめあげられなかった残りの小さな固定長ブロックを詰め込んだ大きな固定長ブロックを順時書き出すことによって、文字成分表のデータを一回のスキャンで処理し、高速にかつ処理時に必要な二次記憶領域を最小限に抑えるようにし、文字エントリの小さなブロックを大きなブロックにまとめ上げることにより、検索速度が向上する。
【0012】
(6)特定のビットマップのビットを横方向に順時調べ、ビットが1の場合には、他のビットマップエントリの対応するビットを調べる。つまり、縦方向にビットを調べ、すべてのビットが1の場合は、ビットに対応する文書が検索結果の文書となるようにする。また、各文字エントリ中に出現するビット1の出現数を予めカウントしておき、前述のビットを調べる処理の時にビット出現数が小さい順に並び代え、同様の処理を行うことによって、さらに参照するデータ量を減らすことが可能となる。さらに、文字エントリの一部しか参照しない場合には、全ブロックをアクセスすることなしにブロックテーブルから直接該当するブロックを得られ、高速に検索することができる。このように従来技術では文字エントリのアクセスが多く、検索速度の低下を招いていたが、検索時の処理のアルゴリズム及びデータ構成を変えることによって検索速度が向上する。
【0013】
(7)前記文字成分表の構成を文書の各文字および連続する2文字から算出される値を記録するものとした場合、前記文書検索手段が検索文字列から連続する2文字から算出される値のみを抽出し、また、前記文書検索手段が検索文字列から連続する2文字から算出される値と、該検索文字列の末尾の1文字から算出される値を抽出し、また、検索文字列から連続する2文字から算出される値と、該検索文字列の先頭の1文字から算出される値を抽出し、さらに、前記文字成分表の構成を連続する3文字以上の文字列から算出される値をも用いる場合、前記文書検索手段が検索文字列から前記文字エントリが抽出される時には、該文字列エントリに対応する文字列に含まれる1文字あるいは前記文字列にその前後の文字を含めた文字列に含まれる2文字から算出される値を抽出しないようにしたので、検索処理において検索文字列から抽出するエントリ数が削減され、検索処理を高速化できる。
【0014】
(8)前記文書検索手段が単一の文字列あるいは複数の文字列を「論理積」,「論理和」あるいは「論理差」論理演算子で組み合わせた検索条件を処理可能とし、また、前記文書検索手段で「論理差」で結合される2つの文字列の処理において、後側の文字列を処理しないことにしたので、検索条件を複数の文字列を論理演算子(AND,OR,NOT)で組み合わせで表現できるので、複雑な検索要求を表現することが可能となる。また、論理演算子に合わせた最適化を行うので、高速に文書検索できる。
【0015】
(9)多数の文書を一括して登録する場合に、一文書を登録するごとに生成された文字成分表データを直接二次記憶上の文字成分表に書き込むのではなく、多数の文書を一括して登録するには、従来の方法では文字成分表データが二次記憶上にある場合には、一文書を登録するごとに二次記憶にアクセスすることになり、速度が遅い。そこで、一括登録する文書については、一旦メモリ上に文字成分表を一時的に生成登録し、その後、処理の最後にメモリ上の文字成分表データを二次記憶上の文書成分表データにアペンドする。こうすることによって、二次記憶へのアクセスが減り、高速に複数文書の一括登録が可能となる。
【0016】
(10)当該文書管理装置のシステム内には、文書データを持たず、その代わりに文書の情報の一つとして、オリジナル文書のファイルシステム上での位置を示すディレクトリパス名を管理する。参照には、ディレクトリパス名を基にファイルシステム上のオリジナル文書を直接参照することになるので、当該装置のシステムが内部にオリジナルデータを持つ必要がなく、二次記憶を無駄に利用しないだけでなく、システムを介することなくユーザや他のアプリケーションによる登録文書の参照が可能となる。
【0017】
(11)文書の登録時にディレクトリを指定し、そのディレクトリ内およびその下位ディレクトリの文書をすべて登録することにより、文書管理装置においてファイルシステム上の登録文書のオリジナルデータの該ディレクトリパス名を管理する。文書内容を参照する場合には、登録したディレクトリパス名を基に直接ファイルシステム上のオリジナルデータを参照するようになし得る。
この様なことで、オリジナル文書をユーザが普段利用するファイルシステム上に置く場合には、一つのディレクトリ階層に存在する文書をそのまま文書管理装置で管理するシステムとすることが可能となる。また、ディレクトリを指定することによって、そのディレクトリ中に含まれる文書または下位のディレクトリ中に含まれる全文書を自動的に登録することができるようにすることで、ディレクトリ上の全文書を一つ一つユーザが指定する必要があった従来のユーザの負担を軽減することができる。
【0018】
(12)当該文書管理装置では、ファイルシステム上の登録文書のオリジナルデータのディレクトリパス名を管理する。文書内容を参照する時には、登録したディレクトリパス名を基に直接ファイルシステム上のオリジナルデータを参照することになり、また、事前に当該文書管理装置に登録したい文書を置くディレクトリをユーザが指定しておくと、当該装置のシステムは、そのディレクトリ上での文書の登録,更新,削除を常に監視し、文書の登録,更新,削除が行われた場合には、同じ操作を自動的に文字成分表に反映させ、登録,更新,削除を行う。このようにすることで、ユーザの文書操作の負担を軽減することができる。
【0019】
【実施例】
実施例について、図面を参照して以下に説明する。
図1は、本発明による文書管理装置の一実施例(請求項1)を説明するための構成図で、図中、1は登録文書、2は文書登録手段、3は検索条件、4は文書検索手段、5は該当文書、6は文字成分表エントリ指定、7は文字成分表、8は文書本文データ、9は文書データベースである。
【0020】
文書登録手段2は、登録文書1を文書データベース9に登録操作を行う。該文書データベース9には、文書本文データ8と文字成分表7と文字成分表エントリ指定6とが含まれる。文字成分表7とは、登録文書1に含まれる各文字あるいは文字列から抽出された情報の存在の有無を文書ごとに記録した表である。文書登録手段2は、登録文書1を保存するとともに、該登録文書1に含まれる各文字あるいは連続する2文字から算出される値を文字成分表7に登録し記録する。文書検索手段4は、前記文字成分表7を用いて検索条件3に該当する文書5を高速に探し出す。文字成分表エントリ指定6により文字成分表7の構成を変更可能とする。
【0021】
図2は、文字成分表の一例を示す図である。
ここで示した文字成分表では、各文字の出現のみを記録した構成である。これは、各文字のコードに関数を作用させ、算出される値をエントリとするものである(各文字の出現をそのまま記録する図2の方式は、関数としてf(x)=xとしたものである)。このような1文字から算出されるエントリを単一文字エントリと呼ぶ。
【0022】
図3は、文字成分表の他の例を示す図である。
ここで示した文字成分表では、各文字と連続する2文字からそれぞれの文字コードの下位4ビットをビット連結して得られる値をエントリとしている。例えば、「ぐ」,「だ」,「ば」のJISコードは、各々 0x2430,0x2440,0x2450 であり、下位4ビットを連結して得られる8ビットを文字成分表のエントリとした場合、「ぐぐ」,「ぐだ」,「ぐば」…は全て同じ 0x00 のエントリにまとめられる。すなわち、連続する2文字のコードに関数を作用させ、算出される値をエントリとすることができる(前側の文字x,後側の文字yに対して、関数g(x,y)の値をエントリとする)。このような連続する2文字から算出されるエントリ(文字成分)を隣接文字エントリと呼ぶ。図3の文字成分表は、単一文字エントリと隣接文字エントリを組み合わせたものである。
【0023】
このように、文字成分表には様々な構成が可能であり、本発明では、図1の文字成分表エントリ指定6によって文字成分表7の構成を指定できるものとする。以下の説明では、簡単のため、図2のような各文字の出現のみを記録した文字成分表を使用するものとする。
【0024】
文書登録手順は、次の通りである。
▲1▼.登録文書1を文書本文データ8に登録する。
▲2▼.登録文書1の内容を文字成分表7に登録する。
文書本文から文字成分表エントリ指定6で規定されるエントリを抽出する。登録文書番号をi,抽出されたエントリ番号をjとした場合、すべてのjについて文字成分表の点(i,j)の値を“1”にする。
【0025】
また、文書検索手順は、次の通りである。
▲1▼.文字成分表7を用いて検索文字列を含む可能性のある文書番号を求める。
(a)検索文字列から文字成分表エントリ指定6で規定されるエントリを抽出する。
(b)抽出された全てのエントリのビットマップ(図2の横一列)を文字成分表から抜きだし、ビットANDをとる。
▲2▼.前記▲1▼で求まった文書番号の文書本文を文書本文データ8から読みだし、検索文字列が含まれているか調べ、含まれている文書集合を検索結果とする。
【0026】
文字成分表の検索精度(文字成分表を用いて得られる文書に検索文字列が含まれている割合)は文字成分表の構成に依存する。本発明では、文字成分表エントリ指定により、文字成分表の構成を任意に変更できる。そのため、登録される文書に合わせて効率的な文書管理システムを構築できる。
【0027】
次に、請求項2に記載の発明について説明する。
図4は、本発明による文書管理装置の他の実施例(請求項2)を説明するための構成図で、図中、9−1〜9−nは文書データベースで、その他、図1と同じ作用をする部分は同一の符号を付してある。なお、図1の構成と異なる点は、文書データベース9−1〜9−nが多数存在している点である。
文書には様々な用途のものがあるため、異なる文書集合は異なる文書データベースに保存することが望まれる。その際、異なる文書集合は、文書の長さや文字の出現頻度なども違う。そこで、本発明の文書管理装置では、文書データベース9ごとに文字成分表エントリ指定6を異なったものを用いることができるため、効率的な文書管理を行える。
【0028】
次に、請求項3に記載の発明について説明する。
これまでの方式だと、検索文字列が長くなるに従い、文字成分表でアクセスすべきエントリが増加するため、検索速度が低下する。実際には、検索語から算出される文字成分表エントリにも同一のものが含まれることがある。その場合、そのエントリに複数回アクセスする必要はないため、検索語に複数個出現したエントリへのアクセスを一回に押えることで、検索に必要な文字成分表へのアクセス回数を減らし、検索を高速化できる。
【0029】
例えば、図2の文字成分表を用いた場合、検索語「マンマシンシステム」は9文字から構成されているため、文字成分表には「マ」「ン」「マ」「シ」「ン」「シ」「ス」「テ」「ム」の9回のアクセスが必要になる。しかし、実際には、「マ」「ン」「シ」は2回ずつ出現しているため、これらエントリへのアクセスは1回にまとめることができる。すなわち、文字成分表への実際のアクセスは、「マ」「ン」「シ」「ス」「テ」「ム」の6回ですむ。
【0030】
次に、請求項4に記載の発明について説明する。
これまでの方式だと、文字成分表のエントリは最大2文字からのみ構成される。これに対し、3文字以上の長い文字列(から算出される値)をエントリに用いることとすれば、文字成分表へのアクセス回数を減らし、検索を大幅に高速化できる。
図5は、長い文字列をエントリとして持つ文字成分表を示す図である。
「システム」「パターン」などが文字列エントリである。文字列エントリは、文書における出現頻度の高い文字列を選出すれば良い。
【0031】
登録時には、「…あのマンマシンシステムは…」からは、文字として「あ」「の」「マ」「ン」「シ」「ス」「テ」「ム」「は」、文字列として「システム」が抽出され、文字成分表に記録される。
検索時には、検索語「マンマシンシステム」からは、文字として「マ」「ン」「マ」「シ」「ン」、文字列として「システム」が抽出されるが、「システム」に含まれる「シ」および単一文字の重複を削除する。結局、「マ」「ン」「システム」の3つのエントリにアクセスするだけでよく、検索時間は大幅に短縮できる。
【0032】
次に、請求項5に記載の発明について説明する。
前記請求項4に記載した方式では、文書登録時に文字列エントリに含まれる文字エントリも抽出し、文字成分表に記録する。しかし、その部分は、通常検索文字列でも文字列として含まれる場合が多いので、文字成分表に記録する必要は必ずしもない。このような文字エントリを登録しないことにより、文字成分表を小型化することができる。
【0033】
例えば、前項の例文「…あのマンマシンシステムは…」の登録時には、文字として登録するのは「あ」「の」「マ」「ン」「は」だけでよい(文字列として「システムが抽出され、文字成分表に記録される)。ただし、検索文字列に文字列エントリの部分文字列が含まれている場合、この方式では、検索洩れが起こり得る。例えば、検索文字列が「システ」の場合(「システム」の部分文字列)、この方式では検索できないことになる。
【0034】
次に、請求項6に記載の発明について説明する。
本実施例では、検索条件として複数の文字列を論理演算子(AND,OR)で組み合わせたものを受け付ける(単一の文字列もこの検索条件に含める)。ここで、“AND”は前後の文字列をともに含む文書を検索すること、“OR”は前後の文字列を少なくとも一つ含む文書を検索することを意味する。さらに、必要に応じて、演算子の作用順序を明示するために、“(”,“)”を用いることができるものとする。論理演算子を検索条件に用いることができるようにすることで、複雑な検索要求を表現することが可能となる。例えば、「マンマシンシステム」,「文書検索AND文書登録」,「文書検索OR情報検索」,「(新聞OR雑誌)ANDカラー」などが上記の検索条件になる。
【0035】
次に、請求項7に記載の発明について説明する。
前記請求項3に記載の発明では、単一の検索文字列内のアクセスの単一化を提案したが、ここでは、論理演算子ANDで結合される2つないしはそれ以上の検索文字列にまたがったアクセスの単一化を導入する。例えば、検索条件「文書検索AND文書登録」から、従来方式では、「文」「書」「検」「索」「文」「書」「登」「録」の8つのエントリにアクセスする。一方、本項目の単一化(最適化)により「文」「書」の重複が削除され、文字成分表へのアクセスは6回に減らすことができる。
【0036】
次に、請求項8に記載の発明について説明する。
前記請求項3に記載の発明では、単一の検索文字列内のアクセスの単一化を提案したが、ここでは、論理演算子ORで結合される2つないしはそれ以上の検索文字列にまたがったアクセスの単一化を導入する。例えば、検索条件「文書検索OR情報検索」から、従来方式では、「文」「書」「検」「索」「情」「報」「検」「索」の8つのエントリにアクセスする。一方、本項目の単一化(最適化)により「検」「索」の重複が削除され、文字成分表へのアクセスは6回に減らすことができる。
【0037】
次に、請求項9に記載の発明について説明する。
文字成分表は、ファイルとして保存される。文字成分表ファイルの構成は、文字成分表のエントリに対応するビットマップデータに簡単にアクセスできることが望まれるが、それを実現するために、例えば、インデックスファイルと固定長ブロックから構成されるビットマップデータファイルの2つのファイルで構成することができる。この場合、インデックスファイルは、次の2つのフィールドを含むブロックから構成することができる。
・先頭ブロックオフセットフィールド
・末尾ブロックオフセットフィールド
【0038】
インデックスファイルに含まれるブロック数は、文字成分表エントリ指定によって決まる。ビットマップデータファイルは、次の2つのフィールドを含むブロックから構成される。
・次ブロックオフセットフィールド
・データフィールド
【0039】
ブロックサイズは、性能要求に合わせて数十バイトから数キロバイトの範囲に設定すれば良い。
図6(a)は、文字成分表のためのファイル構成の一例を示す図である。なお、インデックスファイルを半導体メモリ上にロードしておくことは、高速化に有効である。
【0040】
ビットマップデータファイルのブロックサイズは、登録・検索性能等に与える影響が大きい。ブロックサイズが大きい場合、検索は高速だが登録が遅く、小さい場合、登録は高速だが検索は遅くなる。また、データファイルのうち、ビットマップデータの記録に使用されていない領域の割合は、そこで、ブロックを大きいものと小さいものの2種類を用意する。以下では、小さいブロックを「バケット」、大きいブロックを「コンテナ」と呼び、コンテナとバケットの大きさの比を「M」と書くこととする。コンテナの大きさは、バケットの数倍から十数倍程度とする(M=数倍〜十数)。
【0041】
図6(b)は、2種類の大きさのブロックを導入した場合の文字成分表のファイル構成の一例を示す図である。ここでは、ブロックオフセットの最上位ビットが“1”,“0”によって、そのオフセット位置のブロックがコンテナかバケットかを示すようにしている。
【0042】
文書検索システム利用開始時点では、ブロックサイズを小さいものとして、登録速度を優先する(登録文書数が少ない間は、検索速度が多少遅くても検索時間が小さいので、ほとんど問題とならない)。多数の文書が登録され、ビットマップデータファイルに含まれるブロック数が増大した段階で、複数のバケットをコンテナにまとめあげるブロック融合処理を行う。通常のオペレーティングシステムでは、データを小さいブロックに分割しておくよりも大きいブロックにまとめておく方がアクセスが高速だからである。その結果、ブロック融合処理により検索速度が向上され、登録文書数が多い場合でも検索時間を小さくできる。
【0043】
ブロック融合処理手順▲1▼
▲1▼.書き出し用の一時ファイルを作成する。
▲2▼.文字成分表を構成する全てのエントリのビットマップデータに対して、次の処理を行う。
(a)コンテナはそのまま一時ファイルに書き出す。
(b)コンテナにまとめ上げられる(M個の)バケットは、1個のコンテナとし、一時ファイルに書き出す。
(c)残りのコンテナにまとめ上げられない(M個未満の)バケットは、一時ファイルに書き出す。
▲3▼.これまでのビットマップデータファイルを削除する。
▲4▼.一時ファイルを新たなビットマップデータファイルとする。
【0044】
図7(a),(b)は、ブロック融合処理の概要を示す図である。
網掛けによって各バケット/コンテナがどのエントリ(ここでは文字ごとにエントリを立てている)に対応しているかを示す。ここでは、コンテナはバケットの8倍の大きさとしている。例えば、「あ」は、融合処理前にバケット17個なので、融合処理後はコンテナ2個とバケット1個になる。「い」は、同様にしてバケット11個がコンテナ1個とバケット3個になる。「う」は、バケットが7個しかないので、コンテナには1個も生成されず、バケット7個のままである(ただし、この場合でもバケットがお互いに隣接する位置に配置されるため、アクセスが高速化され、検索速度が向上する)。
【0045】
次に、請求項10に記載の発明について説明する。
前述の方式では、データファイル中にバケットとコンテナが混在する。2次記憶装置上のデータへのアクセスは、オペレーティングシステムの最適化などによりページ単位に行われるため、バケットとコンテナが混在していると、コンテナのような大きいブロックを導入しても、コンテナの配置が2次記憶装置のページ境界と一致せず、期待通りの性能向上が行われないことがある。そこで、本発明の方法では、データファイルの前方にコンテナをまとめ、後方にブロックをまとめることで、コンテナを必ずページ境界に配置し、性能向上を図る。
【0046】
ブロック融合処理手順▲2▼
▲1▼.書き出し用の一時ファイルを2つ作成する。1つを「コンテナ用一時ファイル」、もう1つを「バケット用一時ファイル」と呼ぶ。
▲2▼.文字成分表を構成する全てのエントリのビットマップデータに対して、次の処理を行う。
(a)コンテナはそのままコンテナ用一時ファイルに書き出す。
(b)コンテナにまとめ上げられる(M個の)バケットは1個のコンテナとし、コンテナ用一時ファイルに書き出す。
(c)残りのコンテナにまとめ上げられない(M個未満の)バケットは、バケット用一時ファイルに書き出す。
▲3▼.これまでのビットマップデータファイルを削除する。
▲4▼.コンテナ用一時ファイルにバケット用一時ファイルを連結し、新たなビットマップデータファイルとする。
【0047】
図7(a),(c)は、上記アルゴリズムによるブロック融合処理の概要を示す図である。このアルゴリズムでは、ブロック融合処理後(図7(c)の状態)は、データファイルの先頭部分にコンテナが集まり、A点以降はバケットが集合した状態となる。
【0048】
次に、請求項11に記載の発明について説明する。
ブロック融合処理後にも文書は追加登録される。追加登録後のブロックタイプはバケットなので、追加登録文書数が増大すると、再び検索速度が低下してしまう。その場合、再びブロック融合処理手順▲2▼によりブロック融合処理を行えばよい。しかし、ブロック融合処理手順▲2▼では、2つの一時ファイルの大きさの合計は、データファイルとほぼ等しくなってしまう。多量の文書が登録された場合、データファイルの大きさが膨大となるため、これは極めて望ましくない。次に示すブロック融合処理手順▲3▼はこの点を改良し、一時ファイルの大きさの合計をデータファイルのバケット部分の大きさ程度で済むようにした。
【0049】
ブロック融合処理手順▲3▼
▲1▼.書き出し用の一時ファイルを2つ作成する。1つを「コンテナ用一時ファイル」、もう1つを「バケット用一時ファイル」と呼ぶ。
▲2▼.文字成分表を構成する全てのエントリのビットマップデータに対して、次の処理を行う。
(a)コンテナは無視する。
(b)コンテナにまとめ上げられる(M個の)バケットは、1個のコンテナとし、コンテナ用一時ファイルに書き出す。
(c)残りのコンテナにまとめ上げられない(M個未満の)バケットは、バケット用一時ファイルに書き出す。
▲3▼.ビットマップデータファイルのバケット部分を削除する。
▲4▼.ビットマップデータファイルにコンテナ用一時ファイル、さらにバケット用一時ファイルを連結する。
【0050】
前記請求項10及び請求項11に記載の方式の相違を図8(a)〜(c)に示す。図8(a)に示すように、バケット融合処理後に再び文書が登録された場合、データファイルの末尾(図8(a)のB点)からバケットが順次挿入された状態になる。ブロック融合処理手順▲2▼では、図8(b)のように、データファイルのブロックが整理され、検索速度が向上する。しかし、2つの一時ファイルの合計の大きさは、データファイルの大きさと等しい。これに対し、本項で提案するブロック融合処理手順▲3▼では、データファイルのA点以降の部分のみを処理の対象とする。ブロック融合処理結果を示したものが図8(c)である。新たに作成されたコンテナは、融合前にバケットが存在していたA点以降に配置される。同一エントリに対するコンテナが必ずしも連続する位置に配置されるわけではないが(例えば、「い」のコンテナ)、そのことにより速度低下は極めて小さい。
【0051】
図9は、本発明による文書管理装置の更に他の実施例(請求項12)を説明するための構成図で、図中、11は入力部、12は処理部、13は文字列入力処理部、14は文書検索処理部、15は文書出力処理部、16は文書登録処理部、17はデータ部、18は文字成分表、19は出力部、20は文書データである。
【0052】
入力部11に入力された検索文字列は、処理部12の文字列入力処理13で処理する。文書検索処理部14においてデータ部17の文字成分表18を利用して文字列を含むと思われる文書を検索する。そして、検索した文書に対応する文書データ20を文書出力装置15により出力部19に出力する。文書登録処理部16では、登録する文書を文書データ20に登録し、該文書データ20より文字成分を抽出して文字成分表18に登録する。
以下の説明では、対象文書は1バイト文字コード(例えば、ASCII)及び2バイト文字コード(EUC:Extended UNIX CODE)からなるテキストデータとする。しかし、対象とする文字コードはEUC以外にも容易に適用可能である。
【0053】
文書をデータ部に登録する時には、単一文字成分及び隣接文字成分を抽出し、文字成分表を作成する。単一文字成分は各内部文字コードの2バイトコードとし、隣接文字成分は隣接する内部文字コードから変換したコードである。本実施例では内部文字コードのビット成分を適当に抽出したビット列を隣接文字成分とする。上記方法で得られた文字成分及び隣接文字成分に対して、図10に示すように、それぞれ単一文字成分表及び図11に示す隣接文字成分表を生成する。図11では隣接する文字の下位1バイトを合わせて2バイトとしている。各文字成分表は、各単一文字成分または隣接文字成分が各文書に存在するか否かを0と1で示す。図11の隣接文字成分表を例とすると、a0a0(16進)のビット列は文書1、2、3、nには存在せず、文書4、5には存在することを意味する。文書登録時に上記方法により文書から文字成分を抽出し、各文字成分テーブルに加える。
【0054】
仮に、隣接文字成分表として各文字成分の下位1バイトのみを利用した場合には、検索文字列とは異なる隣接文字でも下位バイトが一致する隣接文字を含む文書を検索する場合がある。ひらがな及びカタカナは頻繁に出現するので、検索の精度が低くなる。また漢字は文書中の出現頻度が低いので、本来検索精度が高い文字種であるにも関わらず、検索精度が低い他の文字種の影響を受けて検索精度が低くなってしまう。そこで、文字種ごとに異なる隣接文字成分表を作成し、検索時に検索文字列の文字種ごとに異なる隣接文字成分表を利用することによって、ひらがななどの頻繁に文書に出現する文字種の影響を受けず、検索精度を上げることができる。
以下、単一文字成分表、隣接文字成分表について説明する。
【0055】
・単一文字成分表:文字がどの文書に出現するか否かを示す表
・隣接文字成分表
−同種隣接文字成分表:隣接する同種の文字のペアがどの文書に出現するか否かを示す表
*記号
*英数時
*ひらがな
*カタカナ
*ギリシャ文字、グラフィック文字など
*1バイト文字コード
*第一水準漢字
*第二水準漢字
−異種隣接文字成分表:隣接する異種の文字のペアがどの文書に出現するか否かを示す表
【0056】
検索時には登録時と同様に検索文字列から単一文字成分と隣接文字成分を抽出し、それぞれ文字成分表から各成分を含む文書を検索する。
図12は、従来の検索方法を説明するための図である。
図12において、ビットの1は文字成分が出現することを示し、0は文字成分が出現しないことを意味する。従来の検索方法では検索文字列から文字種を判別して単一文字成分、隣接文字成分を登録時と同様に抽出し、各文字成分に対応する単一文字成分表及び隣接文字成分表から文字エントリのビットマップを抽出してAND演算を行う。したがって、対象となるすべての文字エントリのデータを参照することになる。
【0057】
本実施例では、図13に示すように、特定のビットマップのビットを横方向に順時調べ、ビットが1の場合には、他のビットマップエントリの対応するビットを調べる。つまり、図13で縦方向にビットを調べ、すべてのビットが1の場合は、ビットに対応する文書が検索結果の文書となる。ビットが0の時には、図13の一番上の文字エントリに戻り、順時同様に繰り返す。こうすることによって、矢印で示されるビットのみを参照することになり、従来の検索方法に比較して参照するデータ量が格段に減少する。
【0058】
さらに、図14に示すように、各文字エントリ中に出現するビット1の出現数を予めカウントしておき、前述のビットを調べる処理の時に、図14に示すように、ビット出現数が小さい順に並び代え、同様の処理を行うことによって、さらに参照するデータ量を減らすことが可能となる。
【0059】
従来の検索方法では、各文字エントリのビットマップデータである可変長ビットマップデータは、複数の固定長ブロックに分割され、二次記憶に格納されている。したがって、前述の検索処理時に再度複数の固定長ブロックを可変長のビットマップに結合復元する。また、各文字エントリの一部のデータしかアクセスしない場合でも、文字エントリの全固定長データブロックを読み込み結合し、可変長ビットマップデータに復元する処理が必要となる。
【0060】
本実施例では、前述の文字エントリは二次記憶上で、図15に示すように、インデックスとブロックテーブルとブロックとから構成される。インデックスは各内部文字コードに対してブロックテーブルポインタとビット出現数(エントリ内に出現するビット1の数)のペアからなる。ブロックテーブルは先頭に次のブロックテーブルへのポインタを有し、ブロックポインタとブロック最終登録文書ID(ブロック内の最後に登録されている文書のID)からなる。したがって、内部文字コード「あ」に対応する全ブロックは、図15に示すように、ブロックテーブルから示されるブロックとなる。
【0061】
文書IDが4000の文書内に内部文字コードが「あ」の文字が出現する否かを調べる場合を例に、以下に説明する。
・インデックスの「あ」に対応するブロックテーブルポインタからブロックテーブルを得る。
・ブロック最終登録文書IDから文書ID4000を含むブロック(ブロックポインタ5120)を得る。
・ブロック(5120)のデータが圧縮されている場合には伸長し、文書ID4000に該当するビットを得る。
このように、文字エントリの一部しか参照しない場合には、全ブロックをアクセスすることなしにブロックテーブルから直接該当するブロックを得られ、高速に検索することができる。
【0062】
検索の時間で最も多く占めるのがディスクからデータのREAD時間である。READするページ(物理的なディスク読み書きの単位)が多ければ多いほど検索処理は遅くなる。文書登録を行なうと、図16(a)のように、文字エントリのブロックは複数のページに分散する。したがって、検索処理では分散しているブロックを含むページをすべてREADすることにより処理が遅くなる。
本実施例では、図16(b)のように、分散したブロックをページ単位にまとめ上げることで検索処理時にREADするページを減らし、処理を速くすることができる。図16に示す例では、まとめ上げ前には6ページ以上をREADしなければならなかったが、まとめ上げ後には3ページとなり、READの時間が半分以下になる。このようにブロックをページ単位にまとめ上げる処理をまとめ上げ処理と呼ぶ。
【0063】
まとめ上げ処理では、図16(b)のように、ブロックをページにまとめ上げるが、ページにまとめ上げられなかった、ブロックについてはまとめ上げられなかったブロックを格納するためのページ(残ブロックページと呼ぶ)に集められる。したがって、図17に示すように、残ブロックページには、様々な文字エントリの残ブロックが格納される。また、まとめ上げられたページはファイル中で混在することになる。
【0064】
まとめ上げの処理手順を以下に示す。なお、説明中のバッファはメモリ上の領域を意味する。
▲1▼前処理
(a)文字成分表をオープンする。
(b)まとめ上げ用文字成分表を作成しオープンする。
(c)残ブロックページをアロケートする。
【0065】
▲2▼文字エントリ単位のまとめ上げ処理
(a)ページへのまとめ上げ処理
i.1ランレングスを読みページバッファに詰める。
ii.ページバッファにデータが満たされたらページバッファを書き出し、ページバッファをクリアする。
iii.ランレングスをすべて読み終るまで前記i.に戻る。
(b)ページにまとめ上げられなかったブロック(残ブロック)の書き出し処理i.まとめ上げられなかったランレングスから再度1ランレングスを読み、残ブロックバッファに詰める。
ii.残ブロックバッファにデータが満たされたら残ブロックページに書き出す。
iii.残ブロックページの領域をすべて使い果たしたら新たに残ブロックページをアロケートする。
iv.ランレングスをすべて読み終るまで前記i.に戻る。
【0066】
▲3▼後処理
(a)書き出されていない残ブロックページを書き出す。
(b)文字成分表及びまとめ上げ文字成分表をクローズする。
こうすることによって、文字成分表を1回スキャンするだけまとめ上げ処理が可能となり、処理が高速であるだけでなく、処理時に必要な二次記憶の領域を最小限に抑えられる。
【0067】
次に、請求項13に記載の発明について説明する。
本実施例の検索処理では、検索文字列から抽出されるエントリ数が少なければ、文字成分表へのアクセスが少なくなり、検索が高速になる。文字成分表エントリ指定において、単一文字エントリと隣接文字エントリを定義した場合、検索文字列がn文字の時、n個の単一文字エントリとn−1個の隣接文字エントリが抽出されるので、トータルでは2n−1個のエントリが抽出され、検索が遅い。
【0068】
例えば、検索文字列が「パターンマッチ」である時、次のエントリが抽出される。
・単一文字エントリ:以下の文字に関数f(x)を作用させる。
パ,タ,ー,ン,マ,ッ,チ
・隣接文字エントリ:以下の2文字に関数g(x,y)を作用させる。
パタ,ター,ーン,ンマ,マッ,ッチ
【0069】
しかし、f(x)=x,g(x,y)=x+αy(ここで、αは文字コードの取り得る最大値)のような場合を考える。この時、検索文字列からg(X,Y)が抽出される時には、必ずf(X),f(Y)も抽出される(例えば、g(パ,タ)が抽出される時は、必ずf(パ),f(タ)も抽出される)。したがって、検索文字列を含む文書を特定する上で、単一文字エントリは意味をなさない。そこで、検索文字列からは単一文字エントリを抽出せず、隣接文字エントリのみを抽出する。その結果、n文字の検索文字列からn−1個の隣接文字エントリのみが抽出されるので、検索が高速化できる。
【0070】
例えば、検索文字列が「パターンマッチ」である時、次のエントリが抽出される。
・単一文字エントリ:抽出しない。
・隣接文字エントリ:以下の2文字に関数g(x,y)を作用させる。
パタ,ター,ーン,ンマ,マッ,ッチ
なお、この方式が有効なのは、f(x)=x,g(x,y)=x+αyに限らない。
【0071】
次に、請求項14に記載の発明について説明する。
本実施例も、請求項13に記載の発明と同様の効果を狙ったものであり、文字成分表エントリ定義がf(x)=x,g(x,y)=x+α(y mod β)(ここで、αは文字コードの取り得る最大値、βは適当な定数)のような場合を扱う。この時、検索文字列からg(X,Y)が抽出される時には、必ずf(X)は抽出される(例えば、g(パ,タ)が抽出される時は、必ずf(パ)も抽出される)。したがって、検索文字列を含む文書を特定する上で、末尾の1文字を除いては単一文字エントリは意味をなさない。そこで、検索文字列からは末尾の1文字から算出される単一文字エントリと、隣接文字エントリを抽出する。その結果、n文字の検索文字列から1個の単一文字エントリとn−1個の隣接文字エントリのトータルn個のエントリが抽出されるので、検索が高速化できる。
【0072】
例えば、検索文字列が「パターンマッチ」である時、次のエントリが抽出される。
・単一文字エントリ:以下の文字に関数f(x)を作用させる。
チ
・隣接文字エントリ:以下の2文字に関数g(x,y)を作用させる。
パタ,ター,ーン,ンマ,マッ,ッチ
なお、この方式が有効なのは、f(x)=x,g(x,y)=x+α(y mod β)に限らない。
【0073】
次に、請求項15に記載の発明について説明する。
本実施例も請求項14に記載の発明と同様の効果を狙ったものであり、文字成分表エントリ定義がf(x)=x,g(x,y)=y+α(x mod β)のような場合を扱う。この時、検索文字列からg(X,Y)が抽出される時には、必ずf(Y)は抽出される(例えば、g(パ,タ)が抽出される時は、必ずf(タ)も抽出される)。したがって、検索文字列を含む文書を特定する上で、先頭の1文字を除いては単一文字エントリは意味をなさない。そこで、検索文字列からは先頭の1文字から算出される単一文字エントリと、隣接文字エントリを抽出する。その結果、n文字の検索文字列から1個の単一文字エントリとn−1個の隣接文字エントリのトータルn個のエントリが抽出されるので、検索が高速化できる。
【0074】
例えば、検索文字列が「パターンマッチ」である時、次のエントリが抽出される。
・単一文字エントリ:以下の文字に関数f(x)を作用させる。
パ
・隣接文字エントリ:以下の2文字に関数g(x,y)を作用させる。
パタ,ター,ーン,ンマ,マッ,ッチ
なお、この方式が有効なのは、f(x)=x,g(x,y)=y+α(x mod β)に限らない。
【0075】
次に、請求項16に記載の発明について説明する。
前述した請求項4に記載の発明では、文字成分表のエントリに3文字以上の長い文字列(から算出される値)をエントリに用いることで、文字成分表へのアクセス回数を減らし、検索を大幅に高速化できることを示した。図5に長い文字列をエントリとして持つ文字成分表を示す。「システム」「パターン」などが文字列エントリである。
【0076】
文字成分表エントリ指定において、単一文字エントリと隣接文字エントリを定義し、さらに、文字列エントリを導入した場合の検索処理を考える。請求項4に記載の発明では、検索文字列中に含まれる文字列エントリに対応する文字列から抽出される単一/隣接文字エントリは、検索処理に用いないとしていた。
【0077】
例えば、検索文字列が「パターンマッチ」で「パターン」が文字列エントリとして定義されている時、次のエントリが抽出される。
・単一文字エントリ:以下の文字に関数f(x)を作用させる。
マ,ッ,チ
・隣接文字エントリ:以下の2文字に関数g(x,y)を作用させる。
ンマ,マッ,ッチ
・文字列エントリ:
パターン
【0078】
もちろん、請求項4記載の発明に本発明の請求項13〜15に記載の発明を組み合わせることも可能である。
一方、本発明では、隣接文字エントリについては該当する文字列エントリに前後の文字を加えた文字列から抽出されるエントリを抽出しないことで、検索文字列から抽出エントリ数を削減し、検索を高速化する(単一文字エントリについては、これまで通り、該当する文字列エントリから抽出されるエントリを抽出しないこととする)。
【0079】
例えば、「パターンマッチ」から抽出されるエントリは、以下のようになり、エントリ数を一つ減らすことができる。
・単一文字エントリ:以下の文字に関数f(x)を作用させる。
マ,ッ,チ
・隣接文字エントリ:以下の2文字に関数g(x,y)を作用させる。
マッ,ッチ
・文字列エントリ:
パターン
【0080】
次に、請求項17に記載の発明について説明する。
前述した請求項6に記載の発明では、検索条件として複数の文字列を論理演算子(AND,OR)で組み合わせたもの(単一の文字列もこの検索条件に含める)を受け付けるとしていた。ここで、“AND”は前後の文字列をともに含む文書を検索すること、“OR”は前後の文字列を少なくとも一つ含む文書を検索することを意味する。さらに、必要に応じて、演算子の作用順序を明示するために、“(”,“)”を用いることができるものとする。論理演算子を検索条件に用いることができるようにすることで、複雑な検索要求を表現することが可能となった。
【0081】
しかし、AND,ORだけでは「「文書検索」を含むが「画像検索」を含んでいないこと」のような否定を含む検索要求を表現することはできない。そこで、本実施例では、検索条件として複数の文字列を論理演算子(AND,OR,NOT)で組み合わせたものを受け付ける。ここで、“NOT”は前の文字列を含むが、後の文字列は含まない文書を検索することを意味する。
【0082】
次に、請求項18に記載の発明について説明する。
AND,ORの処理では、演算子の前後の検索文字列に対するビット列を計算し(検索手順のステップ1)、それらのビットANDあるいはビットORを取れば良かった。しかし、NOTでは、同様の処理(前後の検索文字列に対するビット列を計算し、後側のビット列のビット反転して前側のビット列とビットANDを取る)では、検索洩れの可能性がある。これは、文字成分表を用いて得られる各検索文字列に対するビット列は、正確にその文字列を含む文書番号の表現ではなく、実際には、その文字列を含んでいない誤検索も含んでいるためである。その結果、ビット反転したビット列には、その文字列を含んでいない文書(番号)の一部は含まれないことになり、検索洩れが発生する。
【0083】
そこで、本実施例では、NOTについては前側の検索文字列に対するビット列をNOTの処理結果のビット列とする。その結果、NOTの処理結果には、後側の検索文字列を含む文書が含まれ、誤検索が発生する(誤検索は検索処理のステップ2で排除できるので、実用上は問題ない)。しかし、後側の検索文字列を含まない文書が含まれないことはなくなり、検索洩れを完全に防ぐことができる(検索洩れは検索処理のステップ2で救うことができないので、実用上の問題となる)。また、この方式では、後側の検索文字列を処理する必要がないので、文字成分表検索の高速化にも効果がある。
【0084】
次に、請求項19に記載の発明について説明する。
文書から文字成分を抽出し、文字成分表を生成するまでの過程は、図9〜図11に従って記述された請求項12の発明の実施例と同様に行われる。
これにより得られる文字成分表の構成は、図18に示されるようにインデックスとビットマップデータから成る。インデックス部は、文字成分とビットマップデータへのポインタの対応表である。ビットマップデータは文字成分表の文書中に文字成分が出現するか否かを示す0,1のデータである。大量の文書を登録する場合に、ビットマップデータは巨大になることから、メモリ上には置かず二次記憶に置く。
【0085】
二次記憶への登録の手法を特徴とするこの発明の実施例によると、一文書を登録するごとに文字成分表が生成され、その都度、直接二次記憶上の文字成分表に書き込むのではなく、一旦メモリ上に登録し、その後一括してメモリ上のデータを二次記憶の文字成分表に書き出す。図18に一括登録時のデータ構成を示す。この例では、簡便のために二次記憶上のデータ構成とメモリ上の構成を同じにしている。一括文書登録時にはメモリ上のテーブルに一時的に登録したデータ(図中の網かけ)を処理の最後に二次記憶のビットマップテーブルにコピーし、登録処理を完了する。
【0086】
次に、請求項20に記載の発明について説明する。当該文書管理装置のシステム内には、文書データを持たず、その代わりに文書の情報の一つとしてオリジナル文書のファイルシステム上での位置を示すディレクトリパス名を二次記憶上で管理し、参照にはディレクトリパス名を基に外部のファイルシステム上のオリジナル文書を直接参照するようになされている。
したがって、当該装置のシステム内部にオリジナルの文書データを持つ必要がなく、内部の二次記憶を無駄に利用しないだけではなく、該システムを介する煩わしさがなく、ユーザや他のアプリケーションによる登録文書の参照が可能となる。
【0087】
次に、請求項21に記載の発明について説明する。
文書の登録時にファイルシステム上の登録文書のオリジナルデータのディレクトリを指定し、そのディレクトリ内或いはその下位ディレクトリの文書をすべて登録しておき、当該文書管理装置において、該ディレクトリパス名を管理し、文書内容を参照する場合には、登録したディレクトリパス名を基に直接外部のファイルシステム上のオリジナルデータを参照するようになされている。
したがって、オリジナル文書をユーザが普段利用するファイルシステム上に置く場合には、一つのディレクトリ階層に存在する文書をそのまま当該文書管理装置で管理するシステムとすることが可能となる。また、ディレクトリを指定することによって、そのディレクトリ中に含まれる文書および下位のディレクトリ中に含まれる全文書を自動的に登録することができるようにすることで、ディレクトリ上の全文書を一つ一つユーザが指定する必要があったところの従来のユーザの負担を軽減することになる。
【0088】
次に、請求項22に記載の発明について説明する。
上述したと同様に、ディレクトリパス名を基に直接外部のファイルシステム上のオリジナルデータを参照するようにした文書管理装置において、事前に当該装置に登録したい文書を置くディレクトリをユーザが指定しておくと、当該装置は、そのディレクトリを常に監視し、文書の登録,更新,削除が行われた場合には、同じ操作を自動的に文字成分表に反映させ、登録,更新,削除を行う。このようにすることで、ユーザの文書操作の負担を軽減することができる。
ディレクトリを監視する方法としては、一定時間ごとに指定されたディレクトリの変化を調べる方法やOSなどの基本システムのファイル操作のシステムコールの処理を変更し、ファイル操作があった場合に文書管理システムに通知する方法などを採用し得る。
【0089】
【発明の効果】
以上の説明から明らかなように、本発明によると、以下のような効果がある。
(1)請求項1,2に対応する効果:登録文書を保存するとともに、該登録文書に含まれる各文字あるいは連続する2文字から算出される値を文字成分表に登録し記録する文書登録手段と、前記文字成分表を用いて検索条件に該当する文書を高速に探し出す文書検索手段とを有し、前記文字成分表エントリ指定により文字成分表の構成を変更可能とし、前記登録文書を複数のフォルダに分割して管理可能で、かつフォルダごとに文字成分表エントリ指定できるようにし、文字成分表の構成を目的に合わせて変更できるようにしたため、効率的な文書管理システムを構築できる。
(2)請求項3,4,5に対応する効果:前記文書検索手段で単一の文字列から抽出される文字成分に同一のものが2個以上ある場合、前記文字成分表の文字成分に対するアクセスを一回しか行わないようにし、また、文字成分の算出において、連続する3文字以上の文字列から算出される値をも用いるようにし、さらに、文書登録時の文字成分の算出において、連続する3文字以上の文字列から算出される値を用いる場合には、該文字列から1文字あるいは連続する2文字から算出される値を文字成分表に登録しないようにしたので、検索文字列が長い場合でも、高速に文書検索できる。
(3)請求項6,7,8に対応する効果:前記文書検索手段において、単一の文字列あるいは複数の文字列をANDあるいはOR論理演算子で組み合わせた検索条件を処理可能とし、また、前記文書検索手段でAND論理演算子で結合される2つの文字列から抽出される文字成分に同一のものが2個以上ある場合、文字成分表の文字成分に対するアクセスを一回しか行わないようにし、さらに、前記文書検索手段でOR論理演算子で結合される2つの文字列から抽出される文字成分に同一のものが2個以上ある場合、文字成分表の文字成分に対するアクセスを一回しか行わないようにした。検索条件を複数の文字列を論理演算子(AND,OR)で組み合わせで表現できるので、複雑な検索要求を表現することが可能となる。また、論理演算子に合わせた最適化を行うので、高速に文書検索できる。
(4)請求項9,10,11に対応する効果:前記文字成分表を、該文字成分表を保存する大小2種類のブロックから構成されるデータファイルと、文字成分ごとのブロック位置を記録するインデックスファイルによって記憶し、複数の小さいブロックを大きいブロックにまとめるブロック融合手段を有し、また、前記ブロック融合手段において、データファイルの前方に大きいブロックをまとめ、後方に小さいブロックをまとめるようにし、さらに、前記ブロック融合手段において、データファイルの小さいブロックが存在する領域のみをブロック融合の対象とするようにし、文字成分表のビットマップデータを格納するブロックの大きさに大小2種類用意したため、登録/検索速度をともに高速化できる。
(5)請求項12に対応する効果:前記ブロック融合手段において、検索時に高速に文字成分表エントリを二次記憶から読み出すために、複数の固定長ブロックに分割された各文字成分表エントリを大きな固定長ブロックにまとめあげる時に大きな固定長ブロックをアロケートの単位とし、まとめ上げられた大きな固定長ブロック及びまとめあげられなかった残りの小さな固定長ブロックを詰め込んだ大きな固定長ブロックを順時書き出すことによって、文字成分表のデータを一回のスキャンで処理し、高速にかつ処理時に必要な二次記憶領域を最小限に抑えるようにし、文字エントリの小さなブロックを大きなブロックにまとめ上げることにより、検索速度が向上する。
(6)請求項13〜16に対応する効果:前記文字成分表の構成を文書の各文字および連続する2文字から算出される値を記録するものとした場合、前記文字検索手段が検索文字列から連続する2文字から算出される値のみを抽出し、また、前記文書検索手段が検索文字列から連続する2文字から算出される値と、該検索文字列の末尾の1文字から算出される値を抽出し、また、検索文字列から連続する2文字から算出される値と、該検索文字列の先頭の1文字から算出される値を抽出し、さらに、前記文字成分表の構成を連続する3文字以上の文字列から算出される値をも用いる場合、前記文書検索手段が検索文字列から前記文字エントリが抽出される時には、該文字列エントリに対応する文字列に含まれる1文字あるいは前記文字列にその前後の文字を含めた文字列に含まれる2文字から算出される値を抽出しないようにしたので、検索処理において検索文字列から抽出するエントリ数を削減し、検索処理を高速化できる。
(7)請求項17,18に対応する効果:前記文書検索手段が単一の文字列あるいは複数の文字列を「論理積」,「論理和」あるいは「論理差」論理演算子で組み合わせた検索条件を処理可能とし、また、前記文書検索手段で「論理差」で結合される2つの文字列の処理において、後側の文字列を処理しないことにしたので、検索条件を複数の文字列を論理演算子(AND,OR,NOT)で組み合わせで表現できるので、複雑な検索要求を表現することが可能となる。また、論理演算子に合わせた最適化を行うので、高速に文書検索できる。
(8)請求項19に対応する効果:従来の方法では、文字成分表データが二次記憶上にある場合には、一文書を登録するごとに二次記憶にアクセスすることになり、速度が遅くなってしまうが、本発明によると、一括登録する文書については、一旦メモリ上に文字成分表を一時的に生成登録し、その後、処理の最後にメモリ上の文字成分表データを二次記憶上の文書成分表データにアペンドする。こうすることによって、二次記憶へのアクセスが減り、高速に複数文書の一括登録が可能となる。
(9)請求項20に対応する効果:外部にあるオリジナル文書のファイルシステム上でのディレクトリパス名を当該文書管理装置で管理し、参照には、ディレクトリパス名を基に外部の該ファイルを直接参照することになるので、当該装置のシステムが内部にオリジナルデータを持つ必要がなく、二次記憶を無駄に利用しないだけでなく、システムを介することなくユーザや他のアプリケーションによる登録文書の参照が可能となる。
(10)請求項21に対応する効果:上述と同様に、ディレクトリパス名を管理する場合に、ディレクトリ内およびその下位ディレクトリの文書をすべて登録するようになっているので、オリジナル文書をユーザが普段利用するファイルシステム上に置く場合には、一つのディレクトリ階層に存在する文書をそのまま文書管理装置で管理するシステムとすることが可能となる。また、ディレクトリを指定することによって、そのディレクトリ中に含まれる文書または下位のディレクトリ中に含まれる全文書を自動的に登録することができるようにすることで、ディレクトリ上の全文書を一つ一つユーザが指定する必要があった従来のユーザの負担を軽減することができる。
(11)請求項22に対応する効果:登録したい文書を置くディレクトリをユーザがあらかじめ指定しておくと、当該文書管理装置は、そのディレクトリ上での文書の登録,更新,削除を常に監視し、文書の登録,更新,削除が行われた場合には、同じ操作を自動的に文字成分表に反映させ、登録,更新,削除を行う。このようにすることで、ユーザの文書操作の負担を軽減することができる。
【図面の簡単な説明】
【図1】本発明による文書管理装置の一実施例を説明するための構成図である。
【図2】本発明における文字成分表の一例を示す図である。
【図3】本発明における文字成分表の他の例を示す図である。
【図4】本発明による文書管理装置の他の実施例を説明するための構成図である。
【図5】本発明における長い文字列をエントリとして持つ文字成分表の例を示す図である。
【図6】本発明における文字成分表のためのファイル構成の一例を示す図である。
【図7】本発明における文字成分表ファイルのブロック融合処理の概要(その1)を示す図である。
【図8】本発明における文字成分表ファイルのブロック融合処理の概要(その2)を示す図である。
【図9】本発明による文書管理装置の更に他の実施例を説明するための構成図である。
【図10】本発明における単一文字成分表を示す図である。
【図11】本発明における隣接文字成分表を示す図である。
【図12】従来の検索方式を説明するための図である。
【図13】本発明における検索方式(その1)を説明するための図である。
【図14】本発明における検索方式(その2)を説明するための図である。
【図15】本発明におけるデータ構成を示す図である。
【図16】本発明におけるまとめ上げ処理(その1)を説明するための図である。
【図17】本発明におけるまとめ上げ処理(その2)を説明するための図である。
【図18】本発明における一括登録処理の例を説明するための図である。
【符号の説明】
1…登録文書、2…文書登録手段、3…検索条件、4…文書検索手段、5…該当文書、6…文字成分表エントリ指定、7…文字成分表、8…文書本文データ、9…文書データベース、9−1〜9−n…文書データベース、11…入力部、12…処理部、13…文字列入力処理部、14…文書検索処理部、15…文書出力処理部、16…文書登録処理部、17…データ部、18…文字成分表、19…出力部、20…文書データ。
Claims (22)
- 登録文書を保存するとともに、該登録文書に含まれる各文字あるいは連続する2文字から算出される値を文字成分表に登録し記録する文書登録手段と、前記文字成分表を用いて検索条件に該当する文書を高速に探し出す文書検索手段とを有し、前記文書登録手段は、前記文字成分表の構成を指定した文字成分表エントリ指定を参照して前記登録文書から文字成分を抽出し、該文字成分から文字成分表エントリを計算して前記文字成分表を作成するようにし、前記文書検索手段は、前記文字成分表エントリ指定を参照して検索文字列から文字成分を抽出して、該抽出した文字成分から文字成分表エントリを計算して検索するようにしたことを特徴とする文書管理装置。
- 前記文書登録手段は、前記登録文書を複数に分類してそれぞれ別々のフォルダに分割して管理可能で、かつ、該フォルダに登録された登録文書に対する文字成分表の構成を指定する文字成分表エントリ指定を持たせるようにしたことを特徴とする請求項1記載の文書管理装置。
- 前記文書検索手段で単一の文字列から抽出される文字成分に同一のものが2個以上ある場合、前記文字成分表の文字成分に対するアクセスを一回しか行わないことを特徴とする請求項1記載の文書管理装置。
- 文字成分の算出値として、連続する3文字以上の文字列から算出される値をも用いることを特徴とする請求項1記載の文書管理装置。
- 文書登録時の文字成分の算出において、連続する3文字以上の文字列から算出される値を用いる場合には、該文字列から1文字あるいは連続する2文字から算出される値を文字成分表に登録しないことを特徴とする請求項4記載の文書管理装置。
- 前記文書検索手段において、単一の文字列あるいは複数の文字列をAND論理演算子あるいはOR論理演算子で組み合わせた検索条件を処理可能とすることを特徴とする請求項1記載の文書管理装置。
- 前記文書検索手段でAND論理演算子で結合される2つの文字列から抽出される文字成分に同一のものが2個以上ある場合、文字成分表の文字成分に対するアクセスを一回しか行わないことを特徴とする請求項6記載の文書管理装置。
- 前記文書検索手段でOR論理演算子で結合される2つの文字列から抽出される文字成分に同一のものが2個以上ある場合、文字成分表の文字成分に対するアクセスを一回しか行わないことを特徴とする請求項6記載の文書管理装置。
- 前記文字成分表を、該文字成分表を保存する大小2種類のブロックから構成されるデータファイルと、文字成分ごとのブロック位置を記録するインデックスファイルによって記憶し、複数の小さいブロックを大きいブロックにまとめるブロック融合手段を有することを特徴とする請求項1記載の文書管理装置。
- 前記ブロック融合手段において、データファイルの前方に大きいブロックをまとめ、後方に小さいブロックをまとめることを特徴とする請求項9記載の文書管理装置。
- 前記ブロック融合手段において、データファイルの小さいブロックが存在する領域のみをブロック融合の対象とすることを特徴とする請求項10記載の文書管理装置。
- 前記ブロック融合手段において、検索時に高速に文字成分表エントリを二次記憶から読み出すために、複数の固定長ブロックに分割された各文字成分表エントリを大きな固定長ブロックにまとめあげる時に大きな固定長ブロックをアロケートの単位とし、まとめ上げられた大きな固定長ブロック及びまとめあげられなかった残りの小さな固定長ブロックを詰め込んだ大きな固定長ブロックを順時書き出すことによって、文字成分表のデータを一回のスキャンで処理し、高速にかつ処理時に必要な二次記憶領域を最小限に抑えることを特徴とする請求項9記載の文書管理装置。
- 前記文字成分表の構成を、文書の各文字および連続する2文字から算出される値を記録するものとした場合、前記文書検索手段が検索文字列から、連続する2文字から算出される値のみを抽出することを特徴とする請求項1記載の文書管理装置。
- 前記文書検索手段が、検索文字列からの連続する2文字から算出される値と、該検索文字列の末尾の1文字から算出される値を抽出することを特徴とする請求項13記載の文書管理装置。
- 前記文書検索手段が、検索文字列からの連続する2文字から算出される値と、該検索文字列の先頭の1文字から算出される値を抽出することを特徴とする請求項13記載の文書管理装置。
- 前記文字成分表の構成を連続する3文字以上の文字列から算出される値をも用いる場合、前記文書検索手段が、検索文字列から前記文字エントリが抽出される時には、該文字列エントリに対応する文字列に含まれる1文字あるいは前記文字列にその前後の文字を含めた文字列に含まれる2文字から算出される値を抽出しないことを特徴とする請求項15記載の文書管理装置。
- 前記文書検索手段が、単一の文字列あるいは複数の文字列を「論理積」,「論理和」あるいは「論理差」論理演算子で組み合わせた検索条件を処理可能なことを特徴とする請求項13記載の文書管理装置。
- 前記文書検索手段で「論理差」で結合される2つの文字列の処理において、後側の文字列を処理しないことを特徴とする請求項17記載の文書管理装置。
- 前記文書登録手段が、多数の文書を一括して登録する場合に、一文書を登録するごとに生成された文字成分表データを直接二次記憶上の文字成分表に書き込むのではなく一旦メモリ上に登録し、その後、一括してメモリ上の文字成分表データを二次記憶の文字成分表に書き出すことによって、高速に文書の一括登録を行うことを特徴とする請求項1記載の文書管理装置。
- 前記文書登録手段により登録されたファイルシステム上の登録文書のディレクトリパス名を二次記憶上で管理し、文書内容を参照する場合には、登録したディレクトリパス名を基に直接ファイルシステム上のオリジナルデータを参照することによって、文書管理システムが内部にオリジナルデータを持つ必要がないだけでなく、ユーザや他のアプリケーションによる登録文書の参照を容易にすることを特徴とする請求項1記載の文書管理装置。
- 前記文書登録手段により登録されたファイルシステム上の登録文書のオリジナルデータのディレクトリパス名を管理し、文書内容を参照する場合には、登録したディレクトリパス名を基に直接ファイルシステム上のオリジナルデータを参照するようにし、文書の登録時にディレクトリを指定し、そのディレクトリ内およびその下位ディレクトリの文書をすべて登録することにより、複数の文書の登録時の文書指定を容易にすることを特徴とする請求項1記載の文書管理装置。
- 前記文書登録手段により登録されたファイルシステム上の登録文書のオリジナルデータのディレクトリパス名を管理し、文書内容を参照する時には、登録したディレクトリパス名を基に直接ファイルシステム上のオリジナルデータを参照するようにし、あらかじめ登録対象とするディレクトリを指定しておき、そのディレクトリ上での文書の登録,更新,削除を常に監視し、文書の登録,更新,削除があった場合には、自動的に当該の文書について文字成分表に登録,更新,削除を行うことによって、ユーザの文書管理の手間を削減することを特徴とする請求項1記載の文書管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12137095A JP3563823B2 (ja) | 1994-06-02 | 1995-05-19 | 文書管理装置 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12138594 | 1994-06-02 | ||
JP24165894 | 1994-10-05 | ||
JP6-241658 | 1994-10-05 | ||
JP6-121385 | 1994-10-05 | ||
JP12137095A JP3563823B2 (ja) | 1994-06-02 | 1995-05-19 | 文書管理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004010938A Division JP3565840B2 (ja) | 1994-06-02 | 2004-01-19 | 文書管理方法および文書管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08161357A JPH08161357A (ja) | 1996-06-21 |
JP3563823B2 true JP3563823B2 (ja) | 2004-09-08 |
Family
ID=27314232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12137095A Expired - Fee Related JP3563823B2 (ja) | 1994-06-02 | 1995-05-19 | 文書管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3563823B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3644765B2 (ja) * | 1996-07-19 | 2005-05-11 | 株式会社リコー | 文書管理方式および文書管理方法 |
US5893094A (en) * | 1997-07-25 | 1999-04-06 | Claritech Corporation | Method and apparatus using run length encoding to evaluate a database |
JP2006179019A (ja) * | 2006-01-16 | 2006-07-06 | Ricoh Co Ltd | 文書検索装置 |
JP5605288B2 (ja) * | 2011-03-31 | 2014-10-15 | 富士通株式会社 | 出現マップ生成方法、ファイル抽出方法、出現マップ生成プログラム、ファイル抽出プログラム、出現マップ生成装置、およびファイル抽出装置 |
JP6212639B2 (ja) * | 2014-06-30 | 2017-10-11 | 株式会社日立製作所 | 検索方法 |
JP6805720B2 (ja) * | 2016-10-21 | 2020-12-23 | 富士通株式会社 | データ検索プログラム、データ検索装置およびデータ検索方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3263963B2 (ja) * | 1991-12-25 | 2002-03-11 | 株式会社日立製作所 | 文書検索方法及び装置 |
JPH06290217A (ja) * | 1993-03-31 | 1994-10-18 | Ricoh Co Ltd | 文書検索方式 |
JPH06309360A (ja) * | 1993-04-21 | 1994-11-04 | Hitachi Ltd | 否定論理条件の処理に適したフルテキストサーチ方法 |
-
1995
- 1995-05-19 JP JP12137095A patent/JP3563823B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08161357A (ja) | 1996-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5548751A (en) | Dynamic data storage system allowing variable size records and fields by using linked record segments | |
Harman et al. | Inverted Files. | |
US11899641B2 (en) | Trie-based indices for databases | |
US5717912A (en) | Method and apparatus for rapid full text index creation | |
Aoe et al. | An efficient implementation of trie structures | |
US7783855B2 (en) | Keymap order compression | |
US5201048A (en) | High speed computer system for search and retrieval of data within text and record oriented files | |
EP0136710B1 (en) | Data structure in a document processing system | |
US5913209A (en) | Full text index reference compression | |
US5488717A (en) | MTree data structure for storage, indexing and retrieval of information | |
JP4646624B2 (ja) | リレーショナルデータを圧縮格納フォーマットに格納および問合せすること | |
US20100082545A1 (en) | Compression of sorted value indexes using common prefixes | |
JP3263963B2 (ja) | 文書検索方法及び装置 | |
US20040205044A1 (en) | Method for storing inverted index, method for on-line updating the same and inverted index mechanism | |
US20120005172A1 (en) | Information searching apparatus, information managing apparatus, information searching method, information managing method, and computer product | |
KR20010022028A (ko) | 데이터-베이스 구조 | |
Lomet | A simple bounded disorder file organization with good performance | |
JP3024619B2 (ja) | ファイル管理方法 | |
JP2001142752A (ja) | データベース管理方法 | |
JP3563823B2 (ja) | 文書管理装置 | |
US5133066A (en) | Method for selecting multiple versions of data in a reduced record units text editing system | |
JP3518933B2 (ja) | 構造化文書検索方法 | |
JP3565840B2 (ja) | 文書管理方法および文書管理装置 | |
Orlandic et al. | Compact 0-Complete Trees. | |
JP2925042B2 (ja) | 情報リンク生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20040601 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040604 |
|
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: 20080611 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090611 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090611 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100611 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |