JPH08161357A - 文書管理装置 - Google Patents

文書管理装置

Info

Publication number
JPH08161357A
JPH08161357A JP7121370A JP12137095A JPH08161357A JP H08161357 A JPH08161357 A JP H08161357A JP 7121370 A JP7121370 A JP 7121370A JP 12137095 A JP12137095 A JP 12137095A JP H08161357 A JPH08161357 A JP H08161357A
Authority
JP
Japan
Prior art keywords
character
document
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.)
Granted
Application number
JP7121370A
Other languages
English (en)
Other versions
JP3563823B2 (ja
Inventor
Masajirou Iwasaki
雅二郎 岩崎
Yasutsugu Ogawa
泰嗣 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP12137095A priority Critical patent/JP3563823B2/ja
Publication of JPH08161357A publication Critical patent/JPH08161357A/ja
Application granted granted Critical
Publication of JP3563823B2 publication Critical patent/JP3563823B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 文字成分表の構成を目的に合わせて変更でき
るようにし、効率的な文書管理システムを構築するこ
と。 【構成】 文書登録手段2は、文書データベース9に登
録文書1の登録操作を行う。該文書データベース9に
は、文書本文データ8と文字成分表7と文字成分表エン
トリ指定6とが含まれる。文字成分表7は、登録文書1
に含まれる各文字あるいは文字列から抽出された情報の
存在の有無を文書ごとに記録した表である。文書登録手
段2は、登録文書1を保存するとともに、該登録文書1
に含まれる各文字あるいは連続する2文字から算出され
る値を前記文字成分表7に登録し記録する。文書検索手
段4は、前記文字成分表7を用いて検索条件3に該当す
る文書5を高速に探し出す。文字成分表エントリ指定6
により文字成分表7の構成を変更可能とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、文書管理装置に関し、
より詳細には、文字成分表を利用し、全文書に対して文
字列を検索する文書管理装置に関するもので、例えば、
文書管理システムや画像管理システム,データベース管
理システム等に適用し得るものである。
【0002】
【従来の技術】従来の文書管理装置について記載した公
知文献としては、例えば、特開平5−324722号公
報がある。この公報のものは、文字列検索において、利
用する文字成分表を小さく抑え、かつ、検索程度を上
げ、高速な文書登録を可能とするために、入力部に入力
された検索文字列は、処理部の文字列入力処理で処理
し、文書検索処理部において、データ部の文字成分表を
利用して文字列を含むと思われる文書を検索する。検索
した文書に対応する文書データを文書出力処理により出
力部に出力し、文書登録処理では、登録する文書を文書
データに登録し、文書データより文字成分を抽出して文
字成分表に登録する。検索文字列を文書から検索する場
合、文字成分表として、文字成分が文書中に存在するか
否かを示す1文字成分表及び隣接する文字から抽出した
あるビット列が文書中に存在するか否かを示す隣接文字
成分表を利用して文書を検索する。すなわち、文書ごと
に出現した文字を記録した文字成分表を用いて文書を高
速に検索するシステムである。
【0003】また、前述した特開平5−324722号
公報や、先に提案した特願平5−298433号に記載
のものは、文字成分が文書中に存在するか否かを示す単
一文字成分表、及び隣接する文字から抽出したある文字
成分が文書中に存在するか否かを示す隣接文字成分表を
利用して文書を検索するもので、さらに、文字成分表は
可変長の文字エントリを固定長ブロックに分割して二次
記憶に格納し、検索処理を高速にするために、小さいブ
ロックを大きなブロックにまとめ上げる処理を行うもの
である。
【0004】
【発明が解決しようとする課題】しかし、前記公報等に
記載の方式には、以下に示すような問題点がある。 .文字成分表の構成が固定的だった。 .検索文字列が長くなるのに応じて検索時間がかか
る。 .単一の文字列しか検索条件として指定できない。そ
のため、複数の文字列を論理演算子(AND,OR)で
組み合わせた条件を満たす文書を検索することができな
い。 .文字成分表のビットマップデータを格納するブロッ
クの大きさ(ブロックサイズ)が固定的であるため、ブ
ロックサイズを小さくすると検索速度が低下し、ブロッ
クサイズを大きくすると登録速度が低下してしまう。 .複数の文書を一括して登録する機能がなく、多量の
文書を登録するのに処理時間がかかる。 .文書のデータがシステム内にあるので、ユーザにと
って参照するのに手間がかかったり、文書の登録,削
除,更新などの処理が面倒である。
【0005】本発明は、このような実情に鑑みてなされ
たもので、文字成分表の構成を目的に合わせて変更で
きるようにすること、重複エントリを単一化して最適
化すること、また、文字成分表のエントリに3文字以上
のものを含めること、論理演算子に対応すること、ま
た、論理演算子に合わせた最適化すること、ブロック
サイズに大小2種類用意すること、従来の文字成分表
ではデータブロックが小さく二次記憶上で分散し、広範
囲の二次記憶をアクセスすることになり、検索速度が遅
いので、それを改善すること、従来では文字エントリ
へのアクセス、つまり二次記憶へのアクセスが多く、検
索速度の低下を招いていたので、それを改善すること、
多数の文書の登録処理の速度を改善すること、ユー
ザや他のアプリケーションによる登録文書の参照を容易
にすること、複数の文書の登録時の文書指定を容易に
すること、また、文書の登録,更新,削除があった場合
に当該装置の文書管理の自動化を行うようにした文書管
理装置を提供することを目的としている。
【0006】
【課題を解決するための手段】本発明は、上記目的を達
成するために、(1)登録文書を保存するとともに、該
登録文書に含まれる各文字あるいは連続する2文字から
算出される値(文字成分)を文字成分表に登録し記録す
る文書登録手段と、前記文字成分表を用いて検索条件に
該当する文書を高速に探し出す文書検索手段とを有する
文書管理装置において、文字成分表エントリ指定により
前記文字成分表の構成を変更可能とすること、或いは、
(2)前記(1)において、前記登録文書を複数のフォ
ルダに分割して管理可能で、かつフォルダごとに文字成
分表エントリ指定のできること、或いは、(3)前記
(1)において、文書検索手段で単一の文字列から抽出
される文字成分に同一のものが二個以上ある場合、前記
文字成分表の文字成分に対するアクセスを一回しか行わ
ないこと、或いは、(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)大量の文書データ
を保持し、入力装置から入力された検索文字列を含む文
書を検索し、出力装置により検索した文書を出力する文
書管理装置であって、文書登録時に文書より各文字コー
ド成分(単一文字成分)及び2文字以上の隣接文字から
抽出したビット列成分(隣接文字成分)を抽出し、各文
書がそれぞれの成分を含むか否かを示す単一文字成分表
及び一つ以上の隣接文字成分表を生成し、該文字成分表
の可変長の各文字成分のエントルを複数の固定長ブロッ
クに分割して二次記憶に登録し、検索時には検索文字列
から登録時と同様に単一文字成分及び2文字以上の隣接
文字成分を抽出し、該隣接文字成分に対応する二次記憶
上の固定長ブロックを統合し、各文字エントリを生成し
て文書を検索する文書管理装置において、仮に文字エン
トリで文字成分が出現するビットを1とし、出現しない
ビットを0とした場合に、検索時に複数の文字エントリ
のビットマップのAND処理を行う時に対象となる文字
エントリを一つ適当に選択し、ビット列をスキャンして
値が1である時だけ他のエントリの対応するビットを調
べ、全てのエントリの対応するビットの値が1である文
書を検索結果とすることにより、文字エントリのビット
マップへのアクセスを最小限に全文検索を行うこと、或
いは、(14)前記(13)において、文字エントリご
とに該文字エントリに出現する1のビットの個数(ビッ
ト出現数)をあらかじめ二次記憶に記録しておき、検索
時に複数の文字エントリのビットマップのAND処理を
行う時に対象となる文字エントリのうち、該ビット出現
数の最も少ない文字エントリを選択し、ビット列をスキ
ャンして値が1である時だけビット出現数の少ない順に
他の文字エントリの対応するビットを調べ、全ての文字
エントリの対応するビットの値が1である文書を検索結
果とすることにより、文字エントリのビットマップへの
アクセスを最小限に抑え全文検索を行うこと、或いは、
(15)前記(13)において、文字エントリの一部へ
のアクセスの場合に、文字エントリの全ブロックを読み
出す必要がないように、可変長の文字エントリのビット
マップデータを複数の固定長のブロックに分割して二次
記憶に格納し、各固定長のブロックを管理するブロック
テーブルを二次記憶上に有し、該ブロックテーブルから
任意の固定長ブロックをアクセスできるようにすること
によって、必要のない二次記憶上のブロックへのアクセ
スを減らして全文検索を行うこと、或いは、(16)登
録文書を保存するとともに、該登録文書に含まれる各文
字あるいは連続する2文字から算出される値(文字成
分)を文字成分表に登録し記録する文書登録手段と、前
記文字成分表を用いて検索条件に該当する文書を高速に
探し出す文書検索手段とを有し、前記文字成分表エント
リ指定により文字成分表の構成を変更可能とし、前記文
字成分表の構成を文書の各文字および連続する2文字か
ら算出される値を記録するものとした場合、前記文字検
索手段が検索文字列から連続する2文字から算出される
値のみを抽出すること、或いは、(17)前記(16)
において、前記文書検索手段が、検索文字列からの連続
する2文字から算出される値と、該検索文字列の末尾の
1文字から算出される値を抽出すること、或いは、(1
8)前記(16)において、前記文書検索手段が、検索
文字列からの連続する2文字から算出される値と、該検
索文字列の先頭の1文字から算出される値を抽出するこ
と、或いは、(19)前記(18)において、前記文字
成分表の構成を連続する3文字以上の文字列から算出さ
れる値(文字列エントリ)をも用いる場合、前記文書検
索手段が、検索文字列から前記文字エントリが抽出され
る時には、該文字列エントリに対応する文字列に含まれ
る1文字あるいは前記文字列にその前後の文字を含めた
文字列に含まれる2文字から算出される値を抽出しない
こと、或いは、(20)前記(16)において、前記文
書検索手段が単一の文字列あるいは複数の文字列を「論
理積」,「論理和」あるいは「論理差」論理演算子で組
み合わせた検索条件を処理可能なこと、或いは、(2
1)前記(20)において、前記文書検索手段で「論理
差」で結合される2つの文字列の処理において、後側の
文字列を処理しないこと、或いは、(22)前記(1)
において、前記文書登録手段が、多数の文書を一括して
登録する場合に、一文書を登録するごとに生成された文
字成分表データを直接二次記憶上の文字成分表に書き込
むのではなく一旦メモリ上に登録し、その後、一括して
メモリ上の文字成分表データを二次記憶の文字成分表に
書き出すことによって、高速に文書の一括登録を行うこ
と、或いは、(23)前記(1)において、前記文書登
録手段により登録されたファイルシステム上の登録文書
のディレクトリパス名を二次記憶上で管理し、文書内容
を参照する場合には、登録したディレクトリパス名を基
に直接ファイルシステム上のオリジナルデータを参照す
ることによって、文書管理システムが内部にオリジナル
データを持つ必要がないだけでなく、ユーザや他のアプ
リケーションによる登録文書の参照を容易にすること、
或いは、(24)前記(1)において、前記文書登録手
段により登録されたファイルシステム上の登録文書のオ
リジナルデータのディレクトリパス名を管理し、文書内
容を参照する場合には、登録したディレクトリパス名を
基に直接ファイルシステム上のオリジナルデータを参照
するようにし、文書の登録時にディレクトリを指定し、
そのディレクトリ内およびその下位ディレクトリの文書
をすべて登録することにより、複数の文書の登録時の文
書指定を容易にすること、或いは、(25)前記(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,0x
2440,0x2450 であり、下位4ビットを連結して得られ
る8ビットを文字成分表のエントリとした場合、「ぐ
ぐ」,「ぐだ」,「ぐば」…は全て同じ 0x00 のエントリ
にまとめられる。すなわち、連続する2文字のコードに
関数を作用させ、算出される値をエントリとすることが
できる(前側の文字x,後側の文字yに対して、関数g
(x,y)の値をエントリとする)。このような連続する
2文字から算出されるエントリ(文字成分)を隣接文字
エントリと呼ぶ。図3の文字成分表は、単一文字エント
リと隣接文字エントリを組み合わせたものである。
【0023】このように、文字成分表には様々な構成が
可能であり、本発明では、図1の文字成分表エントリ指
定6によって文字成分表7の構成を指定できるものとす
る。以下の説明では、簡単のため、図2のような各文字
の出現のみを記録した文字成分表を使用するものとす
る。
【0024】文書登録手順は、次の通りである。 .登録文書1を文書本文データ8に登録する。 .登録文書1の内容を文字成分表7に登録する。 文書本文から文字成分表エントリ指定6で規定されるエ
ントリを抽出する。登録文書番号をi,抽出されたエン
トリ番号をjとした場合、すべてのjについて文字成分
表の点(i,j)の値を“1”にする。
【0025】また、文書検索手順は、次の通りである。 .文字成分表7を用いて検索文字列を含む可能性のあ
る文書番号を求める。 (a)検索文字列から文字成分表エントリ指定6で規定さ
れるエントリを抽出する。 (b)抽出されたエントリのビットマップ(図2の横一
列)を文字成分表から抜きだし、ビットANDをとる。 .前記で求まった文書番号の文書本文を文書本文デ
ータ8から読みだし、検索文字列が含まれているか調
べ、含まれている文書集合を検索結果とする。
【0026】文字成分表の検索精度(文字成分表を用い
て得られる文書に検索文字列が含まれている割合)は文
字成分表の構成に依存する。本発明では、文字成分表エ
ントリ指定により、文字成分表の構成を任意に変更でき
る。そのため、登録される文書に合わせて効率的な文書
管理システムを構築できる。
【0027】次に、請求項2に記載の発明について説明
する。図4は、本発明による文書管理装置の他の実施例
(請求項2)を説明するための構成図で、図中、9-1〜
9-nは文書データベースで、その他、図1と同じ作用を
する部分は同一の符号を付してある。なお、図1の構成
と異なる点は、文書データベース9-1〜9-nが多数存在
している点である。文書には様々な用途のものがあるた
め、異なる文書集合は異なる文書データベースに保存す
ることが望まれる。その際、異なる文書集合は、文書の
長さや文字の出現頻度なども違う。そこで、本発明の文
書管理装置では、文書データベース9ごとに文字成分表
エントリ指定6を異なったものを用いることができるた
め、効率的な文書管理を行える。
【0028】次に、請求項3に記載の発明について説明
する。これまでの方式だと、検索文字列が長くなるに従
い、文字成分表でアクセスすべきエントリが増加するた
め、検索速度が低下する。実際には、検索語から算出さ
れる文字成分表エントリにも同一のものが含まれること
がある。その場合、そのエントリに複数回アクセスする
必要はないため、検索語に複数個出現したエントリへの
アクセスを一回に押えることで、検索に必要な文字成分
表へのアクセス回数を減らし、検索を高速化できる。
【0029】例えば、検索語「マンマシンシステム」は
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】ブロック融合処理手順 .書き出し用の一時ファイルを作成する。 .文字成分表を構成する全てのエントリのビットマッ
プデータに対して、次の処理を行う。 (a)コンテナはそのまま一時ファイルに書き出す。 (b)コンテナにまとめ上げられる(M個の)バケット
は、1個のコンテナとし、一時ファイルに書き出す。 (c)残りのコンテナにまとめ上げられない(M個未満
の)バケットは、一時ファイルに書き出す。 .これまでのビットマップデータファイルを削除す
る。 .一時ファイルを新たなビットマップデータファイル
とする。
【0044】図7(a),(b)は、ブロック融合処理
の概要を示す図である。網掛けによって各バケット/コ
ンテナがどのエントリ(ここでは文字ごとにエントリを
立てている)に対応しているかを示す。ここでは、コン
テナはバケットの8倍の大きさとしている。例えば、
「あ」は、融合処理前にバケット17個なので、融合処
理後はコンテナ2個とバケット1個になる。「い」は、
同様にしてバケット11個がコンテナ1個とバケット3
個になる。「う」は、バケットが7個しかないので、コ
ンテナには1個も生成されず、バケット7個のままであ
る(ただし、この場合でもバケットがお互いに隣接する
位置に配置されるため、アクセスが高速化され、検索速
度が向上する)。
【0045】次に、請求項10に記載の発明について説
明する。前述の方式では、データファイル中にバケット
とコンテナが混在する。2次記憶装置上のデータへのア
クセスは、オペレーティングシステムの最適化などによ
りページ単位に行われるため、バケットとコンテナが混
在していると、コンテナのような大きいブロックを導入
しても、コンテナの配置が2次記憶装置のページ境界と
一致せず、期待通りの性能向上が行われないことがあ
る。そこで、本発明の方法では、データファイルの前方
にコンテナをまとめ、後方にブロックをまとめること
で、コンテナを必ずページ境界に配置し、性能向上を図
る。
【0046】ブロック融合処理手順 .書き出し用の一時ファイルを2つ作成する。1つを
「コンテナ用一時ファイル」、もう1つを「バケット用
一時ファイル」と呼ぶ。 .文字成分表を構成する全てのエントリのビットマッ
プデータに対して、次の処理を行う。 (a)コンテナはそのままコンテナ用一時ファイルに書き
出す。 (b)コンテナにまとめ上げられる(M個の)バケットは
1個のコンテナとし、コンテナ用一時ファイルに書き出
す。 (c)残りのコンテナにまとめ上げられない(M個未満
の)バケットは、バケット用一時ファイルに書き出す。 .これまでのビットマップデータファイルを削除す
る。 .コンテナ用一時ファイルにバケット用一時ファイル
を連結し、新たなビットマップデータファイルとする。
【0047】図7(a),(c)は、上記アルゴリズム
によるブロック融合処理の概要を示す図である。このア
ルゴリズムでは、ブロック融合処理後(図7(c)の状
態)は、データファイルの先頭部分にコンテナが集ま
り、A点以降はバケットが集合した状態となる。
【0048】次に、請求項11に記載の発明について説
明する。ブロック融合処理後にも文書は追加登録され
る。追加登録後のブロックタイプはバケットなので、追
加登録文書数が増大すると、再び検索速度が低下してし
まう。その場合、再びブロック融合処理手順によりブ
ロック融合処理を行えばよい。しかし、ブロック融合処
理手順では、2つの一時ファイルの大きさの合計は、
データファイルとほぼ等しくなってしまう。多量の文書
が登録された場合、データファイルの大きさが膨大とな
るため、これは極めて望ましくない。次に示すブロック
融合処理手順はこの点を改良し、一時ファイルの大き
さの合計をデータファイルのバケット部分の大きさ程度
で済むようにした。
【0049】ブロック融合処理手順 .書き出し用の一時ファイルを2つ作成する。1つを
「コンテナ用一時ファイル」、もう1つを「バケット用
一時ファイル」と呼ぶ。 .文字成分表を構成する全てのエントリのビットマッ
プデータに対して、次の処理を行う。 (a)コンテナは無視する。 (b)コンテナにまとめ上げられる(M個の)バケット
は、1個のコンテナとし、コンテナ用一時ファイルに書
き出す。 (c)残りのコンテナにまとめ上げられない(M個未満
の)バケットは、バケット用一時ファイルに書き出す。 .ビットマップデータファイルのバケット部分を削除
する。 .ビットマップデータファイルにコンテナ用一時ファ
イル、さらにバケット用一時ファイルを連結する。
【0050】前記請求項10及び請求項11に記載の方
式の相違を図8(a)〜(c)に示す。図8(a)に示
すように、バケット融合処理後に再び文書が登録された
場合、データファイルの末尾(図8(a)のB点)から
バケットが順次挿入された状態になる。ブロック融合処
理手順では、図8(b)のように、データファイルの
ブロックが整理され、検索速度が向上する。しかし、2
つの一時ファイルの合計の大きさは、データファイルの
大きさと等しい。これに対し、本項で提案するブロック
融合処理手順では、データファイルの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バイト文字コード(E
UC:Extended UNIX CODE)からなるテキス
トデータとする。しかし、対象とする文字コードはEU
C以外にも容易に適用可能である。
【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に記載の発明について説
明する。本実施例では、図13に示すように、特定のビ
ットマップのビットを横方向に順時調べ、ビットが1の
場合には、他のビットマップエントリの対応するビット
を調べる。つまり、図13で縦方向にビットを調べ、す
べてのビットが1の場合は、ビットに対応する文書が検
索結果の文書となる。ビットが0の時には、図13の一
番上の文字エントリに戻り、順時同様に繰り返す。こう
することによって、矢印で示されるビットのみを参照す
ることになり、従来の検索方法に比較して参照するデー
タ量が格段に減少する。
【0058】次に、請求項14に記載の発明について説
明する。さらに、図14に示すように、各文字エントリ
中に出現するビット1の出現数を予めカウントしてお
き、前述のビットを調べる処理の時に、図14に示すよ
うに、ビット出現数が小さい順に並び代え、同様の処理
を行うことによって、さらに参照するデータ量を減らす
ことが可能となる。
【0059】従来の検索方法では、各文字エントリのビ
ットマップデータである可変長ビットマップデータは、
複数の固定長ブロックに分割され、二次記憶に格納され
ている。したがって、前述の検索処理時に再度複数の固
定長ブロックを可変長のビットマップに結合復元する。
また、各文字エントリの一部のデータしかアクセスしな
い場合でも、文字エントリの全固定長データブロックを
読み込み結合し、可変長ビットマップデータに復元する
処理が必要となる。
【0060】次に、請求項15に記載の発明について説
明する。本実施例では、前述の文字エントリは二次記憶
上で、図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】まとめ上げの処理手順を以下に示す。な
お、説明中のバッファはメモリ上の領域を意味する。 前処理 (a)文字成分表をオープンする。 (b)まとめ上げ用文字成分表を作成しオープンする。 (c)残ブロックページをアロケートする。
【0065】文字エントリ単位のまとめ上げ処理 (a)ページへのまとめ上げ処理 i.1ランレングスを読みページバッファに詰める。 ii.ページバッファにデータが満たされたらページバッ
ファを書き出し、ページバッファをクリアする。 iii.ランレングスをすべて読み終るまで前記i.に戻
る。 (b)ページにまとめ上げられなかったブロック(残ブ
ロック)の書き出し処理 i.まとめ上げられなかったランレングスから再度1ラ
ンレングスを読み、残ブロックバッファに詰める。 ii.残ブロックバッファにデータが満たされたら残ブロ
ックページに書き出す。 iii.残ブロックページの領域をすべて使い果たしたら
新たに残ブロックページをアロケートする。 iv.ランレングスをすべて読み終るまで前記i.に戻
る。
【0066】後処理 (a)書き出されていない残ブロックページを書き出
す。 (b)文字成分表及びまとめ上げ文字成分表をクローズ
する。 こうすることによって、文字成分表を1回スキャンする
だけまとめ上げ処理が可能となり、処理が高速であるだ
けでなく、処理時に必要な二次記憶の領域を最小限に抑
えられる。
【0067】次に、請求項16に記載の発明について説
明する。本実施例の検索処理では、検索文字列から抽出
されるエントリ数が少なければ、文字成分表へのアクセ
スが少なくなり、検索が高速になる。文字成分表エント
リ指定において、単一文字エントリと隣接文字エントリ
を定義した場合、検索文字列が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】次に、請求項17に記載の発明について説
明する。本実施例も、請求項16に記載の発明と同様の
効果を狙ったものであり、文字成分表エントリ定義が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】次に、請求項18に記載の発明について説
明する。本実施例も請求項17に記載の発明と同様の効
果を狙ったものであり、文字成分表エントリ定義が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】次に、請求項19に記載の発明について説
明する。前述した請求項4に記載の発明では、文字成分
表のエントリに3文字以上の長い文字列(から算出され
る値)をエントリに用いることで、文字成分表へのアク
セス回数を減らし、検索を大幅に高速化できることを示
した。図5に長い文字列をエントリとして持つ文字成分
表を示す。「システム」「パターン」などが文字列エン
トリである。
【0076】文字成分表エントリ指定において、単一文
字エントリと隣接文字エントリを定義し、さらに、文字
列エントリを導入した場合の検索処理を考える。請求項
4に記載の発明では、検索文字列中に含まれる文字列エ
ントリに対応する文字列から抽出される単一/隣接文字
エントリは、検索処理に用いないとしていた。
【0077】例えば、検索文字列が「パターンマッチ」
で「パターン」が文字列エントリとして定義されている
時、次のエントリが抽出される。 ・単一文字エントリ:以下の文字に関数f(x)を作用
させる。 マ,ッ,チ ・隣接文字エントリ:以下の2文字に関数g(x,y)
を作用させる。 ンマ,マッ,ッチ ・文字列エントリ: パターン
【0078】もちろん、請求項4記載の発明に本発明の
請求項16〜18に記載の発明を組み合わせることも可
能である。一方、本発明では、隣接文字エントリについ
ては該当する文字列エントリに前後の文字を加えた文字
列から抽出されるエントリを抽出しないことで、検索文
字列から抽出エントリ数を削減し、検索を高速化する
(単一文字エントリについては、これまで通り、該当す
る文字列エントリから抽出されるエントリを抽出しない
こととする)。
【0079】例えば、「パターンマッチ」から抽出され
るエントリは、以下のようになり、エントリ数を一つ減
らすことができる。 ・単一文字エントリ:以下の文字に関数f(x)を作用
させる。 マ,ッ,チ ・隣接文字エントリ:以下の2文字に関数g(x,y)
を作用させる。 マッ,ッチ ・文字列エントリ: パターン
【0080】次に、請求項20に記載の発明について説
明する。前述した請求項6に記載の発明では、検索条件
として複数の文字列を論理演算子(AND,OR)で組
み合わせたもの(単一の文字列もこの検索条件に含め
る)を受け付けるとしていた。ここで、“AND”は前
後の文字列をともに含む文書を検索すること、“OR”
は前後の文字列を少なくとも一つ含む文書を検索するこ
とを意味する。さらに、必要に応じて、演算子の作用順
序を明示するために、“(”,“)”を用いることができ
るものとする。論理演算子を検索条件に用いることがで
きるようにすることで、複雑な検索要求を表現すること
が可能となった。
【0081】しかし、AND,ORだけでは「「文書検
索」を含むが「画像検索」を含んでいないこと」のよう
な否定を含む検索要求を表現することはできない。そこ
で、本実施例では、検索条件として複数の文字列を論理
演算子(AND,OR,NOT)で組み合わせたものを
受け付ける。ここで、“NOT”は前の文字列を含む
が、後の文字列は含まない文書を検索することを意味す
る。
【0082】次に、請求項21に記載の発明について説
明する。AND,ORの処理では、演算子の前後の検索
文字列に対するビット列を計算し(検索手順のステップ
1)、それらのビットANDあるいはビットORを取れ
ば良かった。しかし、NOTでは、同様の処理(前後の
検索文字列に対するビット列を計算し、後側のビット列
のビット反転して前側のビット列とビットANDを取
る)では、検索洩れの可能性がある。これは、文字成分
表を用いて得られる各検索文字列に対するビット列は、
正確にその文字列を含む文書番号の表現ではなく、実際
には、その文字列を含んでいない誤検索も含んでいるた
めである。その結果、ビット反転したビット列には、そ
の文字列を含んでいない文書(番号)の一部は含まれな
いことになり、検索洩れが発生する。
【0083】そこで、本実施例では、NOTについては
前側の検索文字列に対するビット列をNOTの処理結果
のビット列とする。その結果、NOTの処理結果には、
後側の検索文字列を含む文書が含まれ、誤検索が発生す
る(誤検索は検索処理のステップ2で排除できるので、
実用上は問題ない)。しかし、後側の検索文字列を含ま
ない文書が含まれないことはなくなり、検索洩れを完全
に防ぐことができる(検索洩れは検索処理のステップ2
で救うことができないので、実用上の問題となる)。ま
た、この方式では、後側の検索文字列を処理する必要が
ないので、文字成分表検索の高速化にも効果がある。
【0084】次に、請求項22に記載の発明について説
明する。文書から文字成分を抽出し、文字成分表を生成
するまでの過程は、図9〜図11に従って記述された請
求項12の発明の実施例と同様に行われる。これにより
得られる文字成分表の構成は、図18に示されるように
インデックスとビットマップデータから成る。インデッ
クス部は、文字成分とビットマップデータへのポインタ
の対応表である。ビットマップデータは文字成分表の文
書中に文字成分が出現するか否かを示す0,1のデータ
である。大量の文書を登録する場合に、ビットマップデ
ータは巨大になることから、メモリ上には置かず二次記
憶に置く。
【0085】二次記憶への登録の手法を特徴とするこの
発明の実施例によると、一文書を登録するごとに文字成
分表が生成され、その都度、直接二次記憶上の文字成分
表に書き込むのではなく、一旦メモリ上に登録し、その
後一括してメモリ上のデータを二次記憶の文字成分表に
書き出す。図18に一括登録時のデータ構成を示す。こ
の例では、簡便のために二次記憶上のデータ構成とメモ
リ上の構成を同じにしている。一括文書登録時にはメモ
リ上のテーブルに一時的に登録したデータ(図中の網か
け)を処理の最後に二次記憶のビットマップテーブルに
コピーし、登録処理を完了する。
【0086】次に、請求項23に記載の発明について説
明する。当該文書管理装置のシステム内には、文書デー
タを持たず、その代わりに文書の情報の一つとしてオリ
ジナル文書のファイルシステム上での位置を示すディレ
クトリパス名を二次記憶上で管理し、参照にはディレク
トリパス名を基に外部のファイルシステム上のオリジナ
ル文書を直接参照するようになされている。したがっ
て、当該装置のシステム内部にオリジナルの文書データ
を持つ必要がなく、内部の二次記憶を無駄に利用しない
だけではなく、該システムを介する煩わしさがなく、ユ
ーザや他のアプリケーションによる登録文書の参照が可
能となる。
【0087】次に、請求項24に記載の発明について説
明する。文書の登録時にファイルシステム上の登録文書
のオリジナルデータのディレクトリを指定し、そのディ
レクトリ内或いはその下位ディレクトリの文書をすべて
登録しておき、当該文書管理装置において、該ディレク
トリパス名を管理し、文書内容を参照する場合には、登
録したディレクトリパス名を基に直接外部のファイルシ
ステム上のオリジナルデータを参照するようになされて
いる。したがって、オリジナル文書をユーザが普段利用
するファイルシステム上に置く場合には、一つのディレ
クトリ階層に存在する文書をそのまま当該文書管理装置
で管理するシステムとすることが可能となる。また、デ
ィレクトリを指定することによって、そのディレクトリ
中に含まれる文書および下位のディレクトリ中に含まれ
る全文書を自動的に登録することができるようにするこ
とで、ディレクトリ上の全文書を一つ一つユーザが指定
する必要があったところの従来のユーザの負担を軽減す
ることになる。
【0088】次に、請求項25に記載の発明について説
明する。上述したと同様に、ディレクトリパス名を基に
直接外部のファイルシステム上のオリジナルデータを参
照するようにした文書管理装置において、事前に当該装
置に登録したい文書を置くディレクトリをューザが指定
しておくと、当該装置は、そのディレクトリを常に監視
し、文書の登録,更新,削除が行われた場合には、同じ
操作を自動的に文字成分表に反映させ、登録,更新,削
除を行う。このようにすることで、ユーザの文書操作の
負担を軽減することができる。ディレクトリを監視する
方法としては、一定時間ごとに指定されたディレクトリ
の変化を調べる方法やOSなどの基本システムのファイ
ル操作のシステムコールの処理を変更し、ファイル操作
があった場合に文書管理システムに通知する方法などを
採用し得る。
【0089】
【発明の効果】以上の説明から明らかなように、本発明
によると、以下のような効果がある。 (1)請求項1,2に対応する効果:登録文書を保存す
るとともに、該登録文書に含まれる各文字あるいは連続
する2文字から算出される値を文字成分表に登録し記録
する文書登録手段と、前記文字成分表を用いて検索条件
に該当する文書を高速に探し出す文書検索手段とを有
し、前記文字成分表エントリ指定により文字成分表の構
成を変更可能とし、前記登録文書を複数のフォルダに分
割して管理可能で、かつフォルダごとに文字成分表エン
トリ指定できるようにし、文字成分表の構成を目的に合
わせて変更できるようにしたため、効率的な文書管理シ
ステムを構築できる。 (2)請求項3,4,5に対応する効果:前記文書検索手
段で単一の文字列から抽出される文字成分に同一のもの
が2個以上ある場合、前記文字成分表の文字成分に対す
るアクセスを一回しか行わないようにし、また、文字成
分の算出において、連続する3文字以上の文字列から算
出される値をも用いるようにし、さらに、文書登録時の
文字成分の算出において、連続する3文字以上の文字列
から算出される値を用いる場合には、該文字列から1文
字あるいは連続する2文字から算出される値を文字成分
表に登録しないようにしたので、検索文字列が長い場合
でも、高速に文書検索できる。 (3)請求項6,7,8に対応する効果:前記文書検索手
段において、単一の文字列あるいは複数の文字列をAN
DあるいはOR論理演算子で組み合わせた検索条件を処
理可能とし、また、前記文書検索手段でAND論理演算
子で結合される2つの文字列から抽出される文字成分に
同一のものが2個以上ある場合、文字成分表の文字成分
に対するアクセスを一回しか行わないようにし、さら
に、前記文書検索手段でOR論理演算子で結合される2
つの文字列から抽出される文字成分に同一のものが2個
以上ある場合、文字成分表の文字成分に対するアクセス
を一回しか行わないようにしたので、検索条件を複数の
文字列を論理演算子(AND,OR)で組み合わせで表
現できるので、複雑な検索要求を表現することが可能と
なる。また、論理演算子に合わせた最適化を行うので、
高速に文書検索できる。 (4)請求項9,10,11に対応する効果:前記文字成
分表を、該文字成分表を保存する大小2種類のブロック
から構成されるデータファイルと、文字成分ごとのブロ
ック位置を記録するインデックスファイルによって記憶
し、複数の小さいブロックを大きいブロックにまとめる
ブロック融合手段を有し、また、前記ブロック融合手段
において、データファイルの前方に大きいブロックをま
とめ、後方に小さいブロックをまとめるようにし、さら
に、前記ブロック融合手段において、データファイルの
小さいブロックが存在する領域のみをブロック融合の対
象とするようにし、文字成分表のビットマップデータを
格納するブロックの大きさに大小2種類用意したため、
登録/検索速度をともに高速化できる。 (5)請求項12に対応する効果:前記ブロック融合手
段において、検索時に高速に文字成分表エントリを二次
記憶から読み出すために、複数の固定長ブロックに分割
された各文字成分表エントリを大きな固定長ブロックに
まとめあげる時に大きな固定長ブロックをアロケートの
単位とし、まとめ上げられた大きな固定長ブロック及び
まとめあげられなかった残りの小さな固定長ブロックを
詰め込んだ大きな固定長ブロックを順時書き出すことに
よって、文字成分表のデータを一回のスキャンで処理
し、高速にかつ処理時に必要な二次記憶領域を最小限に
抑えるようにし、文字エントリの小さなブロックを大き
なブロックにまとめ上げることにより、検索速度が向上
する。 (6)請求項13〜15に対応する効果:特定のビット
マップのビットを横方向に順時調べ、ビットが1の場合
には、他のビットマップエントリの対応するビットを調
べる。つまり、縦方向にビットを調べ、すべてのビット
が1の場合は、ビットに対応する文書が検索結果の文書
となるようにする。また、各文字エントリ中に出現する
ビット1の出現数を予めカウントしておき、前述のビッ
トを調べる処理の時にビット出現数が小さい順に並び代
え、同様の処理を行うことによって、さらに参照するデ
ータ量を減らすことが可能となる。さらに、文字エント
リの一部しか必要でない場合には、全ブロックをアクセ
スすることなしにブロックテーブルから直接該当するブ
ロックを得られ、高速に検索することができる。このよ
うに従来技術では文字エントリのアクセスが多く、検索
速度の低下を招いていたが、検索時の処理のアルゴリズ
ム及びデータ構成を変えることによって検索速度が向上
する。 (7)請求項16〜19に対応する効果:前記文字成分
表の構成を文書の各文字および連続する2文字から算出
される値を記録するものとした場合、前記文字検索手段
が検索文字列から連続する2文字から算出される値のみ
を抽出し、また、前記文書検索手段が検索文字列から連
続する2文字から算出される値と、該検索文字列の末尾
の1文字から算出される値を抽出し、また、検索文字列
から連続する2文字から算出される値と、該検索文字列
の先頭の1文字から算出される値を抽出し、さらに、前
記文字成分表の構成を連続する3文字以上の文字列から
算出される値をも用いる場合、前記文書検索手段が検索
文字列から前記文字エントリが抽出される時には、該文
字列エントリに対応する文字列に含まれる1文字あるい
は前記文字列にその前後の文字を含めた文字列に含まれ
る2文字から算出される値を抽出しないようにしたの
で、検索処理において検索文字列から抽出するエントリ
数を削減し、検索処理を高速化できる。 (8)請求項20,21に対応する効果:前記文書検索
手段が単一の文字列あるいは複数の文字列を「論理
積」,「論理和」あるいは「論理差」論理演算子で組み
合わせた検索条件を処理可能とし、また、前記文書検索
手段で「論理差」で結合される2つの文字列の処理にお
いて、後側の文字列を処理しないことにしたので、検索
条件を複数の文字列を論理演算子(AND,OR,NO
T)で組み合わせで表現できるので、複雑な検索要求を
表現することが可能となる。また、論理演算子に合わせ
た最適化を行うので、高速に文書検索できる。 (9)請求項22に対応する効果:従来の方法では、文
字成分表データが二次記憶上にある場合には、一文書を
登録するごとに二次記憶にアクセスすることになり、速
度が遅くなってしまうが、本発明によると、一括登録す
る文書については、一旦メモリ上に文字成分表を一時的
に生成登録し、その後、処理の最後にメモリ上の文字成
分表データを二次記憶上の文書成分表データにアペンド
する。こうすることによって、二次記憶へのアクセスが
減り、高速に複数文書の一括登録が可能となる。 (10)請求項23に対応する効果:外部にあるオリジ
ナル文書のファイルシステム上でのディレクトリパス名
を当該文書管理装置で管理し、参照には、ディレクトリ
パス名を基に外部の該ファイルを直接参照することにな
るので、当該装置のシステムが内部にオリジナルデータ
を持つ必要がなく、二次記憶を無駄に利用しないだけで
なく、システムを介することなくユーザや他のアプリケ
ーションによる登録文書の参照が可能となる。 (11)請求項24に対応する効果:上述と同様に、デ
ィレクトリパス名を管理する場合に、ディレクトリ内お
よびその下位ディレクトリの文書をすべて登録するよう
になっているので、オリジナル文書をユーザが普段利用
するファイルシステム上に置く場合には、一つのディレ
クトリ階層に存在する文書をそのまま文書管理装置で管
理するシステムとすることが可能となる。また、ディレ
クトリを指定することによって、そのディレクトリ中に
含まれる文書または下位のディレクトリ中に含まれる全
文書を自動的に登録することができるようにすること
で、ディレクトリ上の全文書を一つ一つユーザが指定す
る必要があった従来のユーザの負担を軽減することがで
きる。 (12)請求項25に対応する効果:登録したい文書を
置くディレクトリをユーザがあらかじめ指定しておく
と、当該文書管理装置は、そのディレクトリ上での文書
の登録,更新,削除を常に監視し、文書の登録,更新,
削除が行われた場合には、同じ操作を自動的に文字成分
表に反映させ、登録,更新,削除を行う。このようにす
ることで、ユーザの文書操作の負担を軽減することがで
きる。
【図面の簡単な説明】
【図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…文書データ。
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成7年6月30日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項13
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】請求項16
【補正方法】変更
【補正内容】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0002
【補正方法】変更
【補正内容】
【0002】
【従来の技術】従来の文書管理装置について記載した公
知文献としては、例えば、特開平5−324722号公
報がある。この公報のものは、文字列検索において、利
用する文字成分表を小さく抑え、かつ、検索程度を上
げ、高速な文書登録を可能とするために、入力部に入力
された検索文字列は、処理部の文字列入力処理で処理
し、文書検索処理部において、データ部の文字成分表を
利用して文字列を含むと思われる文書を検索する。検索
した文書に対応する文書データを文書出力処理により出
力部に出力し、文書登録処理では、登録する文書を文書
データに登録し、文書データより文字成分を抽出して文
字成分表に登録する。検索文字列を文書から検索する場
合、文字成分表として、文字から算出される値が文書中
に存在するか否かを示す1文字成分表及び隣接する文字
から算出される値が文書中に存在するか否かを示す隣接
文字成分表を利用して文書を検索する。すなわち、文書
ごとに出現した文字を記録した文字成分表を用いて文書
を高速に検索するシステムである。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0003
【補正方法】変更
【補正内容】
【0003】また、前述した特開平5−324722号
公報や、先に提案した特願平5−298433号に記載
のものは、文字成分が文書中に存在するか否かを示す単
一文字成分表、及び隣接する文字から抽出したある文字
成分が文書中に存在するか否かを示す隣接文字成分表を
利用して文書を検索するものである
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0006
【補正方法】変更
【補正内容】
【0006】
【課題を解決するための手段】本発明は、上記目的を達
成するために、(1)登録文書を保存するとともに、該
登録文書に含まれる各文字あるいは連続する2文字から
算出される値(文字成分)を文字成分表に登録し記録す
る文書登録手段と、前記文字成分表を用いて検索条件に
該当する文書を高速に探し出す文書検索手段とを有する
文書管理装置において、文字成分表エントリ指定により
前記文字成分表の構成を変更可能とすること、或いは、
(2)前記(1)において、前記登録文書を複数のフォ
ルダに分割して管理可能で、かつフォルダごとに文字成
分表エントリ指定のできること、或いは、(3)前記
(1)において、文書検索手段で単一の文字列から抽出
される文字成分に同一のものが二個以上ある場合、前記
文字成分表の文字成分に対するアクセスを一回しか行わ
ないこと、或いは、(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)大量の文書データ
を保持し、入力装置から入力された検索文字列を含む文
書を検索し、出力装置により検索した文書を出力する文
書管理装置であって、文書登録時に文書より各文字コー
ド成分(単一文字成分)及び2文字以上の隣接文字か
ット列成分(隣接文字成分)を出し、各文書がそれ
ぞれの成分を含むか否かを示す単一文字成分表及び一つ
以上の隣接文字成分表を生成し、該文字成分表の可変長
の各文字成分のエントを複数の固定長ブロックに分割
して二次記憶に登録し、検索時には検索文字列から登録
時と同様に単一文字成分及び2文字以上の隣接文字成分
を抽出し、該隣接文字成分に対応する二次記憶上の固定
長ブロックを統合し、各文字エントリを生成して文書を
検索する文書管理装置において、仮に文字エントリで文
字成分が出現するビットを1とし、出現しないビットを
0とした場合に、検索時に複数の文字エントリのビット
マップのAND処理を行う時に対象となる文字エントリ
を一つ適当に選択し、ビット列をスキャンして値が1で
ある時だけ他のエントリの対応するビットを調べ、全て
のエントリの対応するビットの値が1である文書を検索
結果とすることにより、文字エントリのビットマップへ
のアクセスを最小限に抑え全文検索を行うこと、或い
は、(14)前記(13)において、文字エントリごと
に該文字エントリに出現する1のビットの個数(ビット
出現数)をあらかじめ二次記憶に記録しておき、検索時
に複数の文字エントリのビットマップのAND処理を行
う時に対象となる文字エントリのうち、該ビット出現数
の最も少ない文字エントリを選択し、ビット列をスキャ
ンして値が1である時だけビット出現数の少ない順に他
の文字エントリの対応するビットを調べ、全ての文字エ
ントリの対応するビットの値が1である文書を検索結果
とすることにより、文字エントリのビットマップへのア
クセスを最小限に抑え全文検索を行うこと、或いは、
(15)前記(13)において、文字エントリの一部へ
のアクセスの場合に、文字エントリの全ブロックを読み
出す必要がないように、可変長の文字エントリのビット
マップデータを複数の固定長のブロックに分割して二次
記憶に格納し、各固定長のブロックを管理するブロック
テーブルを二次記憶上に有し、該ブロックテーブルから
任意の固定長ブロックをアクセスできるようにすること
によって、必要のない二次記憶上のブロックへのアクセ
スを減らして全文検索を行うこと、或いは、(16)登
録文書を保存するとともに、該登録文書に含まれる各文
字あるいは連続する2文字から算出される値(文字成
分)を文字成分表に登録し記録する文書登録手段と、前
記文字成分表を用いて検索条件に該当する文書を高速に
探し出す文書検索手段とを有し、前記文字成分表エント
リ指定により文字成分表の構成を変更可能とし、前記文
字成分表の構成を文書の各文字および連続する2文字か
ら算出される値を記録するものとした場合、前記文
索手段が検索文字列から連続する2文字から算出される
値のみを抽出すること、或いは、(17)前記(16)
において、前記文書検索手段が、検索文字列からの連続
する2文字から算出される値と、該検索文字列の末尾の
1文字から算出される値を抽出すること、或いは、(1
8)前記(16)において、前記文書検索手段が、検索
文字列からの連続する2文字から算出される値と、該検
索文字列の先頭の1文字から算出される値を抽出するこ
と、或いは、(19)前記(18)において、前記文字
成分表の構成を連続する3文字以上の文字列から算出さ
れる値(文字列エントリ)をも用いる場合、前記文書検
索手段が、検索文字列から前記文字エントリが抽出され
る時には、該文字列エントリに対応する文字列に含まれ
る1文字あるいは前記文字列にその前後の文字を含めた
文字列に含まれる2文字から算出される値を抽出しない
こと、或いは、(20)前記(16)において、前記文
書検索手段が単一の文字列あるいは複数の文字列を「論
理積」,「論理和」あるいは「論理差」論理演算子で組
み合わせた検索条件を処理可能なこと、或いは、(2
1)前記(20)において、前記文書検索手段で「論理
差」で結合される2つの文字列の処理において、後側の
文字列を処理しないこと、或いは、(22)前記(1)
において、前記文書登録手段が、多数の文書を一括して
登録する場合に、一文書を登録するごとに生成された文
字成分表データを直接二次記憶上の文字成分表に書き込
むのではなく一旦メモリ上に登録し、その後、一括して
メモリ上の文字成分表データを二次記憶の文字成分表に
書き出すことによって、高速に文書の一括登録を行うこ
と、或いは、(23)前記(1)において、前記文書登
録手段により登録されたファイルシステム上の登録文書
のディレクトリパス名を二次記憶上で管理し、文書内容
を参照する場合には、登録したディレクトリパス名を基
に直接ファイルシステム上のオリジナルデータを参照す
ることによって、文書管理システムが内部にオリジナル
データを持つ必要がないだけでなく、ユーザや他のアプ
リケーションによる登録文書の参照を容易にすること、
或いは、(24)前記(1)において、前記文書登録手
段により登録されたファイルシステム上の登録文書のオ
リジナルデータのディレクトリパス名を管理し、文書内
容を参照する場合には、登録したディレクトリパス名を
基に直接ファイルシステム上のオリジナルデータを参照
するようにし、文書の登録時にディレクトリを指定し、
そのディレクトリ内およびその下位ディレクトリの文書
をすべて登録することにより、複数の文書の登録時の文
書指定を容易にすること、或いは、(25)前記(1)
において、前記文書登録手段により登録されたファイル
システム上の登録文書のオリジナルデータのディレクト
リパス名を管理し、文書内容を参照する時には、登録し
たディレクトリパス名を基に直接ファイルシステム上の
オリジナルデータを参照するようにし、あらかじめ登録
対象とするディレクトリを指定しておき、そのディレク
トリ上での文書の登録,更新,削除を常に監視し、文書
の登録,更新,削除があった場合には、自動的に当該の
文書について文字成分表に登録,更新,削除を行うこと
によって、ユーザの文書管理の手間を削減することを特
徴としたものである。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正内容】
【0009】(3)前記文書検索手段において、単一の
文字列あるいは複数の文字列をANDあるいはOR論理
演算子で組み合わせた検索条件を処理可能とし、また、
前記文書検索手段でAND論理演算子で結合される2つ
の文字列から抽出される文字成分に同一のものが2個以
上ある場合、文字成分表の文字成分に対するアクセスを
一回しか行わないようにし、さらに、前記文書検索手段
でOR論理演算子で結合される2つの文字列から抽出さ
れる文字成分に同一のものが2個以上ある場合、文字成
分表の文字成分に対するアクセスを一回しか行わないよ
うにした。検索条件を複数の文字列を論理演算子(AN
D,OR)で組み合わせで表現できるので、複雑な検索
要求を表現することが可能となる。また、論理演算子に
合わせた最適化を行うので、高速に文書検索できる。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0012
【補正方法】変更
【補正内容】
【0012】(6)特定のビットマップのビットを横方
向に順時調べ、ビットが1の場合には、他のビットマッ
プエントリの対応するビットを調べる。つまり、縦方向
にビットを調べ、すべてのビットが1の場合は、ビット
に対応する文書が検索結果の文書となるようにする。ま
た、各文字エントリ中に出現するビット1の出現数を予
めカウントしておき、前述のビットを調べる処理の時に
ビット出現数が小さい順に並び代え、同様の処理を行う
ことによって、さらに参照するデータ量を減らすことが
可能となる。さらに、文字エントリの一部しか参照し
い場合には、全ブロックをアクセスすることなしにブロ
ックテーブルから直接該当するブロックを得られ、高速
に検索することができる。このように従来技術では文字
エントリのアクセスが多く、検索速度の低下を招いてい
たが、検索時の処理のアルゴリズム及びデータ構成を変
えることによって検索速度が向上する。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0013
【補正方法】変更
【補正内容】
【0013】(7)前記文字成分表の構成を文書の各文
字および連続する2文字から算出される値を記録するも
のとした場合、前記文検索手段が検索文字列から連続
する2文字から算出される値のみを抽出し、また、前記
文書検索手段が検索文字列から連続する2文字から算出
される値と、該検索文字列の末尾の1文字から算出され
る値を抽出し、また、検索文字列から連続する2文字か
ら算出される値と、該検索文字列の先頭の1文字から算
出される値を抽出し、さらに、前記文字成分表の構成を
連続する3文字以上の文字列から算出される値をも用い
る場合、前記文書検索手段が検索文字列から前記文字エ
ントリが抽出される時には、該文字列エントリに対応す
る文字列に含まれる1文字あるいは前記文字列にその前
後の文字を含めた文字列に含まれる2文字から算出され
る値を抽出しないようにしたので、検索処理において検
索文字列から抽出するエントリ数が削減され、検索処理
を高速化できる。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正内容】
【0025】また、文書検索手順は、次の通りである。 .文字成分表7を用いて検索文字列を含む可能性のあ
る文書番号を求める。 (a)検索文字列から文字成分表エントリ指定6で規定
されるエントリを抽出する。 (b)抽出された全てのエントリのビットマップ(図2
の横一列)を文字成分表から抜きだし、ビットANDを
とる。 .前記で求まった文書番号の文書本文を文書本文デ
ータ8から読みだし、検索文字列が含まれているか調
べ、含まれている文書集合を検索結果とする。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0029
【補正方法】変更
【補正内容】
【0029】例えば、図2の文字成分表を用いた場合、
検索語「マンマシンシステム」は9文字から構成されて
いるため、文字成分表には「マ」「ン」「マ」「シ」
「ン」「シ」「ス」「テ」「ム」の9回のアクセスが必
要になる。しかし、実際には、「マ」「ン」「シ」は2
回ずつ出現しているため、これらエントリへのアクセス
は1回にまとめることができる。すなわち、文字成分表
への実際のアクセスは、「マ」「ン」「シ」「ス」
「テ」「ム」の6回ですむ。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0031
【補正方法】変更
【補正内容】
【0031】登録時には、「…あのマンマシンシステム
は…」からは、文字として「あ」「の」「マ」「ン」
「シ」「ス」「テ」「ム」「は」、文字列として「シス
テム」が抽出され、文字成分表に記録される。検索時に
は、検索語「マンマシンシステム」からは、文字として
「マ」「ン」「マ」「シ」「ン」、文字列として「シス
テム」が抽出されるが、「システム」に含まれる「シ」
および単一文字の重複を削除する。結局、「マ」「ン」
「システム」の3つのエントリにアクセスするだけでよ
く、検索時間は大幅に短縮できる。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0038
【補正方法】変更
【補正内容】
【0038】インデックスファイルに含まれるブロック
数は、文字成分表エントリ指定によって決まる。ビット
マップデータファイルは、次の2つのフィールドを含む
ブロックから構成される。 ・次ブロックオフセットフィールド ・データフィールド
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0039
【補正方法】変更
【補正内容】
【0039】ブロックサイズは、性能要求に合わせて数
バイトから数キロバイトの範囲に設定すれば良い。図
6(a)は、文字成分表のためのファイル構成の一例を
示す図である。なお、インデックスファイルを半導体メ
モリ上にロードしておくことは、高速化に有効である。
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】0042
【補正方法】変更
【補正内容】
【0042】文書検索システム利用開始時点では、ブロ
ックサイズを小さいものとして、登録速度を優先する
(登録文書数が少ない間は、検索速度が多少遅くても検
索時間が小さいので、ほとんど問題とならない)。多数
の文書が登録され、ビットマップデータファイルに含ま
れるブロック数が増大した段階で、複数のバケットをコ
ンテナにまとめあげるブロック融合処理を行う。通常の
オペレーティングシステムでは、データを小さいブロッ
クに分割しておくよりも大きいブロックにまとめておく
方がアクセスが高速だからである。その結果、ブロック
融合処理により検索速度が向上され、登録文書数が多い
場合でも検索時間を小さくできる。
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】0061
【補正方法】変更
【補正内容】
【0061】文書IDが4000の文書内に部文字コ
ードが「あ」の文字が出現する否かを調べる場合を例
に、以下に説明する。 ・インデックスの「あ」に対応するブロックテーブルポ
インタからブロックテーブルを得る。 ・ブロック最終登録文書IDから文書ID4000を含
むブロック(ブロックポインタ5120)を得る。 ・ブロック(5120)のデータが圧縮されている場合
には伸長し、文書ID4000該当するビットを得
る。 このように、文字エントリの一部しか参照しない場合に
は、全ブロックをアクセスすることなしにブロックテー
ブルから直接該当するブロックを得られ、高速に検索す
ることができる。
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】0089
【補正方法】変更
【補正内容】
【0089】
【発明の効果】以上の説明から明らかなように、本発明
によると、以下のような効果がある。 (1)請求項1,2に対応する効果:登録文書を保存す
るとともに、該登録文書に含まれる各文字あるいは連続
する2文字から算出される値を文字成分表に登録し記録
する文書登録手段と、前記文字成分表を用いて検索条件
に該当する文書を高速に探し出す文書検索手段とを有
し、前記文字成分表エントリ指定により文字成分表の構
成を変更可能とし、前記登録文書を複数のフォルダに分
割して管理可能で、かつフォルダごとに文字成分表エン
トリ指定できるようにし、文字成分表の構成を目的に合
わせて変更できるようにしたため、効率的な文書管理シ
ステムを構築できる。 (2)請求項3,4,5に対応する効果:前記文書検索
手段で単一の文字列から抽出される文字成分に同一のも
のが2個以上ある場合、前記文字成分表の文字成分に対
するアクセスを一回しか行わないようにし、また、文字
成分の算出において、連続する3文字以上の文字列から
算出される値をも用いるようにし、さらに、文書登録時
の文字成分の算出において、連続する3文字以上の文字
列から算出される値を用いる場合には、該文字列から1
文字あるいは連続する2文字から算出される値を文字成
分表に登録しないようにしたので、検索文字列が長い場
合でも、高速に文書検索できる。 (3)請求項6,7,8に対応する効果:前記文書検索
手段において、単一の文字列あるいは複数の文字列をA
NDあるいはOR論理演算子で組み合わせた検索条件を
処理可能とし、また、前記文書検索手段でAND論理演
算子で結合される2つの文字列から抽出される文字成分
に同一のものが2個以上ある場合、文字成分表の文字成
分に対するアクセスを一回しか行わないようにし、さら
に、前記文書検索手段でOR論理演算子で結合される2
つの文字列から抽出される文字成分に同一のものが2個
以上ある場合、文字成分表の文字成分に対するアクセス
を一回しか行わないようにした。検索条件を複数の文字
列を論理演算子(AND,OR)で組み合わせで表現で
きるので、複雑な検索要求を表現することが可能とな
る。また、論理演算子に合わせた最適化を行うので、高
速に文書検索できる。 (4)請求項9,10,11に対応する効果:前記文字
成分表を、該文字成分表を保存する大小2種類のブロッ
クから構成されるデータファイルと、文字成分ごとのブ
ロック位置を記録するインデックスファイルによって記
憶し、複数の小さいブロックを大きいブロックにまとめ
るブロック融合手段を有し、また、前記ブロック融合手
段において、データファイルの前方に大きいブロックを
まとめ、後方に小さいブロックをまとめるようにし、さ
らに、前記ブロック融合手段において、データファイル
の小さいブロックが存在する領域のみをブロック融合の
対象とするようにし、文字成分表のビットマップデータ
を格納するブロックの大きさに大小2種類用意したた
め、登録/検索速度をともに高速化できる。 (5)請求項12に対応する効果:前記ブロック融合手
段において、検索時に高速に文字成分表エントリを二次
記憶から読み出すために、複数の固定長ブロックに分割
された各文字成分表エントリを大きな固定長ブロックに
まとめあげる時に大きな固定長ブロックをアロケートの
単位とし、まとめ上げられた大きな固定長ブロック及び
まとめあげられなかった残りの小さな固定長ブロックを
詰め込んだ大きな固定長ブロックを順時書き出すことに
よって、文字成分表のデータを一回のスキャンで処理
し、高速にかつ処理時に必要な二次記憶領域を最小限に
抑えるようにし、文字エントリの小さなブロックを大き
なブロックにまとめ上げることにより、検索速度が向上
する。 (6)請求項13〜15に対応する効果:特定のビット
マップのビットを横方向に順時調べ、ビットが1の場合
には、他のビットマップエントリの対応するビットを調
べる。つまり、縦方向にビットを調べ、すべてのビット
が1の場合は、ビットに対応する文書が検索結果の文書
となるようにする。また、各文字エントリ中に出現する
ビット1の出現数を予めカウントしておき、前述のビッ
トを調べる処理の時にビット出現数が小さい順に並び代
え、同様の処理を行うことによって、さらに参照するデ
ータ量を減らすことが可能となる。さらに、文字エント
リの一部しか参照しない場合には、全ブロックをアクセ
スすることなしにブロックテーブルから直接該当するブ
ロックを得られ、高速に検索することができる。このよ
うに従来技術では文字エントリのアクセスが多く、検索
速度の低下を招いていたが、検索時の処理のアルゴリズ
ム及びデータ構成を変えることによって検索速度が向上
する。 (7)請求項16〜19に対応する効果:前記文字成分
表の構成を文書の各文字および連続する2文字から算出
される値を記録するものとした場合、前記文字検索手段
が検索文字列から連続する2文字から算出される値のみ
を抽出し、また、前記文書検索手段が検索文字列から連
続する2文字から算出される値と、該検索文字列の末尾
の1文字から算出される値を抽出し、また、検索文字列
から連続する2文字から算出される値と、該検索文字列
の先頭の1文字から算出される値を抽出し、さらに、前
記文字成分表の構成を連続する3文字以上の文字列から
算出される値をも用いる場合、前記文書検索手段が検索
文字列から前記文字エントリが抽出される時には、該文
字列エントリに対応する文字列に含まれる1文字あるい
は前記文字列にその前後の文字を含めた文字列に含まれ
る2文字から算出される値を抽出しないようにしたの
で、検索処理において検索文字列から抽出するエントリ
数を削減し、検索処理を高速化できる。 (8)請求項20,21に対応する効果:前記文書検索
手段が単一の文字列あるいは複数の文字列を「論理
積」,「論理和」あるいは「論理差」論理演算子で組み
合わせた検索条件を処理可能とし、また、前記文書検索
手段で「論理差」で結合される2つの文字列の処理にお
いて、後側の文字列を処理しないことにしたので、検索
条件を複数の文字列を論理演算子(AND,OR,NO
T)で組み合わせで表現できるので、複雑な検索要求を
表現することが可能となる。また、論理演算子に合わせ
た最適化を行うので、高速に文書検索できる。 (9)請求項22に対応する効果:従来の方法では、文
字成分表データが二次記憶上にある場合には、一文書を
登録するごとに二次記憶にアクセスすることになり、速
度が遅くなってしまうが、本発明によると、一括登録す
る文書については、一旦メモリ上に文字成分表を一時的
に生成登録し、その後、処理の最後にメモリ上の文字成
分表データを二次記憶上の文書成分表データにアペンド
する。こうすることによって、二次記憶へのアクセスが
減り、高速に複数文書の一括登録が可能となる。 (10)請求項23に対応する効果:外部にあるオリジ
ナル文書のファイルシステム上でのディレクトリパス名
を当該文書管理装置で管理し、参照には、ディレクトリ
パス名を基に外部の該ファイルを直接参照することにな
るので、当該装置のシステムが内部にオリジナルデータ
を持つ必要がなく、二次記憶を無駄に利用しないだけで
なく、システムを介することなくユーザや他のアプリケ
ーションによる登録文書の参照が可能となる。 (11)請求項24に対応する効果:上述と同様に、デ
ィレクトリパス名を管理する場合に、ディレクトリ内お
よびその下位ディレクトリの文書をすべて登録するよう
になっているので、オリジナル文書をユーザが普段利用
するファイルシステム上に置く場合には、一つのディレ
クトリ階層に存在する文書をそのまま文書管理装置で管
理するシステムとすることが可能となる。また、ディレ
クトリを指定することによって、そのディレクトリ中に
含まれる文書または下位のディレクトリ中に含まれる全
文書を自動的に登録することができるようにすること
で、ディレクトリ上の全文書を一つ一つユーザが指定す
る必要があった従来のユーザの負担を軽減することがで
きる。 (12)請求項25に対応する効果:登録したい文書を
置くディレクトリをユーザがあらかじめ指定しておく
と、当該文書管理装置は、そのディレクトリ上での文書
の登録,更新,削除を常に監視し、文書の登録,更新,
削除が行われた場合には、同じ操作を自動的に文字成分
表に反映させ、登録,更新,削除を行う。このようにす
ることで、ユーザの文書操作の負担を軽減することがで
きる。

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 登録文書を保存するとともに、該登録文
    書に含まれる各文字あるいは連続する2文字から算出さ
    れる値を文字成分表に登録し記録する文書登録手段と、
    前記文字成分表を用いて検索条件に該当する文書を高速
    に探し出す文書検索手段とを有し、文字成分表エントリ
    指定により前記文字成分表の構成を変更可能とすること
    を特徴とする文書管理装置。
  2. 【請求項2】 前記登録文書を複数のフォルダに分割し
    て管理可能で、かつフォルダごとに文字成分表エントリ
    指定のできることを特徴とする請求項1記載の文書管理
    装置。
  3. 【請求項3】 前記文書検索手段で単一の文字列から抽
    出される文字成分に同一のものが2個以上ある場合、前
    記文字成分表の文字成分に対するアクセスを一回しか行
    わないことを特徴とする請求項1記載の文書管理装置。
  4. 【請求項4】 文字成分の算出値として、連続する3文
    字以上の文字列から算出される値をも用いることを特徴
    とする請求項1記載の文書管理装置。
  5. 【請求項5】 文書登録時の文字成分の算出において、
    連続する3文字以上の文字列から算出される値を用いる
    場合には、該文字列から1文字あるいは連続する2文字
    から算出される値を文字成分表に登録しないことを特徴
    とする請求項4記載の文書管理装置。
  6. 【請求項6】 前記文書検索手段において、単一の文字
    列あるいは複数の文字列をAND論理演算子あるいはO
    R論理演算子で組み合わせた検索条件を処理可能とする
    ことを特徴とする請求項1記載の文書管理装置。
  7. 【請求項7】 前記文書検索手段でAND論理演算子で
    結合される2つの文字列から抽出される文字成分に同一
    のものが2個以上ある場合、文字成分表の文字成分に対
    するアクセスを一回しか行わないことを特徴とする請求
    項6記載の文書管理装置。
  8. 【請求項8】 前記文書検索手段でOR論理演算子で結
    合される2つの文字列から抽出される文字成分に同一の
    ものが2個以上ある場合、文字成分表の文字成分に対す
    るアクセスを一回しか行わないことを特徴とする請求項
    6記載の文書管理装置。
  9. 【請求項9】 前記文字成分表を、該文字成分表を保存
    する大小2種類のブロックから構成されるデータファイ
    ルと、文字成分ごとのブロック位置を記録するインデッ
    クスファイルによって記憶し、複数の小さいブロックを
    大きいブロックにまとめるブロック融合手段を有するこ
    とを特徴とする請求項1記載の文書管理装置。
  10. 【請求項10】 前記ブロック融合手段において、デー
    タファイルの前方に大きいブロックをまとめ、後方に小
    さいブロックをまとめることを特徴とする請求項9記載
    の文書管理装置。
  11. 【請求項11】 前記ブロック融合手段において、デー
    タファイルの小さいブロックが存在する領域のみをブロ
    ック融合の対象とすることを特徴とする請求項10記載
    の文書管理装置。
  12. 【請求項12】 前記ブロック融合手段において、検索
    時に高速に文字成分表エントリを二次記憶から読み出す
    ために、複数の固定長ブロックに分割された各文字成分
    表エントリを大きな固定長ブロックにまとめあげる時に
    大きな固定長ブロックをアロケートの単位とし、まとめ
    上げられた大きな固定長ブロック及びまとめあげられな
    かった残りの小さな固定長ブロックを詰め込んだ大きな
    固定長ブロックを順時書き出すことによって、文字成分
    表のデータを一回のスキャンで処理し、高速にかつ処理
    時に必要な二次記憶領域を最小限に抑えることを特徴と
    する請求項9記載の文書管理装置。
  13. 【請求項13】 大量の文書データを保持し、入力装置
    から入力された検索文字列を含む文書を検索し、出力装
    置により検索した文書を出力する文書管理装置であっ
    て、文書登録時に文書より各文字コード成分及び2文字
    以上の隣接文字から抽出したビット列成分を抽出し、各
    文書がそれぞれの成分を含むか否かを示す単一文字成分
    表及び一つ以上の隣接文字成分表を生成し、該文字成分
    表の可変長の各文字成分のエントルを複数の固定長ブロ
    ックに分割して二次記憶に登録し、検索時には検索文字
    列から登録時と同様に単一文字成分及び2文字以上の隣
    接文字成分を抽出し、該隣接文字成分に対応する二次記
    憶上の固定長ブロックを統合し、各文字エントリを生成
    して文書を検索する文書管理装置において、仮に文字エ
    ントリで文字成分が出現するビットを1とし、出現しな
    いビットを0とした場合に、検索時に複数の文字エント
    リのビットマップのAND処理を行う時に対象となる文
    字エントリを一つ適当に選択し、ビット列をスキャンし
    て値が1である時だけ他のエントリの対応するビットを
    調べ、全てのエントリの対応するビットの値が1である
    文書を検索結果とすることにより、文字エントリのビッ
    トマップへのアクセスを最小限に全文検索を行うことを
    特徴とする文書管理装置。
  14. 【請求項14】 文字エントリごとに該文字エントリに
    出現する1のビットの個数をあらかじめ二次記憶に記録
    しておき、検索時に複数の文字エントリのビットマップ
    のAND処理を行う時に対象となる文字エントリのう
    ち、該ビット出現数の最も少ない文字エントリを選択
    し、ビット列をスキャンして値が1である時だけビット
    出現数の少ない順に他の文字エントリの対応するビット
    を調べ、全ての文字エントリの対応するビットの値が1
    である文書を検索結果とすることにより、文字エントリ
    のビットマップへのアクセスを最小限に抑え全文検索を
    行うことを特徴とする請求項13記載の文書管理装置。
  15. 【請求項15】 文字エントリの一部へのアクセスの場
    合に、文字エントリの全ブロックを読み出す必要がない
    ように、可変長の文字エントリのビットマップデータを
    複数の固定長のブロックに分割して二次記憶に格納し、
    各固定長のブロックを管理するブロックテーブルを二次
    記憶上に有し、該ブロックテーブルから任意の固定長ブ
    ロックをアクセスできるようにすることによって、必要
    のない二次記憶上のブロックへのアクセスを減らして全
    文検索を行うことを特徴とする請求項13記載の文書管
    理装置。
  16. 【請求項16】 登録文書を保存するとともに、該登録
    文書に含まれる各文字あるいは連続する2文字から算出
    される値を文字成分表に登録し記録する文書登録手段
    と、前記文字成分表を用いて検索条件に該当する文書を
    高速に探し出す文書検索手段とを有し、前記文字成分表
    エントリ指定により文字成分表の構成を変更可能とし、
    前記文字成分表の構成を文書の各文字および連続する2
    文字から算出される値を記録するものとした場合、前記
    文字検索手段が検索文字列から連続する2文字から算出
    される値のみを抽出することを特徴とする文書管理装
    置。
  17. 【請求項17】 前記文書検索手段が、検索文字列から
    の連続する2文字から算出される値と、該検索文字列の
    末尾の1文字から算出される値を抽出することを特徴と
    する請求項16記載の文書管理装置。
  18. 【請求項18】 前記文書検索手段が、検索文字列から
    の連続する2文字から算出される値と、該検索文字列の
    先頭の1文字から算出される値を抽出することを特徴と
    する請求項16記載の文書管理装置。
  19. 【請求項19】 前記文字成分表の構成を連続する3文
    字以上の文字列から算出される値をも用いる場合、前記
    文書検索手段が、検索文字列から前記文字エントリが抽
    出される時には、該文字列エントリに対応する文字列に
    含まれる1文字あるいは前記文字列にその前後の文字を
    含めた文字列に含まれる2文字から算出される値を抽出
    しないことを特徴とする請求項18記載の文書管理装
    置。
  20. 【請求項20】 前記文書検索手段が、単一の文字列あ
    るいは複数の文字列を「論理積」,「論理和」あるいは
    「論理差」論理演算子で組み合わせた検索条件を処理可
    能なことを特徴とする請求項16記載の文書管理装置。
  21. 【請求項21】 前記文書検索手段で「論理差」で結合
    される2つの文字列の処理において、後側の文字列を処
    理しないことを特徴とする請求項20記載の文書管理装
    置。
  22. 【請求項22】 前記文書登録手段が、多数の文書を一
    括して登録する場合に、一文書を登録するごとに生成さ
    れた文字成分表データを直接二次記憶上の文字成分表に
    書き込むのではなく一旦メモリ上に登録し、その後、一
    括してメモリ上の文字成分表データを二次記憶の文字成
    分表に書き出すことによって、高速に文書の一括登録を
    行うことを特徴とする請求項1記載の文書管理装置。
  23. 【請求項23】 前記文書登録手段により登録されたフ
    ァイルシステム上の登録文書のディレクトリパス名を二
    次記憶上で管理し、文書内容を参照する場合には、登録
    したディレクトリパス名を基に直接ファイルシステム上
    のオリジナルデータを参照することによって、文書管理
    システムが内部にオリジナルデータを持つ必要がないだ
    けでなく、ユーザや他のアプリケーションによる登録文
    書の参照を容易にすることを特徴とする請求項1記載の
    文書管理装置。
  24. 【請求項24】 前記文書登録手段により登録されたフ
    ァイルシステム上の登録文書のオリジナルデータのディ
    レクトリパス名を管理し、文書内容を参照する場合に
    は、登録したディレクトリパス名を基に直接ファイルシ
    ステム上のオリジナルデータを参照するようにし、文書
    の登録時にディレクトリを指定し、そのディレクトリ内
    およびその下位ディレクトリの文書をすべて登録するこ
    とにより、複数の文書の登録時の文書指定を容易にする
    ことを特徴とする請求項1記載の文書管理装置。
  25. 【請求項25】 前記文書登録手段により登録されたフ
    ァイルシステム上の登録文書のオリジナルデータのディ
    レクトリパス名を管理し、文書内容を参照する時には、
    登録したディレクトリパス名を基に直接ファイルシステ
    ム上のオリジナルデータを参照するようにし、あらかじ
    め登録対象とするディレクトリを指定しておき、そのデ
    ィレクトリ上での文書の登録,更新,削除を常に監視
    し、文書の登録,更新,削除があった場合には、自動的
    に当該の文書について文字成分表に登録,更新,削除を
    行うことによって、ユーザの文書管理の手間を削減する
    ことを特徴とする請求項1記載の文書管理装置。
JP12137095A 1994-06-02 1995-05-19 文書管理装置 Expired - Fee Related JP3563823B2 (ja)

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-121385 1994-10-05
JP6-241658 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 true JPH08161357A (ja) 1996-06-21
JP3563823B2 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)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040256A (ja) * 1996-07-19 1998-02-13 Ricoh Co Ltd 文書管理方式
JPH11110413A (ja) * 1997-07-25 1999-04-23 Kuraritec Corp データベース検索結果を生成するための方法および装置
JP2006179019A (ja) * 2006-01-16 2006-07-06 Ricoh Co Ltd 文書検索装置
JP2012216088A (ja) * 2011-03-31 2012-11-08 Fujitsu Ltd 抽出方法、抽出プログラム、抽出システム、情報生成方法、情報生成プログラム、および情報コンテンツ
WO2016001991A1 (ja) * 2014-06-30 2016-01-07 株式会社日立製作所 検索方法
JP2018067264A (ja) * 2016-10-21 2018-04-26 富士通株式会社 データ検索プログラム、データ検索装置およびデータ検索方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05174064A (ja) * 1991-12-25 1993-07-13 Hitachi Ltd 文書検索方法及び装置
JPH06290217A (ja) * 1993-03-31 1994-10-18 Ricoh Co Ltd 文書検索方式
JPH06309360A (ja) * 1993-04-21 1994-11-04 Hitachi Ltd 否定論理条件の処理に適したフルテキストサーチ方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05174064A (ja) * 1991-12-25 1993-07-13 Hitachi Ltd 文書検索方法及び装置
JPH06290217A (ja) * 1993-03-31 1994-10-18 Ricoh Co Ltd 文書検索方式
JPH06309360A (ja) * 1993-04-21 1994-11-04 Hitachi Ltd 否定論理条件の処理に適したフルテキストサーチ方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040256A (ja) * 1996-07-19 1998-02-13 Ricoh Co Ltd 文書管理方式
JPH11110413A (ja) * 1997-07-25 1999-04-23 Kuraritec Corp データベース検索結果を生成するための方法および装置
JP2006179019A (ja) * 2006-01-16 2006-07-06 Ricoh Co Ltd 文書検索装置
JP2012216088A (ja) * 2011-03-31 2012-11-08 Fujitsu Ltd 抽出方法、抽出プログラム、抽出システム、情報生成方法、情報生成プログラム、および情報コンテンツ
WO2016001991A1 (ja) * 2014-06-30 2016-01-07 株式会社日立製作所 検索方法
JPWO2016001991A1 (ja) * 2014-06-30 2017-04-27 株式会社日立製作所 検索方法
JP2018067264A (ja) * 2016-10-21 2018-04-26 富士通株式会社 データ検索プログラム、データ検索装置およびデータ検索方法

Also Published As

Publication number Publication date
JP3563823B2 (ja) 2004-09-08

Similar Documents

Publication Publication Date Title
US11899641B2 (en) Trie-based indices for databases
US5732402A (en) System and method for data space management using buddy system space allocation
US5548751A (en) Dynamic data storage system allowing variable size records and fields by using linked record segments
US6658437B1 (en) System and method for data space allocation using optimized bit representation
US9858282B2 (en) Information searching apparatus, information managing apparatus, information searching method, information managing method, and computer product
US5799184A (en) System and method for identifying data records using solution bitmasks
KR100337216B1 (ko) 압축형 메인 메모리를 위한 가상 비압축 캐쉬
JP3771271B2 (ja) コンパクト0完全木における順序付けられたキーの集まりの記憶と検索のための装置及び方法
US4991087A (en) Method of using signature subsets for indexing a textual database
US8224829B2 (en) Database
US7840774B2 (en) Compressibility checking avoidance
EP1866776B1 (en) Method for detecting the presence of subblocks in a reduced-redundancy storage system
CA2485423C (en) Storing and querying relational data in compressed storage format
US5613110A (en) Indexing method and apparatus facilitating a binary search of digital data
US5913209A (en) Full text index reference compression
US5566329A (en) System and method for mutation of selected assignment operations on large data objects
US5301315A (en) Indexing/compression scheme for supporting graphics and data selection
Lomet A simple bounded disorder file organization with good performance
US5481704A (en) Indexing/compression scheme for supporting graphics and data selection
JPH08161357A (ja) 文書管理装置
JP3565840B2 (ja) 文書管理方法および文書管理装置
JP6006740B2 (ja) インデックス管理装置
JP2007048318A (ja) リレーショナルデータベースの処理方法およびリレーショナルデータベース処理装置
JP3859044B2 (ja) インデクス作成方法および検索方法
Zobel et al. Storage Management for Files of Dynamic Records.

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