JP2013168163A - 情報管理プログラム、情報管理装置および情報管理方法 - Google Patents

情報管理プログラム、情報管理装置および情報管理方法 Download PDF

Info

Publication number
JP2013168163A
JP2013168163A JP2013076465A JP2013076465A JP2013168163A JP 2013168163 A JP2013168163 A JP 2013168163A JP 2013076465 A JP2013076465 A JP 2013076465A JP 2013076465 A JP2013076465 A JP 2013076465A JP 2013168163 A JP2013168163 A JP 2013168163A
Authority
JP
Japan
Prior art keywords
archive
compressed file
compressed
character
huffman tree
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
JP2013076465A
Other languages
English (en)
Other versions
JP5494860B2 (ja
Inventor
Masahiro Kataoka
正弘 片岡
Tatsuhiro Sato
達博 佐藤
Takashi Tsubokura
孝 坪倉
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013076465A priority Critical patent/JP5494860B2/ja
Publication of JP2013168163A publication Critical patent/JP2013168163A/ja
Application granted granted Critical
Publication of JP5494860B2 publication Critical patent/JP5494860B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】ファイルアクセス処理の高速化を図ることにより検索処理の効率化を実現すること。
【解決手段】アーカイブ200は、書庫領域201と管理領域202とデータ領域203とを有する。データ領域203には、圧縮ファイル群f(圧縮ファイルf1〜fn)が記憶されている。アーカイブ200はその記憶領域230に格納されており、一部の圧縮ファイル群f´がキャッシュ領域240に格納される。ここで、キャッシュ領域240とは、アーカイブ200の記憶領域230に対して相対的に決まる記憶領域230であり、アーカイブ200の記憶領域230よりも高速アクセスできる領域である。たとえば、アーカイブ200の記憶領域230が磁気ディスク105である場合、キャッシュ領域240はメインメモリやキャッシュメモリとなる。
【選択図】図2

Description

この発明は、文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブに関する情報管理プログラム、情報管理装置および情報管理方法に関する。
従来、下記特許文献1により、検索対象ファイルを圧縮形式のまま、検索条件に該当する可能性のある圧縮ファイルを絞り込むことで、ファイルオープンの回数を低減化する技術が開示されている。また一般的にファイルの検索に関して、オープン処理の回数が多くなり、且つファイル管理がセクタ単位のため、格納領域の断片化(フラグメンテーション)が発生し、格納サイズが増大するという問題について、アーカイブの適用が有効とされている。
国際公開第2006/123448号パンフレット
しかしながら、上述のアーカイブでは、各圧縮ファイルが異なる圧縮パラメータにより圧縮されているため、圧縮パラメータの演算が必要になり、総合的にオープン処理が長くなる問題があった。また、上述した特許文献およびアーカイブでは、検索対象ファイル数の増大にともない、オープン処理の比率が急増するという問題があった。特に、大規模な辞典ではオープン処理がファイル処理の全体の20〜30%を占め、全文検索の速度低下の要因となっているという問題があった。また、約5000ファイルから、指定されたファイル名を特定するため、2分探索では13回の照合が必要になるという問題があった。さらに、ファイル管理がセクタ単位のため、ディスク領域の断片化(フラグメンテーション)が発生し、格納サイズが増大するという問題があった。
一方、大容量の主記憶メモリを装備するシングルサーバのシステムにおける辞書検索では、多数のファイルに分割され、ディスク領域に分散されているため、キャッシュへの常駐化をするためには、オープンやリード処理に多大な時間を必要とし、且つキャッシュでは、格納領域の断片化(フラグメンテーション)が発生し、格納サイズが増大する問題があった。
また、グリッドコンピューティングを利用した多くの辞書検索では、あるグリッドコンピュータの検索処理が遅れると全体の検索処理に影響を及ぼし、検索効率を低下させる原因となっていた。
この発明は、上述した従来技術による問題点を解消するため、圧縮ファイルに対して圧縮形式のままで全文検索を実現する際に、ファイルアクセス処理の高速化を図ることにより検索処理の効率化を実現することができる情報管理プログラム、情報管理装置および情報管理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブを記憶する複数のスレーブサーバーにアクセス可能であり、前記各スレーブサーバーから前記アーカイブを受信し、受信されたアーカイブごとの前記検索対象ファイル群に記述されている各文字および当該各文字の出現頻度に関する圧縮パラメータに基づいて、前記出現頻度を前記文字ごとに集計することにより、前記各圧縮ファイル群に共通の圧縮パラメータを生成し、生成された共通の圧縮パラメータに基づいて、前記各圧縮ファイル群に共通のハフマン木を生成し、前記圧縮ファイルへのアクセス頻度の合計が互いに近似するように、前記各スレーブサーバーに前記圧縮ファイルを割り当て、前記各スレーブサーバーに割り当てられた圧縮ファイル群を含むあらたなアーカイブと前記共通のハフマン木とを、割当先となるスレーブサーバーに送信することを要件とする。
このプログラム、装置および方法によれば、各スレーブサーバーに対し、アクセス頻度が平準化された圧縮ファイル群を含むアーカイブを配信することができ、グリッドコンピュータ全体の検索の効率化と高速化を図ることができる。
このプログラム、装置および方法によれば、圧縮ファイルに対して圧縮形式のままで全文検索を実現する際に、ファイルアクセス処理の高速化を図ることにより検索処理の効率化を実現することができるという効果を奏する。
実施の形態1にかかる情報検索装置のハードウェア構成を示すブロック図である。 アーカイブの記憶内容を示す説明図である。 圧縮ファイルと検索対象ファイルとの関係を示す説明図である。 単字出現マップを示す説明図である。 連字出現マップを示す説明図である。 圧縮パラメータを示す説明図である。 ファイルパステーブルを示す説明図である。 文字出現マップ連携テーブルを示す説明図である。 ファイルパス連携テーブルを示す説明図である。 仮想アーカイブ容量テーブルを示す説明図である。 情報検索装置の機能的構成を示すブロック図である。 文字出現マップを用いた圧縮ファイルの絞込み例を示す説明図である。 情報検索装置の仮想アーカイブ設定機能が実行する仮想アーカイブ設定処理手順を示すフローチャートである。 情報検索装置の情報検索機能が実行する情報検索処理手順を示すフローチャートである。 実施の形態2にかかる検索システムのシステム構成図である。 アーカイブの共通化を示す説明図である。 新アーカイブの分配処理を示す説明図である。 アーカイブ200−1の圧縮符号テーブルおよび圧縮パラメータを示す説明図である。 アーカイブ200−1の圧縮符号テーブルから生成されるハフマン木である。 アーカイブ200−2の圧縮符号テーブルおよび圧縮パラメータを示す説明図である。 アーカイブ200−2の圧縮符号テーブルから生成されるハフマン木を示す説明図である。 統合アーカイブの圧縮符号テーブルおよび圧縮パラメータを示す説明図である。 統合アーカイブの圧縮符号テーブルから生成される共通ハフマン木を示す説明図である。 アーカイブ200−1の記憶内容を示す説明図である。 アーカイブ200−1の単字出現マップを示す説明図である。 アーカイブ200−1の連字出現マップを示す説明図である。 アーカイブ200−1の圧縮パラメータを示す説明図である。 アーカイブ200−1のファイルパステーブルを示す説明図である。 アーカイブ200−1の文字出現マップ連携テーブルを示す説明図である。 アーカイブ200−1のファイルパス連携テーブルを示す説明図である。 アーカイブ200−2の記憶内容を示す説明図である。 アーカイブ200−2の単字出現マップMb1を示す説明図である。 アーカイブ200−2の連字出現マップMb2を示す説明図である。 アーカイブ200−2の圧縮パラメータP2を示す説明図である。 アーカイブ200−2のファイルパステーブル222bを示す説明図である。 アーカイブ200−2の文字出現マップ連携テーブルを示す説明図である。 アーカイブ200−2のファイルパス連携テーブルを示す説明図である。 共通パラメータの生成例を示す説明図である。 文字出現マップ連携テーブルの再構成を示す説明図である。 ファイルパス連携テーブルの再構成を示す説明図である。 ファイルパステーブルの再構成を示す説明図である。 単字出現マップの再構成を示す説明図である。 連字出現マップの再構成を示す説明図である。 圧縮ファイル群の再構成を示す説明図である。 新アーカイブA1の記憶内容を示す説明図である。 新アーカイブA2の記憶内容を示す説明図である。 マスターサーバー(情報管理装置)の機能的構成を示すブロック図である。 マスターサーバーによるアーカイブ再構成処理手順(前半)を示すフローチャートである。 マスターサーバーによるアーカイブ再構成処理手順(後半)を示すフローチャートである。 変換用ハフマン木の生成例(その1)を示す説明図である。 変換用ハフマン木の生成例(その2)を示す説明図である。 変換用ハフマン木を示す説明図(その1)である。 変換用ハフマン木を示す説明図(その2)である。 実施の形態3にかかるマスターサーバー1501(情報管理装置)の機能的構成を示すブロック図である。 実施の形態3におけるマスターサーバーによるアーカイブ再構成処理手順(後半)を示すフローチャートである。 ハフマン木への圧縮符号設定処理の詳細な処理手順を示すフローチャートである。
以下に添付図面を参照して、このプログラム、装置および方法の好適な実施の形態を詳細に説明する。
<実施の形態1>
狭義のアーカイブとは、一般に、複数のフォルダとその配下の多くのファイルを1ファイル化する技術である。電子メールなどに添付し送受信され、データ交換などの目的に利用されており、圧縮技術との組合せが多いことから、広義では、圧縮の付属技術として紹介されることもある。インターネットの普及とともに、アーカイブ技術が進歩し、その操作性や圧縮方式と組合せ、多種・多様なツールが開発された。パソコンなどのハードウェアの進歩は目ざましく、特にCPUの高速化、メモリやハードディスクや光ディスクなどの媒体の大容量化は顕著である。
ハードウェアの進歩に伴い、データの多様化や、分析・解析や調査・研究への業務適用などの変化も著しい。一方、個人情報の流出や粉飾決算などに関して、個人情報保護法などの法整備などに対応したセキリティ機能の強化が求められている。アーカイブ技術では、これまで、圧縮・伸長の性能が重視されてきたが、今後、検索やセキリティなどとの連携機能が重視される。
従来のアーカイブは、主にデータの保存や情報伝達・交換などの分野で発達した技術であり、圧縮と1ファイル化が特徴である。また、ファイルを利用する場合は、解凍(あるいは、一時的に伸長)が行われる。ZIPなどのアーカイブには、全文検索の機能がない。ファイルが多くなればなるほど、検索は重要機能である。
実施の形態1では、圧縮ファイルに対して圧縮形式のままで全文検索を実現する際に、アクセス頻度の高いファイルをキャッシュメモリに常駐化することで、リードなどのファイルアクセス処理の時間の短縮化を実現する。
(コンピュータのハードウェア構成)
図1は、実施の形態1にかかる情報検索装置のハードウェア構成を示すブロック図である。図1において、情報検索装置は、CPU(Central Processing Unit)101と、ROM(Read‐Only Memory)102と、RAM(Random Access Memory)103と、磁気ディスクドライブ104と、磁気ディスク105と、光ディスクドライブ106と、着脱可能な記録媒体の一例としての光ディスク107と、ディスプレイ108と、I/F(Interface)109と、キーボード110と、マウス111と、スキャナ112と、プリンタ113と、を備えている。また、各構成部はバス100によってそれぞれ接続されている。
ここで、CPU101は、コンピュータの全体の制御を司る。ROM102は、ブートプログラムなどのプログラムを記憶している。RAM103は、CPU101のワークエリアとして使用される。磁気ディスクドライブ104は、CPU101の制御にしたがって磁気ディスク105に対するデータのリード/ライトを制御する。磁気ディスク105は、磁気ディスクドライブ104の制御で書き込まれたデータを記憶する。
光ディスクドライブ106は、CPU101の制御にしたがって光ディスク107に対するデータのリード/ライトを制御する。光ディスク107は、光ディスクドライブ106の制御で書き込まれたデータを記憶したり、光ディスク107に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ108は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ108は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)109は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク114に接続され、このネットワーク114を介して他の装置に接続される。そして、I/F109は、ネットワーク114と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F109には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード110は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス111は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ112は、画像を光学的に読み取り、情報検索装置内に画像データを取り込む。なお、スキャナ112は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ113は、画像データや文書データを印刷する。プリンタ113には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(アーカイブの記憶内容)
図2は、アーカイブの記憶内容を示す説明図である。アーカイブは、図1に示したRAM103、磁気ディスク105などの記憶領域に記憶されている。アーカイブ200は、書庫領域201と管理領域202とデータ領域203とを有する。書庫領域201には、文字出現マップ連携テーブル211とファイルパス連携テーブル212と仮想アーカイブ容量テーブル213とが記憶されている。管理領域202には、圧縮パラメータ221とファイルパステーブル222と文字出現マップM(単字出現マップM1および連字出現マップM2)とが記憶されている。データ領域203には、圧縮ファイル群f(圧縮ファイルf1〜fn)が記憶されている。
アーカイブ200はその記憶領域230に格納されており、先頭から圧縮ファイルf´までがキャッシュ領域240に格納される。ここで、キャッシュ領域240とは、アーカイブ200の記憶領域230に対して相対的に決まる記憶領域230であり、アーカイブ200の記憶領域230よりも高速アクセスできる領域である。たとえば、アーカイブ200の記憶領域230が磁気ディスク105である場合、キャッシュ領域240はメインメモリヒープ領域などに設けられる。また、キャッシュ領域240には、一部または全部の文字出現マップやファイルパス、仮想アーカイブも記憶される。
図3は、圧縮ファイルfiと検索対象ファイルとの関係を示す説明図である。n個の圧縮ファイルf1〜fnは共通のハフマン木で圧縮されており、そのハフマン木を用いて伸長される。伸長された検索対象ファイル群は、たとえば、辞書や用語辞典など文字列が記述されたファイル群である。このファイルは、たとえば、HTML(HyperText
Markup Language)やXML(Extensible Markup Language)などコンピュータリーダブルな言語で記述されたファイルである。日本語の辞書の場合、1ファイルの文字数は4000文字以上であり、ファイル数nは、n=4000〜6000程度の膨大なファイル数となる。
日本語の辞書を例に挙げると、(A)に示したように、ファイル番号i=23の圧縮ファイルf23を伸長すると、検索対象ファイルF23が得られる。また、ファイル番号i=158の圧縮ファイルf158を伸長すると、(B)に示したように、検索対象ファイルF158が得られる。さらに、ファイル番号i=4971の圧縮ファイルf4971を伸長すると、(C)に示したように、検索対象ファイルF4971が得られる。なお、各検索対象ファイルF23,F158,F4971中、墨付き括弧内の文字列は見出し語である。
図4は、単字出現マップM1を示す説明図である。単字出現マップM1では、文字ごとにビット列を有する。ビット列はビット番号順に並んでいる。ビット番号iは、圧縮ファイルのファイル番号iに対応する。ビット列中、“1”は、その文字が存在していることを示しており、“0”は存在しないことを示している。たとえば、かな文字「あ」のビット番号i=1のビットは“1”であるため、圧縮ファイルf1を伸長した検索対象ファイルにはかな文字「あ」が存在することとなる。一方、漢字文字「足」のビット番号i=1のビットは“0”であるため、圧縮ファイルf1を伸長した検索対象ファイルには漢字文字「足」が存在しないこととなる。
図5は、連字出現マップM2を示す説明図である。連字とは、連続する文字列である。ここでは、2連字について例示しているが、3連字以上でもよい。マップ形式は、図4に示した単字出現マップM1とおなじである。たとえば、数字連字「99」のビット番号i=1のビットは“0”であるため、圧縮ファイルf1を伸長した検索対象ファイルには数字連字「99」が存在しないこととなる。一方、数字連字「99」のビット番号i=2のビットは“1”であるため、圧縮ファイルf2を伸長した検索対象ファイルには数字連字「99」が存在することとなる。
図6は、圧縮パラメータ221を示す説明図である。圧縮パラメータ221とは、圧縮ファイル群fを伸長した検索対象ファイル群に記述されている文字/連字とその出現回数を対応付けたテーブルである。この圧縮パラメータ221にしたがって、検索対象ファイル群を圧縮ファイル群fに圧縮するためのハフマン木が生成される。
図7は、ファイルパステーブル222を示す説明図である。ファイルパステーブル222とは、圧縮ファイルfiへのパス(ファイルパス)が記述されたテーブルである。具体的には、たとえば、ファイルIDごとにその圧縮ファイルfiへのファイルパスとその圧縮ファイルfiを伸長した検索対象ファイルに記述されている見出し語とそのアドレスとサイズとを対応付けている。ファイルIDとは、圧縮ファイルfiを一意に特定する情報である。
ここでは、説明上、圧縮ファイルに割り当てられた符号をファイルIDとしている。たとえば、ファイルID:f23の圧縮ファイルf23のファイルパスは、“honmon¥file23.html”であり、見出し語は「川端康成」である(図3を参照。)。なお、後述する常駐フラグが“1”に設定された場合、キャッシュ領域240へのファイルパス(たとえば、“cash¥file23.html”)が書き込まれ、“0”に戻った場合、キャッシュ領域240へのファイルパスは消去される。
図8は、文字出現マップ連携テーブル211を示す説明図である。文字出現マップ連携テーブル211は、文字出現マップMの文字ごとのビット列を構成するビットごとに、アドレスとサイズとアクセス頻度と常駐フラグとが記憶されている。アドレスとは、文字出現マップMの文字ごとのビット列を構成するビット番号に対応する圧縮ファイルが記憶されているアドレスである。サイズとは、圧縮ファイルfiのサイズである。たとえば、ビット番号iに対応する圧縮ファイルは圧縮ファイルfiである。この圧縮ファイルfiが記憶されているアドレスはadriであり、圧縮ファイルfiのサイズはsiである。
また、アクセス頻度とは、そのビット番号iに対応する圧縮ファイルfiへのアクセスする度合いであり、ここでは、アクセス回数としている。アクセス頻度はアクセス回数のほか確率(圧縮ファイルfiへのアクセス回数/全圧縮ファイルへの総アクセス回数)であらわしてもよい。常駐フラグとは、そのビット番号iに対応する圧縮ファイルfiを、アーカイブ200の記憶領域230から当該記憶領域230に対するキャッシュ領域240に移動してキャッシュ領域240に常駐されているか否かを示すフラグである。
キャッシュ領域240に常駐されている場合、常駐フラグは“1”である。一方、キャッシュ領域240に常駐されず、記憶領域230に格納されている場合、常駐フラグは“0”である。なお、常駐フラグが“1”に設定された場合、アドレスにはキャッシュ領域240のアドレスが書き込まれ、“0”に戻った場合、キャッシュ領域240のアドレスは消去される。
図9は、ファイルパス連携テーブル212を示す説明図である。ファイルパス連携テーブル212は、ファイルパスとビット番号iを連携するテーブルである。常駐フラグが“1”に設定された場合、キャッシュ領域240へのファイルパスが書き込まれ、“0”に戻った場合、キャッシュ領域240へのファイルパスは消去される。
図10は、仮想アーカイブ容量テーブル213を示す説明図である。仮想アーカイブとは、記憶領域230に記憶されているアーカイブ200のうちキャッシュ領域240に記憶された圧縮ファイル群f´である。なお、書庫領域201や管理領域202内のテーブル等も仮想アーカイブに含めてもよい。
(情報検索装置の機能的構成)
図11は、情報検索装置の機能的構成を示すブロック図である。情報検索装置1100は、並び替え処理部1101と、積算部1102と、書込み部1103と、設定部1104と、入力部1105と、特定部1106と、読出し部1107と、伸長部1108と、検索部1109と、出力部1110と、更新部1111と、を含む構成である。
並び替え処理部1101〜入力部1105、更新部1111が仮想アーカイブ設定機能であり、入力部1105〜出力部1110が情報検索機能である。情報検索機能については、国際公開第WO2006/123448号パンフレットに詳細に記載されているため、ここでは、本実施の形態の特徴部分に言及しつつ簡略化して説明する。
なお、並び替え処理部1101〜更新部1111は、具体的には、たとえば、図1に示したROM、RAM103、磁気ディスク105などの記憶領域230に記憶されたプログラムをCPU101に実行させることによって、または、I/F109によってその機能を実現する。
まず、並び替え処理部1101は、文字出現マップ連携テーブル211を、その各圧縮ファイルへのアクセス頻度の高い順(降順)に並び替える機能を有する。この並び替えは、常駐フラグの設定の前処理となる。
積算部1102は、並び替え処理部1101による並び替え後のアクセス頻度の高い順から圧縮ファイルfiのサイズを積算する機能を有する。具体的には、圧縮ファイル群fが記憶されている記憶領域230に対するキャッシュ領域240の記憶容量を超えないように積算する。たとえば、キャッシュ領域240の記憶容量を超えない最大の積算値となるように、並び替え処理部1101による並び替え後のアクセス頻度の高い順から圧縮ファイルのサイズを積算する。このように、最大の積算値を計算することで、キャッシュ領域240の記憶容量を最大限に活用することができる。
書込み部1103は、積算部1102によって積算された圧縮ファイル群を、当該ファイル群の検索に先立って、記憶領域230からキャッシュ領域240に書き込む機能を有する。書込み対象となる圧縮ファイル群fは、記憶領域230から消去されてもよく、また、記憶領域230に残存させておいてもよい。このように、キャッシュ領域240にアクセス頻度が高い圧縮ファイル群を書き込むことで、ファイルアクセスの高速化を図ることができる。
設定部1104は、書込み部1103によってキャッシュ領域240に書き込まれた圧縮ファイル群について常駐フラグを設定する機能を有する。具体的には、たとえば、キャッシュ領域240に書き込まれた圧縮ファイル群の文字出現マップ連携テーブル211における常駐フラグを、“0”から“1”に変更する。常駐フラグがすでに“1”の場合は、そのままである。なお、前回キャッシュ領域240に書き込まれていたが今回消去された圧縮ファイルについては、常駐フラグが“1”に設定されているため、“0”に変更する。これにより、アクセス頻度が高い圧縮ファイルがキャッシュ領域240に常駐されていることが特定できる。
入力部1105は、検索文字列の入力を受け付ける機能を有する。具体的には、図1に示したキーボードなどの入力装置を用いて入力された検索文字列を受け付ける。たとえば、「川端康成」といった検索文字列の入力を受け付ける。なお、検索文字列のほかに、前方一致、後方一致などの検索条件の入力を受け付けることとしてもよい。
特定部1106は、入力部1105によって入力された検索文字列を構成するすべての文字が存在する圧縮ファイルを特定する機能を有する。具体的には、文字出現マップMを参照して、圧縮ファイル群を、検索文字列を構成するすべての文字が存在する圧縮ファイルに絞り込む。たとえば、検索文字列が「川端康成」の場合、「川」,「端」,「康」,「成」という単字に分解される。そして、単字出現マップM1から単字「川」,「端」,「康」,「成」のビット列を論理積演算し、論理積演算結果が“1”となったビット番号に対応する圧縮ファイルに絞り込まれる。
図12は、文字出現マップMを用いた圧縮ファイルfiの絞込み例を示す説明図である。図12に示したように、各単字「川」,「端」,「康」,「成」のビット列を同一ビット番号で論理積(AND)演算をおこなう。論理積が“1”であるビット番号i=1,23,158,4971に対応する圧縮ファイルf1,f23,f158,f4971の伸長後の検索対象ファイルに、単字「川」,「端」,「康」,「成」がすべて含まれていることがわかる。
ただし、この段階では、単字「川」,「端」,「康」,「成」がすべて含まれていることがわかるだけで、単字「川」,「端」,「康」,「成」がこの順で並ぶ文字列「川端康成」が含まれていることまでは特定できない。これにより、圧縮形式のまま、検索文字列を含んでいる可能性がある圧縮ファイルを特定することができる。
読出し部1107は、特定部1106によって特定された圧縮ファイルを、設定部1104によって設定された常駐フラグに基づく領域から読み出す機能を有する。具体的には、たとえば、特定部1106によって特定された圧縮ファイルについて、文字出現マップ連携テーブル211の常駐フラグを参照して、常駐フラグの値により、特定された圧縮ファイルが記憶されている領域を特定する。
常駐フラグが“0”である場合、圧縮ファイルはキャッシュ領域240に記憶されておらず、アーカイブ200の記憶領域から読み出すこととなる。一般的なファイル名に基づくオープン処理では、ファイルパステーブル222が参照され、2分探索により一致したファイルIDの先頭アドレスとサイズにより該当の圧縮ファイルfiがオープンされる。多数の圧縮ファイルが格納されるアーカイブでは、オープン処理が長くなる。
一方、文字出現マップのビット番号に基づくオープン処理では、文字出現マップ211が参照され、ビット番号に対応した先頭アドレスとサイズを直接得ることができ、該当する圧縮ファイルfiを高速にアクセスすることができる。常駐フラグが“1”である場合、キャッシュ領域240に記憶されていることがわかる。この場合、キャッシュ領域240から圧縮ファイルfiをアクセスすることができ、さらに高速化を図ることができる。
伸長部1108は、読出し部1107によって読み出された圧縮ファイルを伸長する機能を有する。具体的には、たとえば、圧縮パラメータ221に基づいて生成されたハフマン木により、読み出された圧縮ファイルfiを伸長する。これにより、読み出された圧縮ファイルfiのみ伸長すればよいため、ファイルアクセスの高速化を図ることができる。
検索部1109は、伸長部1108によって伸長された検索対象ファイルの中から検索文字列に一致または関連する文字列を検索する機能を有する。具体的には、たとえば、伸長された検索対象ファイル群の中から検索文字列と一致する文字列が存在する検索対象ファイルを抽出する。検索文字列と前方一致または後方一致する文字列が存在する検索対象ファイルを、関連する検索対象ファイルとして抽出する。その他、検索文字列に共起する文字列が設定されている場合には、共起する文字列が存在する検索対象ファイルを、関連する検索対象ファイルとして抽出する。
出力部1110は、伸長部1108によって伸長された検索対象ファイルを出力する機能を有する。出力部1110の出力形式は、具体的には、たとえば、ディスプレイへの表示やプリンタへの印刷出力、他のコンピュータへの送信、情報検索装置1100内の記憶領域230への格納などがある。ディスプレイに表示する場合、伸長された検索対象ファイルをそのまま表示することとしてもよい。また、伸長された検索対象ファイル名を一覧表示して、ユーザが検索対象ファイル名をポイントすることで、リンク先となる検索対象ファイルを読み出して画面表示することとしてもよい。
また、検索部1109により検索された場合、検索された検索対象ファイルをそのまま表示することとしてもよい。また、検索された検索対象ファイル名を一覧表示して、ユーザが検索対象ファイル名をポイントすることで、リンク先となる検索対象ファイルを読み出して画面表示することとしてもよい。
更新部1111は、伸長部1108によって圧縮ファイルが伸長された場合、当該圧縮ファイルへのアクセス頻度を更新する機能を有する。具体的には、たとえば、アクセス頻度がアクセス回数で表されている場合、伸長された圧縮ファイルfiのアクセス回数を1加算する。また、アクセス頻度が確率で表されている場合、伸長された圧縮ファイルに対しては、アクセス回数を1加算するとともに全圧縮ファイルf1〜fnへの総アクセス回数も1加算する。
一方、伸長されなかった圧縮ファイルfiに対しては全圧縮ファイルf1〜fnへの総アクセス回数のみ1加算する。したがって、並び替え処理部1101は、更新後の圧縮ファイル群fのアクセス頻度にしたがってソート処理を実行することとなる。これにより、文字出現マップMにより絞り込まれやすい圧縮ファイルfiのアクセス頻度が高くなるため、次回以降の伸長速度の高速化を実現することができる。
また、更新部1111は、伸長された圧縮ファイルfiではなく、検索部1109によって検索された検索対象ファイルの圧縮ファイルfiについて、当該圧縮ファイルfiへのアクセス頻度を更新することとしてもよい。具体的には、たとえば、アクセス頻度がアクセス回数で表されている場合、検索された検索対象ファイルの圧縮ファイルfiへのアクセス回数を1加算する。また、アクセス頻度が確率で表されている場合、検索された検索対象ファイルの圧縮ファイルfiに対しては、アクセス回数を1加算するとともに全圧縮ファイルf1〜fnへの総アクセス回数も1加算する。
一方、検索されなかった検索対象ファイルの圧縮ファイルfiに対しては全圧縮ファイルf1〜fnへの総アクセス回数のみ1加算する。したがって、並び替え処理部1101は、更新後の圧縮ファイル群のアクセス頻度にしたがってソート処理を実行することとなる。これにより、実際に検索された圧縮ファイルfiのアクセス頻度が高くなるため、次回以降の検索速度の高速化を実現することができる。
(仮想アーカイブ設定処理手順)
図13は、情報検索装置1100の仮想アーカイブ設定機能が実行する仮想アーカイブ設定処理手順を示すフローチャートである。まず、並び替え処理部1101により、文字出現マップ連携テーブル211を、アクセス頻度の降順にソートする(ステップS1301)。ここで、並び替え後の順位kをk=1とし(ステップS1302)、積算部1102により、順位1〜k+1までの圧縮ファイルの合計サイズを計算する(ステップS1303)。そして、合計サイズs(1_k+1)が、s(1_k+1)>Tsであるか否かを判断する(ステップS1304)。ここで、Tsはキャッシュ領域240に記憶可能な最大の記憶容量である。
s(1_k+1)>Tsでない場合(ステップS1304:No)、kをインクリメントして(ステップS1305)、ステップS1303に戻る。一方、s(1_k+1)>Tsである場合(ステップS1304:Yes)、キャッシュ領域240にはこれ以上圧縮ファイルを格納できないため、順位1〜k+1までの圧縮ファイルのビット番号、アクセス頻度およびサイズとなるように仮想アーカイブ容量テーブル213を更新する(ステップS1306)。
そして、書込み部1103により、順位1〜kまでの圧縮ファイルをキャッシュ領域240に書き込む(ステップS1307)。この場合、順位k+1以降の圧縮ファイルはキャッシュ領域240から消去される。このあと、設定部1104により、文字出現マップ連携テーブル211における順位1〜kまでの圧縮ファイルの常駐フラグをON(“0”→“1”)にする(ステップS1308)。
なお、順位k+1以降の圧縮ファイルについては、常駐フラグをOFF(“1”→“0”)にする。これにより一連の処理が終了する。この仮想アーカイブ設定処理手順によれば、検索に先立って、アクセス頻度が高い圧縮ファイルを優先的に仮想アーカイブとして設定することができるため、ファイルアクセスの高速化を実現することができる。
(情報検索処理手順)
図14は、情報検索装置1100の情報検索機能が実行する情報検索処理手順を示すフローチャートである。入力部1105により、検索文字列の入力を受け付ける(ステップS1401)。そして、検索文字列を単字または連字(以下、単に「文字」)に分解する(ステップS1402)。つぎに、分解された文字ごとのビット列を文字出現マップMから抽出して(ステップS1403)、抽出されたビット列を同一ビット番号で論理積演算する(ステップS1404)。
この論理積演算が“1”である圧縮ファイルfiを、分解された文字を含む圧縮ファイルとして特定する(ステップS1405)。このあと、特定された圧縮ファイルfiのうち未処理の圧縮ファイルfiがあるか否かを判断する(ステップS1406)。未処理の圧縮ファイルfiがある場合(ステップS1406:Yes)、特定された未処理の圧縮ファイルfiを1つ選択し(ステップS1407)、その選択された圧縮ファイルfiに対して常駐フラグがONであるか否かを判断する(ステップS1408)。
ONである場合(ステップS1408:Yes)、読出し部1107により、キャッシュ領域240から直接CPU101のレジスタに転送して(ステップS1409)、ステップS1411に移行する。一方、OFFである場合(ステップS1408:No)、読出し部1107により、アーカイブ200の記憶領域230からキャッシュ領域240にリードして、CPU101に読み込ませて、ステップS1411に移行する(ステップS1410)。ステップS1411では、伸長部1108により、圧縮パラメータ221に基づくハフマン木を用いて伸長処理を実行して(ステップS1411)、ステップS1406に戻る。
ステップS1406において、未処理の圧縮ファイルfiがない場合(ステップS1406:No)、検索部1109により、伸長された検索対象ファイルを検索文字列により検索する(ステップS1412)。そして、出力部1110により、検索結果を出力する(ステップS1413)。このあと、更新部1111により、文字出現マップ連携テーブル211の該当する圧縮ファイルfiのアクセス頻度を1加算する(ステップS1414)。これにより、一連の処理を終了する。
この情報検索処理手順によれば、常駐フラグがON(“1”)に設定されている圧縮ファイルfiをキャッシュ領域240から読み出して伸長処理をおこなうため、ファイルアクセスの高速化を実現することができる。また、検索する都度、圧縮ファイルfiへのアクセス頻度が更新されるため、キャッシュ領域240に書き込まれる圧縮ファイルfiを逐次更新することができる。したがって、次回以降のファイルアクセスの高速化も実現することができる。
このように、実施の形態1によれば、アーカイブの圧縮ファイルfiのアクセスにおいて、文字出現マップのビット番号をもとに文字出現マップ連携テーブル211を利用することで高速化を図ることができる。さらに、アクセス頻度の高いファイルをキャッシュメモリに常駐化することで、ファイルのアクセス処理の時間の短縮化を図ることができる。したがって、伸長するまでの時間が大幅に短縮化され、検索速度の高速化を図ることができる。また、キャッシュ領域を有効活用することで、省メモリ化を図ることができる。なお、この実施の形態1の情報検索装置1100は、パーソナル・コンピュータや検索サーバーのほか、携帯電話機、携帯型ゲーム機、電子辞書などの携帯型端末に適用することができる。
<実施の形態2>
つぎに、実施の形態2について説明する。インターネットでのサイト検索などは、定期的に各サイトの更新を監視し、形態素解析を行った要約データをもとに、大規模なインデックスを作成し、全文検索が行われている。サイトのデータ量の増大に対し、従来では、各サイトの監視の処理の高速化とスループットの増加、複数のコンピュータによる検索のスケーラビリティが課題となっている。
これらの課題に対し、実施の形態2では、アーカイブ200の追加やマージ、削除などの高速化を実現する。また、グリッドコンピュータなどに関するスケーラビリティに対して、スレーブサーバーに検索を分割し並行処理したり、各スレーブサーバーの稼働率を平準化することで、検索速度の効率化を実現する。
図15は、実施の形態2にかかる検索システムのシステム構成図である。検索システム1500は、マスターサーバー1501と複数のスレーブサーバー1502−1〜1502−Nを含む構成である。マスターサーバー1501と複数のスレーブサーバー1502−1〜1502−N、または、スレーブサーバー1502−1〜1502−Nどうしは、ネットワーク114を介して相互に通信可能である。マスターサーバー1501は、スレーブサーバー1502−1〜1502−Nを統括管理する。各スレーブサーバー1502−Iは、上述した実施の形態1の情報検索装置1100に相当し、上述した仮想アーカイブ設定機能と情報検索機能を有する。
なお、各スレーブサーバー1502−I(I=1〜N)が備えるアーカイブ200の種類は異なる。たとえば、あるスレーブサーバー1502−Iが保持するアーカイブ200−Iは国語辞典のアーカイブであり、他のスレーブサーバー1502−J(J≠I)が保持するアーカイブ200−Jは用語辞典のアーカイブであり、別のスレーブサーバー1502−K(K≠I,J)が保持するアーカイブ200−Kは英和辞典のアーカイブであるなど、それぞれ種類や出版社が異なるアーカイブである。
なお、各スレーブサーバー1502−Iはそれぞれ異なるアーカイブ200−Iを有するが、各アーカイブ200−I内の圧縮パラメータ221−Iも異なる。したがって、各スレーブサーバー1502−Iが保持するハフマン木h−Iも異なる構造となる。
このようなスレーブサーバー群1502に対して、共通の検索キーワードをマスターサーバー1501から与えることで、串刺し検索と呼ばれる多書籍検索を実行する。各スレーブサーバー1502−Iは、検索結果をマスターサーバー1501に返すことで、マスターサーバー1501は複数辞書の検索結果を得ることができる。以降、説明の簡略化のため、スレーブサーバー1502−Iの数を2台(N=2)として説明する。
図16は、アーカイブの共通化を示す説明図である。マスターサーバー1501は、各スレーブサーバー1502−1,1502−2における検索処理の平準化のため、スレーブサーバー1502−1,1502−2のアーカイブ200−1,200−2とハフマン木h−1,h−2をネットワーク114経由で収集する。そして、各アーカイブ200−1,200−2を集約した統合アーカイブAと、各アーカイブ200−1,200−2のハフマン木h−1,h−2を共通化した共通ハフマン木Hを生成する。
図17は、新アーカイブの分配処理を示す説明図である。マスターサーバー1501は、スレーブサーバー1502−1,1502−2の検索処理が平準化するように統合アーカイブAを分割し、各スレーブサーバー1502−1,1502−2に固有な新アーカイブA1,A2としてスレーブサーバー1502−1,1502−2に配信する。また、新共通ハフマン木H1、H2も各スレーブサーバー1502−1,1502−2に配信される。本例では、一台のスレーブサーバーに対して1つのアーカイブが割り当てられているため、各スレーブサーバー1502−1,1502−2に対して共通ハフマン木Hを配信しているが、スレーブサーバーごとに複数のアーカイブとそのハフマン木がある場合、スレーブサーバーごとに固有の共通ハフマン木を配信することとなる。たとえば、スレーブサーバー1501−1にアーカイブ200−1,200−2とハフマン木h−1,h−2がある場合、スレーブサーバー1502−1に共通ハフマン木Hを配信することとなる。
(ハフマン木の再構成)
図18は、アーカイブ200−1の圧縮符号テーブルおよび圧縮パラメータ221を示す説明図である。ここでは、説明を単純化するため、アーカイブ200−1に含まれる圧縮された検索対象ファイル群には、文字a〜fが記述されているものとする。図18中、(A)はアーカイブ200−1の圧縮符号テーブル1800であり、(B)はアーカイブ200−1の圧縮パラメータP1である。圧縮符号テーブル1800において、出現回数が高い文字ほど短い圧縮符号が割り当てられている。
図19は、アーカイブ200−1の圧縮符号テーブル1800から生成されるハフマン木h−1である。図19中、丸図形(○)が節点である。特に、最上位の節点を根R、それ以外の節点を内部節点と呼ぶ。また、四角図形(□)が葉、節点間、または、節点と葉とを結ぶ線分が枝である。葉の中に示した文字は伸長後の文字であり、葉の下に示した文字列は、当該葉となる伸長後の文字に割り当てられた圧縮符号である。
図20は、アーカイブ200−2の圧縮符号テーブルおよび圧縮パラメータ221を示す説明図である。ここでは、説明を単純化するため、アーカイブ200−2に含まれる圧縮された検索対象ファイル群には、文字a〜fが記述されているものとする。図20中、(A)はアーカイブ200−2の圧縮符号テーブル2000であり、(B)はアーカイブ200−2の圧縮パラメータP2である。圧縮符号テーブル2000において、出現回数が高い文字ほど短い圧縮符号が割り当てられている。図21は、アーカイブ200−2の圧縮符号テーブル2000から生成されるハフマン木h−2を示す説明図である。
図22は、統合アーカイブAの圧縮符号テーブルおよび圧縮パラメータ221を示す説明図である。統合アーカイブAは、アーカイブ200−1,200−2を統合しているため、統合アーカイブAに含まれている圧縮された検索対象ファイルには、文字a〜fが記述されていることとなる。したがって、(B)に示した共通圧縮パラメータPの出現回数は、アーカイブ200−1の圧縮パラメータP1とアーカイブ200−2の圧縮パラメータP2の出現回数を同一文字で集計した値となる。図23は、統合アーカイブAの圧縮符号テーブルから生成される共通ハフマン木Hを示す説明図である。
(アーカイブの再構成)
つぎに、実施の形態2におけるアーカイブの再構成について説明する。ここでは、上述したアーカイブ200−1とアーカイブ200−2とを統合して、統合アーカイブAを生成する。まず、アーカイブ200−1の記憶内容について説明する。
図24は、アーカイブ200−1の記憶内容を示す説明図である。アーカイブ200−1は、図1に示したRAM103、磁気ディスク105などの記憶領域230に記憶されている。アーカイブ200−1は、書庫領域201と管理領域202とデータ領域203とを有する。書庫領域201には、文字出現マップ連携テーブル211aとファイルパス連携テーブル212aと仮想アーカイブ容量テーブル213aとが記憶されている。管理領域202には、圧縮パラメータP1とファイルパステーブル222aと文字出現マップMa(単字出現マップMa1および連字出現マップMa2)とが記憶されている。データ領域203には、図3に示したような圧縮ファイル群fa(圧縮ファイルfa_1〜fa_n)が記憶されている。なお、これらは実施の形態1で説明した内容に準じている。
図25は、アーカイブ200−1の単字出現マップMa1を示す説明図である。図26は、アーカイブ200−1の連字出現マップMa2を示す説明図である。アーカイブ200−1の文字出現マップMaでは、アーカイブ200−2と区別するため、便宜上、ビット番号をa_1〜a_nとする。図27は、アーカイブ200−1の圧縮パラメータP1を示す説明図である。図28は、アーカイブ200−1のファイルパステーブル222aを示す説明図である。図29は、アーカイブ200−1の文字出現マップ連携テーブル211aを示す説明図である。図30は、アーカイブ200−1のファイルパス連携テーブル212aを示す説明図である。
つぎに、アーカイブ200−2の記憶内容について説明する。図31は、アーカイブ200−2の記憶内容を示す説明図である。アーカイブ200−2は、図1に示したRAM103、磁気ディスク105などの記憶領域230に記憶されている。アーカイブ200−2は、書庫領域201と管理領域202とデータ領域203とを有する。書庫領域201には、文字出現マップ連携テーブル211bとファイルパス連携テーブル212bと仮想アーカイブ容量テーブル213bとが記憶されている。管理領域202には、圧縮パラメータP2とファイルパステーブル222bと文字出現マップMb(単字出現マップMb1および連字出現マップMb2)とが記憶されている。データ領域203には、図3に示したような圧縮ファイル群fb(圧縮ファイルfb_1〜fb_m)が記憶されている。なお、これらは実施の形態1で説明した内容に準じている。
図32は、アーカイブ200−2の単字出現マップMb1を示す説明図である。図33は、アーカイブ200−2の連字出現マップMb2を示す説明図である。アーカイブ200−2の文字出現マップMbでは、アーカイブ200−1と区別するため、便宜上、ビット番号をb_1〜b_mとする。図34は、アーカイブ200−2の圧縮パラメータP2を示す説明図である。図35は、アーカイブ200−2のファイルパステーブル222bを示す説明図である。図36は、アーカイブ200−2の文字出現マップ連携テーブル211bを示す説明図である。図37は、アーカイブ200−2のファイルパス連携テーブル212bを示す説明図である。
まず、圧縮パラメータP1,P2の再構成について説明する。図38は、共通パラメータの生成例を示す説明図である。アーカイブ200−1の圧縮パラメータP1とアーカイブ200−2の圧縮パラメータP2を、同一文字(単字/連字)で出現頻度を集計することで、共通圧縮パラメータPが生成される。
つぎに、文字出現マップ連携テーブル211a,211bの再構成について説明する。図39は、文字出現マップ連携テーブル211a,211bの再構成を示す説明図である。アーカイブ200−1の文字出現マップ連携テーブル211aとアーカイブ200−2の文字出現マップ連携テーブル211bとを統合して、アクセス頻度の高い順にソートする。統合後の文字出現マップ連携テーブル3900は、合計でn+m個のビット番号のアクセス頻度を有することとなる。このあと、アクセス頻度が各スレーブサーバー1502−1,1502−2において平準化するように、スレーブサーバー1502−1,1502−2ごとに割り当てる。
ここでは、アクセス頻度が高い順の順位が奇数番目となるビット番号について、スレーブサーバー1502−1に割り当てる新たな文字出現マップ連携テーブル3900aとする。一方、偶数番目となるビット番号について、スレーブサーバー1502−2に割り当てる新たな文字出現マップ連携テーブル3900bとする。割当方法としては、ここでは例として奇数番目と偶数番目としたが、一方のスレーブサーバー1502−1に対しては、1位,4位,5位,8位,9位…とし、他方のスレーブサーバー1502−2に対しては、2位,3位,6位,7位,10位…としてもよい。その他、割り当てた順位(またはアクセス頻度)の合計が均等になるように分配すればどのような割り当て方法でもよい。
図40は、ファイルパス連携テーブル212a,212bの再構成を示す説明図である。まず、アーカイブ200−1のファイルパス連携テーブル212aとアーカイブ200−2のファイルパス連携テーブル212bとを統合する。統合後のファイルパス連携テーブル4000は、合計でn+m個のビット番号のファイルパスを有することとなる。このあと、上述した文字出現マップ連携テーブル3900で採用された割当方法により、ビット番号を割り当てる。
これにより、一方のスレーブサーバー1502−1には、そのスレーブサーバー1502−1に割り当てられた文字出現マップ連携テーブル3900aのビット番号と同一ビット番号のファイルパス連携テーブル4000aが得られる。同様に、他方のスレーブサーバー1502−2には、そのスレーブサーバー1502−2に割り当てられた文字出現マップ連携テーブル3900bのビット番号と同一ビット番号のファイルパス連携テーブル4000bが得られる。
図41は、ファイルパステーブル222a,222bの再構成を示す説明図である。まず、アーカイブ200−1のファイルパステーブル222aとアーカイブ200−2のファイルパステーブル222bとを統合する。統合後のファイルパステーブル4100は、合計でn+m個のファイルIDのファイルパスを有することとなる。このあと、上述した文字出現マップ連携テーブル3900で採用された割当方法により、ビット番号に対応するファイルIDを割り当てる。
これにより、一方のスレーブサーバー1502−1には、そのスレーブサーバー1502−1に割り当てられた文字出現マップ連携テーブル3900aのビット番号と同一ビット番号に対応するファイルIDのファイルパステーブル4100aが得られる。同様に、他方のスレーブサーバー1502−2には、そのスレーブサーバー1502−2に割り当てられた文字出現マップ連携テーブル3900bのビット番号と同一ビット番号に対応するファイルIDのファイルパステーブル4100bが得られる。
図42は、単字出現マップMa1,Mb1の再構成を示す説明図である。まず、アーカイブ200−1の単字出現マップMa1とアーカイブ200−2の単字出現マップMb1とを統合する。統合後の単字出現マップMab1は、文字ごとに合計でn+m個のビットからなるビット列を有することとなる。このあと、上述した文字出現マップ連携テーブル3900で採用された割当方法により、ビット番号を割り当てる。
これにより、一方のスレーブサーバー1502−1には、そのスレーブサーバー1502−1に割り当てられた文字出現マップ連携テーブル3900aのビット番号と同一ビット番号となる単字出現マップMA1が得られる。同様に、他方のスレーブサーバー1502−2には、そのスレーブサーバー1502−2に割り当てられた文字出現マップ連携テーブル3900bのビット番号と同一ビット番号となる単字出現マップMB1が得られる。
図43は、連字出現マップMa2,Mb2の再構成を示す説明図である。まず、アーカイブ200−1の連字出現マップMa2とアーカイブ200−2の連字出現マップMb2とを統合する。統合後の連字出現マップMab2は、文字ごとに合計でn+m個のビットからなるビット列を有することとなる。このあと、上述した文字出現マップ連携テーブル3900で採用された割当方法により、ビット番号を割り当てる。
これにより、一方のスレーブサーバー1502−1には、そのスレーブサーバー1502−1に割り当てられた文字出現マップ連携テーブル3900aのビット番号と同一ビット番号となる連字出現マップMB1が得られる。同様に、他方のスレーブサーバー1502−2には、そのスレーブサーバー1502−2に割り当てられた文字出現マップ連携テーブル3900bのビット番号と同一ビット番号となる連字出現マップMB2が得られる。
図44は、圧縮ファイル群fa,fbの再構成を示す説明図である。まず、アーカイブ200−1の圧縮ファイル群faをそのハフマン木h−1を用いて伸長する。これにより、検索対象ファイル群Faが得られる。同様に、アーカイブ200−2の圧縮ファイル群fbをそのハフマン木h−2を用いて伸長する。これにより、検索対象ファイル群Fbが得られる。
つぎに、検索対象ファイル群Faを、共通ハフマン木Hを用いて再圧縮する。これにより、圧縮ファイル群gaが得られる。同様に、検索対象ファイル群Fbを、共通ハフマン木Hを用いて再圧縮する。これにより、圧縮ファイル群gbが得られる。
このあと、再圧縮された圧縮ファイル群gaおよび圧縮ファイル群gbを統合する。そして、上述した文字出現マップ連携テーブル3900で採用された割当方法により、アクセス頻度の高い順に並び替える。これにより、アクセス頻度順の統合圧縮ファイル群gが得られる。
これにより、一方のスレーブサーバー1502−1には、そのスレーブサーバー1502−1に割り当てられた文字出現マップ連携テーブル3900aのビット番号と同一ビット番号の圧縮ファイル群g1が割り当てられる。同様に、他方のスレーブサーバー1502−2には、そのスレーブサーバー1502−2に割り当てられた文字出現マップ連携テーブル3900bのビット番号と同一ビット番号の圧縮ファイル群g2が割り当てられる。
図45は、新アーカイブA1の記憶内容を示す説明図である。新アーカイブA1は、スレーブサーバー1502−1に配信される。新アーカイブA1には、図38に示した共通圧縮パラメータP、図39に示した再構成後の文字出現マップ連携テーブル3900a、図40に示した再構成後のファイルパス連携テーブル4000a、図41に示した再構成後のファイルパステーブル4100a、図42に示した再構成後の単字出現マップMA1、図43に示した再構成後の連字出現マップM2、図44に示した再構成後の圧縮ファイル群g1が格納される。
図46は、新アーカイブA2の記憶内容を示す説明図である。新アーカイブA2は、スレーブサーバー1502−2に配信される。新アーカイブA2には、図38に示した共通圧縮パラメータP、図39に示した再構成後の文字出現マップ連携テーブル3900b、図40に示した再構成後のファイルパス連携テーブル4000b、図41に示した再構成後のファイルパステーブル4100b、図42に示した再構成後の単字出現マップMB1、図43に示した再構成後の連字出現マップMB2、図44に示した再構成後の圧縮ファイル群g2が格納される。
(マスターサーバー1501の機能的構成)
図47は、マスターサーバー1501(情報管理装置)の機能的構成を示すブロック図である。マスターサーバー1501は、受信部4701と、共通圧縮パラメータ生成部4702と、共通ハフマン木生成部4703と、伸長部4704と、圧縮部4705と、再構成部4706と、送信部4707と、を含む構成である。受信部4701〜送信部4707は、具体的には、たとえば、図1に示したROM102、RAM103、磁気ディスク105などの記憶領域に記憶されたプログラムをCPU101に実行させることによって、または、I/F109によってその機能を実現する。
まず、受信部4701は、スレーブサーバー1502−Iから送信されてくるデータを受信する機能を有する。具体的には、たとえば、各スレーブサーバー1502−1〜1502−Nからアーカイブ200−1〜200−Nやハフマン木h−1〜h−Nを受信する。
共通圧縮パラメータ生成部4702は、全アーカイブ200−1〜200−Nに対する共通圧縮パラメータPを生成する機能を有する。具体的には、たとえば、図38に示したように、各スレーブサーバー1502−1,1502−2から受信されたアーカイブ200−1,200−2に含まれている圧縮パラメータP1,P2を抽出する。そして、抽出された各圧縮パラメータP1,P2の出現回数を同一文字ごとに集計することで、共通圧縮パラメータPを生成する。生成された共通圧縮パラメータPは、共通ハフマン木生成部4703とアーカイブ生成部4713に送られる。
共通ハフマン木生成部4703は、全アーカイブ200−1〜200−Nに対する共通ハフマン木Hを生成する機能を有する。具体的には、たとえば、共通圧縮パラメータPの出現回数の高い文字から2分探索で“0”と“1”を割り当てることにより、共通ハフマン木Hを生成する(図22、図23を参照。)。生成された共通ハフマン木は、伸長部4704とアーカイブ生成部4713に送られる。
伸長部4704は、アーカイブ200−Iごとに、アーカイブ200−Iに含まれている圧縮ファイル群fを伸長する機能を有する。伸長処理に用いられるハフマン木は、アーカイブ200−Iとともに送信されてきたハフマン木h−Iである。たとえば、図44に示したように、圧縮ファイル群faをその圧縮に用いられたハフマン木h−1で伸長することで、検索対象ファイル群Faを得る。同様に、圧縮ファイル群fbをその圧縮に用いられたハフマン木h−2で伸長することで、検索対象ファイル群Fbを得る。
圧縮部4705は、伸長部4704で伸長された検索対象ファイル群を再圧縮する機能を有する。再圧縮に用いられるハフマン木は共通ハフマン木Hである。たとえば、図44に示したように、検索対象ファイル群Faを共通ハフマン木Hで再圧縮することで、圧縮ファイル群gaを得る。同様に、検索対象ファイル群Fbをその圧縮に用いられたハフマン木Hで再圧縮することで、圧縮ファイル群gbを得る。圧縮ファイル群ga,gbは、統合部4711で統合される。
再構成部4706は、受信された各アーカイブ200−Iと各ハフマン木h−Iを再構成する機能を有する。再構成部4706は、統合部4711と、割当部4712と、アーカイブ生成部4713と、を有する。統合部4711は、アーカイブ200−I内のデータをそれぞれ統合する機能を有する。
具体的には、たとえば、図39〜図43に示したように、各アーカイブ200−1,200−2の文字出現マップ連携テーブル211a,211b、各ファイルパス連携テーブル212a,212b、各ファイルパステーブル222a,222b、各単字出現マップMa1,Mb1、各連字出現マップMa2,Mb2をそれぞれ統合して、統合後の文字出現マップ連携テーブル3900、統合後のファイルパス連携テーブル4000、統合後のファイルパステーブル4100、統合後の単字出現マップMab1、統合後の連字出現マップMab2を得る。
また、統合部4711は、図44に示したように、圧縮部4705によってアーカイブ200−1,200−2ごとに再圧縮された圧縮ファイル群ga,gbを統合して、統合後の圧縮ファイル群gを得る。
割当部4712は、統合されたデータをアーカイブ別に、各スレーブサーバー1502−Iにおいて割当後のアクセス頻度が均等になるように、統合部4711によって統合されたデータをスレーブサーバー1502−Iごとに割り当てる機能を有する。
具体的には、たとえば、図39に示したように、統合後の文字出現マップ連携テーブル3900のレコードを、アクセス頻度またはその順位が均等になるように割り当てて、スレーブサーバー1502−1,1502−2ごとに再構成された文字出現マップ連携テーブル3900a,3900bを得る。
また、図40〜図43に示した統合後のファイルパス連携テーブル4000、統合後のファイルパステーブル4100、統合後の単字出現マップMab1、統合後の連字出現マップMab2についても同様である。また、割当部4712は、図44に示したように、統合後の圧縮ファイル群gについても、アクセス頻度またはその順位が均等になるように割り当てて、スレーブサーバー1502−1,1502−2ごとに再構成された圧縮ファイル群g1,g2を得る。
アーカイブ生成部4713は、スレーブサーバー1502−Iごとに再構成された新アーカイブを生成する機能を有する。具体的には、たとえば、スレーブサーバー1502−1,1502−2ごとに割り当てられたデータを、スレーブサーバー1502−1,1502−2ごとにまとめて、図45および図46に示したような新アーカイブA1,A2とする。
送信部4707は、各スレーブサーバー1502−Iにデータを配信する機能を有する。具体的には、たとえば、アーカイブ200−1〜200−Nやハフマン木h−1〜h−Nの収集リクエストを配信する。また、再構成部4706によって再構成された新アーカイブA1(A2)と共通ハフマン木Hとを組み合わせて、割当先となるスレーブサーバー1502−1(1502−2)にそれぞれ配信する。
(再構成処理手順)
つぎに、マスターサーバー1501によるアーカイブ再構成処理手順について説明する。図48および図49は、マスターサーバー1501によるアーカイブ再構成処理手順を示すフローチャートである。図48において、まず、受信部4701により、各スレーブサーバー1502−1〜1502−Nのアーカイブ200−1〜200−Nとハフマン木h−1〜h−Nとを収集する(ステップS4801)。
つぎに、統合部4711により、アーカイブ200−1,200−2内の文字出現マップ連携テーブル211a,211bを抽出して統合する(ステップS4802)。そして、割当部4712により、統合後の文字出現マップ連携テーブル3900をアクセス頻度の高い順(降順)にソートして(ステップS4803)、スレーブサーバー1502−1,1502−2ごとに文字出現マップ連携テーブル3900a,3900bを割り当てる(ステップS4804)。
つぎに、各ファイルパステーブル222a,222b、各ファイルパス連携テーブル212a,212b、および各文字出現マップMa,Mbを統合し、アクセス頻度の高いビット番号(または対応するファイルID)にしたがって、スレーブサーバー1502−1,1502−2ごとに割り当てることで再構成する(ステップS4805)。
そして、共通圧縮パラメータ生成部4702により、共通圧縮パラメータPを生成し(ステップS4806)、この共通圧縮パラメータPを用いて、共通ハフマン木生成部4703により、共通ハフマン木Hを生成する(ステップS4807)。
つぎに、図49において、伸長部4704により、アーカイブ200−1,200−2ごとの圧縮ファイル群fa,fbをその圧縮に用いたハフマン木h−1,h−2で伸長する(ステップS4901)。そして、圧縮部4705により、アーカイブ200−1,200−2ごとに伸長された検索対象ファイル群Fa,Fbを共通ハフマン木Hで再圧縮する(ステップS4902)。つぎに、統合部4711により、再圧縮された各圧縮ファイル群ga,gbを統合して(ステップS4903)、アクセス頻度の高いビット番号順(降順)にソートする(ステップS4904)。
このあと、割当部4712により、アクセス頻度またはその順位の合計が均等になるように、各スレーブサーバー1502−1,1502−2に割り当てる(ステップS4905)。そして、アーカイブ生成部4713により、スレーブサーバー1502−1,1502−2ごとの新アーカイブA1,A2を生成して(ステップS4906)、新アーカイブA1(A2)および共通ハフマン木Hを各新アーカイブA1(A2)の割当先となるスレーブサーバー1502−1(1502−2)に配信する(ステップS4907)。これにより、一連の処理を終了する。
このように、実施の形態2によれば、各スレーブサーバー1502−1,1502−2のアーカイブ200−1,200−2を再構成することで、スレーブサーバー1502−1,1502−2の検索速度の均一化を図ることができる。したがって、同一の検索文字列を各スレーブサーバー1502−1,1502−2に与えた場合、ほぼ同時に検索結果が各スレーブサーバー1502−1,1502−2から返ってくる。すなわち、最後の検索結果が返ってくるまでの待ち時間が短縮化されるため、検索速度の向上を図ることができる。
<実施の形態3>
つぎに、実施の形態3について説明する。実施の形態3は、実施の形態2の一部を改良した構成である。実施の形態2では、各アーカイブ200−Iの圧縮ファイル群を、その圧縮に用いられたハフマン木h−Iでそれぞれ伸長する工程と、伸長された検索対象ファイル群を共通ハフマン木Hで再圧縮する工程とを実行する。この伸長および再圧縮という2パス処理をおこなっておくことにより、各スレーブサーバー1502−Iにおいて、共通ハフマン木Hを用いて圧縮/伸長することができる構成としている。
これに対し、実施の形態3では、ハフマン木の伸長処理を利用して、スレーブサーバー1502−Iごとのハフマン木の葉に埋め込まれている伸長文字と同一文字の葉を、共通ハフマン木Hから特定する。そして、共通ハフマン木Hの特定された葉に割り当てられた圧縮符号を、特定元となるハフマン木h−Iの葉の伸長文字のかわりに設定する。設定後のハフマン木を変換用ハフマン木と称す。
そして、変換用ハフマン木を用いて、設定前のハフマン木h−Iで圧縮した圧縮ファイル群の伸長処理を施すことにより、圧縮ファイル群が、共通ハフマン木Hの圧縮符号に対応する圧縮ファイル群に変換される。このように、1回の変換処理という1パス処理により、圧縮形式のまま共通ハフマン木Hの圧縮符号に対応する圧縮ファイル群をスレーブサーバー1502−Iごとに得ることができる。したがって、マスターサーバー1501における再構成処理の高速化を実現することができる。
なお、上述した実施の形態1,2と同一構成には同一符号を付し、その説明を省略する。また、実施の形態3においても、説明の簡略化のため、マスターサーバー1502−Iの数を2台(N=2)として説明する。
図50は、変換用ハフマン木の生成例(その1)を示す説明図である。図50では、アーカイブ200−1のハフマン木h−1と共通ハフマン木Hとを用いた生成例を示している。ここで、ハフマン木h−1の文字「b」が設定されている葉に注目する。まず、この注目葉の文字「b」と同一文字が設定されている共通ハフマン木の葉を特定する(ステップS5001)。つぎに、特定された共通ハフマン木の葉の文字「b」に割り当てられている圧縮符号「110」およびその圧縮符号長(この例では3)を読み出す(ステップS5002)。そして、注目葉に設定されている文字「b」に代えて、読み出された圧縮符号およびその圧縮符号長「110(3)」を書き込む(ステップS5003)。他の文字a,c〜fについても同様に変換する。
図51は、変換用ハフマン木の生成例(その2)を示す説明図である。図51では、アーカイブ200−2のハフマン木h−2と共通ハフマン木Hとを用いた生成例を示している。ここで、ハフマン木h−2の文字「f」が設定されている葉に注目する。まず、この注目葉の文字「f」と同一文字が設定されている共通ハフマン木の葉を特定する(ステップS5101)。つぎに、特定された共通ハフマン木の葉の文字「f」に割り当てられている圧縮符号「1110」およびその圧縮符号長(この例では4)を読み出す(ステップS5102)。そして、注目葉に設定されている文字「f」に代えて、読み出された圧縮符号およびその圧縮符号長「1110(4)」を書き込む(ステップS5103)。他の文字a〜eについても同様に変換する。
図52は、変換用ハフマン木を示す説明図(その1)である。この変換用ハフマン木H1は、図50に示したアーカイブ200−1のハフマン木h−1と共通ハフマン木Hとを用いた生成処理により生成されたハフマン木である。この変換用ハフマン木H1を用いて、たとえば、圧縮符号「1110」が割り当てられた伸長文字に伸長しようとすると、図50に示した文字「b」に伸長されるのではなく、文字「b」の代わりに設定された圧縮符号「110」に変換される。したがって、圧縮ファイルの伸長および再圧縮という2パス処理が不要となり、圧縮形式のまま1パス処理により、共通ハフマン木Hで圧縮/伸長可能な圧縮ファイルを得ることができる。
図53は、変換用ハフマン木を示す説明図(その2)である。この変換用ハフマン木H2は、図51に示したアーカイブ200−2のハフマン木h−2と共通ハフマン木Hとを用いた生成処理により生成されたハフマン木である。この変換用ハフマン木H2を用いて、たとえば、圧縮符号「1111」が割り当てられた伸長文字に伸長しようとすると、図51に示した文字「f」に伸長されるのではなく、文字「f」の代わりに設定された圧縮符号「1110」に変換される。したがって、圧縮ファイルの伸長および再圧縮という2パス処理が不要となり、圧縮形式のまま1パス処理により、共通ハフマン木Hで圧縮/伸長可能な圧縮ファイルを得ることができる。
(マスターサーバー1501の機能的構成)
図54は、実施の形態3にかかるマスターサーバー1501(情報管理装置)の機能的構成を示すブロック図である。マスターサーバー1501は、実施の形態2で説明した構成のほか、選択部5401と、特定部5402と、設定部5403と、変換部5404と、を含む構成である。選択部5401〜変換部5404は、具体的には、たとえば、図1に示したROM102、RAM103、磁気ディスク105などの記憶領域に記憶されたプログラムをCPU101に実行させることによって、または、I/F109によってその機能を実現する。
選択部5401は、アーカイブ200−Iごとに、当該アーカイブ200−I内の圧縮ファイル群の圧縮に用いられたハフマン木h−Iから任意の葉を順次選択する機能を有する。具体的には、たとえば、図50および図51に示したハフマン木h−Iの葉を順次選択する。
特定部5402は、選択部5401によって順次選択された葉で伸長される文字と同一文字の葉を、共通ハフマン木Hから特定する機能を有する。具体的には、図50および図51で示したように、同一文字が設定されている共通ハフマン木Hの葉を特定する。
設定部5403は、ハフマン木h−Iにおいて選択された葉に、当該選択された葉で伸長される文字に代えて、特定部5402によって特定された葉に割り当てられた圧縮符号を設定する機能を有する。具体的には、選択された葉の構造体中、伸長文字が書き込まれている領域に、共通ハフマン木Hから特定された圧縮符号を上書きする。また、その他の空き領域に圧縮符号長を書き込んでおく。なお、この設定対象となる葉の構造体では、上位節点へのポインタはそのままであるため、その選択された葉に割り当てられた圧縮符号を指定することで、葉の構造体に書き込まれた圧縮符号に変換される。
変換部5404は、変換用ハフマン木H1,H2を用いて、その変換前のハフマン木h−1,h−2で圧縮された圧縮ファイルを圧縮形式のまま変換する機能を有する。これにより、共通ハフマン木Hで圧縮/伸長可能な圧縮ファイル群ga,gbとなる。なお、変換後の圧縮ファイル群ga,gbは、実施の形態2と同様、統合部4711により統合され、割当部4712によりアクセス頻度またはその順位の合計が均等になるように、スレーブサーバー1502−1,1502−2ごとに割り当てられる。
(再構成処理手順)
つぎに、実施の形態3におけるマスターサーバー1501によるアーカイブ再構成処理手順について説明する。図55は、マスターサーバー1501によるアーカイブ再構成処理手順(後半)を示すフローチャートである。なお、再構成処理手順(前半)は、図48と同一であるため、説明を省略する。
まず、ハフマン木h−1,h−2への圧縮符号設定処理を実行する(ステップS5501)。つぎに、変換部5404により、1パス変換処理を実行する(ステップS5502)。1パス変換処理は、アーカイブ200−1,200−2ごとに得られた変換用ハフマン木H1,H2を用いて、アーカイブ200−1,200−2内の圧縮ファイル群ga,gbごとに実行する。
そして、統合部4711により、変換後の圧縮ファイル群ga,gbを統合し(ステップS5503)、アクセス頻度の高い順(降順)にソートする(ステップS5504)。このあと、割当部4712により、アクセス頻度またはその順位の合計が均等になるように、各スレーブサーバー1502−1,1502−2に割り当てる(ステップS5505)。
そして、アーカイブ生成部4713により、スレーブサーバー1502−1,1502−2ごとの新アーカイブA1,A2を生成して(ステップS5506)、新アーカイブA1(A2)および共通ハフマン木Hを各新アーカイブA1(A2)の割当先となるスレーブサーバー1502−1(1502−2)に配信する(ステップS5507)。これにより、一連の処理を終了する。
図56は、ハフマン木への圧縮符号設定処理の詳細な処理手順を示すフローチャートである。まず、選択部5401により、各アーカイブ200−1,200−2のハフマン木h−1,h−2の中から、未処理のハフマン木があるか否かを判断する(ステップS5601)。未処理のハフマン木がある場合(ステップS5601:Yes)、未処理のハフマン木を1つ選択する(ステップS5602)。そして、選択ハフマン木の中に未処理の葉があるか否かを判断する(ステップS5603)。
未処理の葉がある場合(ステップS5603:Yes)、未処理の葉を1つ選択する(ステップS5604)。そして、特定部5402により、共通ハフマン木Hから選択葉に設定されている文字と同一文字が設定されている葉を特定する(ステップS5605)。このあと、設定部5403により、特定された葉に割り当てられた圧縮符号とその圧縮符号長を、選択葉の構造体に設定して(ステップS5606)、ステップS5603に戻る。
ステップS5603において、未処理の葉がない場合(ステップS5603:No)、ステップS5601に戻る。ステップS5601において、未処理のハフマン木がない場合(ステップS5601:No)、1パス変換処理(ステップS5502)に移行する。
このように、実施の形態3によれば、ハフマン木の伸長処理という既存の処理を利用することで、1回の変換処理という1パス処理により、圧縮形式のまま共通ハフマン木の圧縮符号に対応する圧縮ファイル群をスレーブサーバー1502−1,1502−2ごとに得ることができる。したがって、共通ハフマン木Hに適用させるためのファイルオープン処理(伸長処理)が不要となり、マスターサーバー1501におけるアーカイブ再構成処理の高速化を実現することができる。また、ハフマン木の伸長処理という既存の処理を応用しているため、あらたなアルゴリズムを構築することなく、シンプルな構成でアーカイブ200再構成処理を実現することができる。
以上のことから、上述した実施の形態1〜3によれば、圧縮ファイルに対して圧縮形式のままで全文検索を実現する際に、ファイルアクセス処理の高速化を図ることにより検索処理の効率化を実現することができる。また、キャッシュ領域による常駐メモリ化や各サーバー資源の効率化により、全文検索の高速化を実現することができる。
なお、本実施の形態で説明した方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブにアクセス可能なコンピュータを、
前記各圧縮ファイルへのアクセス頻度の高い順に並び替える並び替え手段、
前記圧縮ファイル群が記憶されている記憶領域に対するキャッシュ領域の記憶容量を超えないように、前記並び替え手段による並び替え後のアクセス頻度の高い順から前記圧縮ファイルのサイズを積算する積算手段、
前記積算手段によって積算された圧縮ファイル群を、当該ファイル群の検索に先立って、前記記憶領域からキャッシュ領域に書き込む書込み手段、
として機能させることを特徴とする情報検索プログラム。
(付記2)前記積算手段は、
前記キャッシュ領域の記憶容量を超えない最大の積算値となるように、前記並び替え手段による並び替え後のアクセス頻度の高い順から前記圧縮ファイルのサイズを積算し、
前記書込み手段は、
前記最大の積算値として積算された圧縮ファイル群を、当該ファイル群の検索に先立って、前記記憶領域からキャッシュ領域に書き込む書込み手段、
として機能させることを特徴とする情報検索プログラム。
(付記3)前記コンピュータを、
前記書込み手段によって前記キャッシュ領域に書き込まれた圧縮ファイル群について常駐フラグを設定する設定手段、
検索文字列の入力を受け付ける入力手段、
前記圧縮ファイルごとの文字の存否を特定する文字出現マップを参照することにより、前記入力手段によって入力された検索文字列を構成するすべての文字が存在する圧縮ファイルを特定する特定手段、
前記特定手段によって特定された圧縮ファイルを、前記設定手段によって設定された常駐フラグに基づく領域から読み出す読出し手段、
前記読出し手段によって読み出された圧縮ファイルを伸長する伸長手段、
前記伸長手段によって伸長された検索対象ファイルを出力する出力手段、
として機能させることを特徴とする付記1または2に記載の情報検索プログラム。
(付記4)前記コンピュータを、
前記伸長手段によって伸長された検索対象ファイルの中から前記検索文字列に一致または関連する文字列を検索する検索手段として機能させ、
前記出力手段は、
前記検索手段によって検索された検索結果を出力することを特徴とする付記3に記載の情報検索プログラム。
(付記5)前記コンピュータを、
前記伸長手段によって前記圧縮ファイルが伸長された場合、当該圧縮ファイルへのアクセス頻度を更新する更新手段として機能させ、
前記並び替え手段は、
前記更新手段によって更新された更新後のアクセス頻度に基づいて、前記各圧縮ファイルへのアクセス頻度の高い順に並び替えることを特徴とする付記3または4に記載の情報検索プログラム。
(付記6)前記コンピュータを、
前記検索手段によって検索対象ファイルが検索された場合、当該検索対象ファイルが圧縮された圧縮ファイルへのアクセス頻度を更新する更新手段として機能させ、
前記並び替え手段は、
前記更新手段によって更新された更新後のアクセス頻度に基づいて、前記各圧縮ファイルへのアクセス頻度の高い順に並び替えることを特徴とする付記4に記載の情報検索プログラム。
(付記7)文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブを記憶する複数のスレーブサーバーにアクセス可能なマスターサーバーを、
前記各スレーブサーバーから前記アーカイブを受信する受信手段、
前記受信手段によって受信されたアーカイブごとの前記検索対象ファイル群に記述されている各文字および当該各文字の出現頻度に関する圧縮パラメータに基づいて、前記出現頻度を前記文字ごとに集計することにより、前記各圧縮ファイル群に共通の圧縮パラメータを生成する圧縮パラメータ生成手段、
前記圧縮パラメータ生成手段によって生成された共通の圧縮パラメータに基づいて、前記各圧縮ファイル群に共通のハフマン木を生成する共通ハフマン木生成手段、
前記圧縮ファイルへのアクセス頻度の合計が互いに近似するように、前記各スレーブサーバーに前記圧縮ファイルを割り当てる割当手段、
前記割当手段によって前記各スレーブサーバーに割り当てられた圧縮ファイル群を含むあらたなアーカイブと前記共通ハフマン木生成手段によって生成された共通のハフマン木とを、割当先となるスレーブサーバーに送信する送信手段、
として機能させることを特徴とする情報管理プログラム。
(付記8)前記マスターサーバーを、
前記アーカイブごとに、当該アーカイブに含まれている圧縮ファイル群を、当該圧縮ファイル群の圧縮に用いられた圧縮パラメータに基づくハフマン木により伸長する伸長手段、
前記伸長手段によって伸長された検索対象ファイル群を、前記共通のハフマン木により圧縮する圧縮手段として機能させ、
前記割当手段は、
前記圧縮手段によって圧縮された再圧縮ファイルの元となる圧縮ファイルへのアクセス頻度の合計が互いに近似するように、前記各スレーブサーバーに前記再圧縮ファイルを割り当て、
前記送信手段は、
前記再圧縮ファイル群を含むあらたなアーカイブと前記共通のハフマン木とを、前記割当先となるスレーブサーバーに送信することを特徴とする付記7に記載の情報管理プログラム。
(付記9)前記マスターサーバーを、
前記アーカイブごとに、当該アーカイブ内の圧縮ファイル群の圧縮に用いられたハフマン木から任意の葉を順次選択する選択手段、
前記選択手段によって順次選択された葉で伸長される文字と同一文字の葉を、前記共通のハフマン木から特定する特定手段、
前記ハフマン木における前記選択された葉に、当該選択された葉で伸長される文字に代えて、前記特定手段によって特定された葉に割り当てられた圧縮符号を設定する設定手段、
前記設定手段による設定後のハフマン木を用いて、前記アーカイブ内の圧縮ファイル群を、前記設定手段によって設定された圧縮符号で圧縮された圧縮ファイル群に変換する変換手段として機能させ、
前記割当手段は、
前記変換手段によって変換された変換後の圧縮ファイルの変換元となる圧縮ファイルへのアクセス頻度の合計が互いに近似するように、前記各スレーブサーバーに前記変換後の圧縮ファイルを割り当て、
前記送信手段は、
前記変換手段による変換後の圧縮ファイル群を含むアーカイブと前記共通のハフマン木とを、前記割当先となるスレーブサーバーに送信することを特徴とする付記7に記載の情報管理プログラム。
(付記10)前記割当手段は、
前記アクセス頻度の順位の合計が互いに近似するように割り当てることを特徴とする付記7〜9のいずれか一つに記載の情報管理プログラム。
(付記11)文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブにアクセス可能な情報検索装置であって、
前記各圧縮ファイルへのアクセス頻度の高い順に並び替える並び替え手段と、
前記圧縮ファイル群が記憶されている記憶領域に対するキャッシュ領域の記憶容量を超えないように、前記並び替え手段による並び替え後のアクセス頻度の高い順から前記圧縮ファイルのサイズを積算する積算手段と、
前記積算手段によって積算された圧縮ファイル群を、当該ファイル群の検索に先立って、前記記憶領域からキャッシュ領域に書き込む書込み手段と、
を備えることを特徴とする情報検索装置。
(付記12)文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブを記憶する複数のスレーブサーバーにアクセス可能な情報管理装置であって、
前記各スレーブサーバーから前記アーカイブを受信する受信手段と、
前記受信手段によって受信されたアーカイブごとの前記検索対象ファイル群に記述されている各文字および当該各文字の出現頻度に関する圧縮パラメータに基づいて、前記出現頻度を前記文字ごとに集計することにより、前記各圧縮ファイル群に共通の圧縮パラメータを生成する圧縮パラメータ生成手段と、
前記圧縮パラメータ生成手段によって生成された共通の圧縮パラメータに基づいて、前記各圧縮ファイル群に共通のハフマン木を生成する共通ハフマン木生成手段と、
前記圧縮ファイルへのアクセス頻度の合計が互いに近似するように、前記各スレーブサーバーに前記圧縮ファイルを割り当てる割当手段と、
前記割当手段によって前記各スレーブサーバーに割り当てられた圧縮ファイル群を含むあらたなアーカイブと前記共通ハフマン木生成手段によって生成された共通のハフマン木とを、割当先となるスレーブサーバーに送信する送信手段と、
を備えることを特徴とする情報管理装置。
(付記13)文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブにアクセス可能な情報検索装置が、
前記各圧縮ファイルへのアクセス頻度の高い順に並び替える並び替え工程と、
前記圧縮ファイル群が記憶されている記憶領域に対するキャッシュ領域の記憶容量を超えないように、前記並び替え工程による並び替え後のアクセス頻度の高い順から前記圧縮ファイルのサイズを積算する積算工程と、
前記積算工程によって積算された圧縮ファイル群を、当該ファイル群の検索に先立って、前記記憶領域からキャッシュ領域に書き込む書込み工程と、
を実行することを特徴とする情報検索方法。
(付記14)文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブを記憶する複数のスレーブサーバーにアクセス可能なマスターサーバーが、
前記各スレーブサーバーから前記アーカイブを受信する受信工程と、
前記受信工程によって受信されたアーカイブごとの前記検索対象ファイル群に記述されている各文字および当該各文字の出現頻度に関する圧縮パラメータに基づいて、前記出現頻度を前記文字ごとに集計することにより、前記各圧縮ファイル群に共通の圧縮パラメータを生成する圧縮パラメータ生成工程と、
前記圧縮パラメータ生成工程によって生成された共通の圧縮パラメータに基づいて、前記各圧縮ファイル群に共通のハフマン木を生成する共通ハフマン木生成工程と、
前記圧縮ファイルへのアクセス頻度の合計が互いに近似するように、前記各スレーブサーバーに前記圧縮ファイルを割り当てる割当工程と、
前記割当工程によって前記各スレーブサーバーに割り当てられた圧縮ファイル群を含むあらたなアーカイブと前記共通ハフマン木生成工程によって生成された共通のハフマン木とを、割当先となるスレーブサーバーに送信する送信工程と、
を実行することを特徴とする情報管理方法。
1100 情報検索装置
1101 並び替え処理部
1102 積算部
1103 書込み部
1104 設定部
1105 入力部
1106 特定部
1107 読出し部
1108 伸長部
1109 検索部
1110 出力部
1111 更新部
1500 検索システム
1501 マスターサーバー
1502 スレーブサーバー群
4701 受信部
4702 共通圧縮パラメータ生成部
4703 共通ハフマン木生成部
4704 伸長部
4705 圧縮部
4706 再構成部
4707 送信部
4711 統合部
4712 割当部
4713 アーカイブ生成部
5401 選択部
5402 特定部
5403 設定部
5404 変換部

Claims (3)

  1. 文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブを記憶する複数のスレーブサーバーにアクセス可能なマスターサーバーを、
    前記各スレーブサーバーから前記アーカイブを受信する受信手段、
    前記受信手段によって受信されたアーカイブごとの前記検索対象ファイル群に記述されている各文字および当該各文字の出現頻度に関する圧縮パラメータに基づいて、前記出現頻度を前記文字ごとに集計することにより、前記各圧縮ファイル群に共通の圧縮パラメータを生成する圧縮パラメータ生成手段、
    前記圧縮パラメータ生成手段によって生成された共通の圧縮パラメータに基づいて、前記各圧縮ファイル群に共通のハフマン木を生成する共通ハフマン木生成手段、
    前記圧縮ファイルへのアクセス頻度の合計が互いに近似するように、前記各スレーブサーバーに前記圧縮ファイルを割り当てる割当手段、
    前記割当手段によって前記各スレーブサーバーに割り当てられた圧縮ファイル群を含むあらたなアーカイブと前記共通ハフマン木生成手段によって生成された共通のハフマン木とを、割当先となるスレーブサーバーに送信する送信手段、
    として機能させることを特徴とする情報管理プログラム。
  2. 文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブを記憶する複数のスレーブサーバーにアクセス可能な情報管理装置であって、
    前記各スレーブサーバーから前記アーカイブを受信する受信手段と、
    前記受信手段によって受信されたアーカイブごとの前記検索対象ファイル群に記述されている各文字および当該各文字の出現頻度に関する圧縮パラメータに基づいて、前記出現頻度を前記文字ごとに集計することにより、前記各圧縮ファイル群に共通の圧縮パラメータを生成する圧縮パラメータ生成手段と、
    前記圧縮パラメータ生成手段によって生成された共通の圧縮パラメータに基づいて、前記各圧縮ファイル群に共通のハフマン木を生成する共通ハフマン木生成手段と、
    前記圧縮ファイルへのアクセス頻度の合計が互いに近似するように、前記各スレーブサーバーに前記圧縮ファイルを割り当てる割当手段と、
    前記割当手段によって前記各スレーブサーバーに割り当てられた圧縮ファイル群を含むあらたなアーカイブと前記共通ハフマン木生成手段によって生成された共通のハフマン木とを、割当先となるスレーブサーバーに送信する送信手段と、
    を備えることを特徴とする情報管理装置。
  3. 文字列が記述された検索対象ファイルが圧縮された圧縮ファイル群を含むアーカイブを記憶する複数のスレーブサーバーにアクセス可能なマスターサーバーが、
    前記各スレーブサーバーから前記アーカイブを受信する受信工程と、
    前記受信工程によって受信されたアーカイブごとの前記検索対象ファイル群に記述されている各文字および当該各文字の出現頻度に関する圧縮パラメータに基づいて、前記出現頻度を前記文字ごとに集計することにより、前記各圧縮ファイル群に共通の圧縮パラメータを生成する圧縮パラメータ生成工程と、
    前記圧縮パラメータ生成工程によって生成された共通の圧縮パラメータに基づいて、前記各圧縮ファイル群に共通のハフマン木を生成する共通ハフマン木生成工程と、
    前記圧縮ファイルへのアクセス頻度の合計が互いに近似するように、前記各スレーブサーバーに前記圧縮ファイルを割り当てる割当工程と、
    前記割当工程によって前記各スレーブサーバーに割り当てられた圧縮ファイル群を含むあらたなアーカイブと前記共通ハフマン木生成工程によって生成された共通のハフマン木とを、割当先となるスレーブサーバーに送信する送信工程と、
    を実行することを特徴とする情報管理方法。
JP2013076465A 2013-04-01 2013-04-01 情報管理プログラム、情報管理装置および情報管理方法 Active JP5494860B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013076465A JP5494860B2 (ja) 2013-04-01 2013-04-01 情報管理プログラム、情報管理装置および情報管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013076465A JP5494860B2 (ja) 2013-04-01 2013-04-01 情報管理プログラム、情報管理装置および情報管理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008143527A Division JP5782214B2 (ja) 2008-05-30 2008-05-30 情報検索プログラム、情報検索装置および情報検索方法

Publications (2)

Publication Number Publication Date
JP2013168163A true JP2013168163A (ja) 2013-08-29
JP5494860B2 JP5494860B2 (ja) 2014-05-21

Family

ID=49178455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013076465A Active JP5494860B2 (ja) 2013-04-01 2013-04-01 情報管理プログラム、情報管理装置および情報管理方法

Country Status (1)

Country Link
JP (1) JP5494860B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016134100A (ja) * 2015-01-21 2016-07-25 富士通株式会社 文書処理プログラム、情報処理装置および文書処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04274557A (ja) * 1991-02-28 1992-09-30 Hitachi Ltd フルテキストサーチ方法
WO2006123448A1 (ja) * 2005-05-20 2006-11-23 Fujitsu Limited 情報検索プログラム
WO2008057815A2 (en) * 2006-11-01 2008-05-15 Ab Initio Technology Llc Managing storage of individually accessible data units

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04274557A (ja) * 1991-02-28 1992-09-30 Hitachi Ltd フルテキストサーチ方法
WO2006123448A1 (ja) * 2005-05-20 2006-11-23 Fujitsu Limited 情報検索プログラム
WO2008057815A2 (en) * 2006-11-01 2008-05-15 Ab Initio Technology Llc Managing storage of individually accessible data units

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016134100A (ja) * 2015-01-21 2016-07-25 富士通株式会社 文書処理プログラム、情報処理装置および文書処理方法

Also Published As

Publication number Publication date
JP5494860B2 (ja) 2014-05-21

Similar Documents

Publication Publication Date Title
JP5782214B2 (ja) 情報検索プログラム、情報検索装置および情報検索方法
US11146614B2 (en) Distributed computing on document formats
CN102541751B (zh) 用于数据去重复的可缩放块存储的方法和系统
US9514179B2 (en) Table boundary detection in data blocks for compression
US20160055220A1 (en) Data driven relational algorithm formation for execution against big data
CN110291518A (zh) 合并树无用单元指标
US8799291B2 (en) Forensic index method and apparatus by distributed processing
CN104881466B (zh) 数据分片的处理以及垃圾文件的删除方法和装置
CN102893265B (zh) 管理可独立访问的数据单元的存储
EP0627697B1 (en) Indexing/compression scheme for supporting graphics and data selection
US10810174B2 (en) Database management system, database server, and database management method
WO2014034383A1 (ja) 情報処理装置、レコード位置情報特定方法および情報処理プログラム
JPH09245043A (ja) 情報検索装置
JP2013045208A (ja) データ生成方法、装置及びプログラム、検索処理方法、装置及びプログラム
JP2018045285A (ja) 情報処理システム、制御装置、処理プログラム、及び処理方法
US11663177B2 (en) Systems and methods for extracting data in column-based not only structured query language (NoSQL) databases
JP5494860B2 (ja) 情報管理プログラム、情報管理装置および情報管理方法
EP2856359B1 (en) Systems and methods for storing data and eliminating redundancy
JP6006740B2 (ja) インデックス管理装置
CN104714985B (zh) 一种提升表单审批效率的方法及装置
JP6931442B2 (ja) 符号化プログラム、インデックス生成プログラム、検索プログラム、符号化装置、インデックス生成装置、検索装置、符号化方法、インデックス生成方法および検索方法
JP2011164830A (ja) グラフ可視化装置及びグラフ可視化方法及びグラフ可視化プログラム
JP6103021B2 (ja) データ生成方法、装置及びプログラム、検索処理方法、装置及びプログラム
CN111489122B (zh) 一种基于浏览器编辑及展示多条bom数据的方法、设备及可读存储介质
JP2016062522A (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: 20140204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140217

R150 Certificate of patent or registration of utility model

Ref document number: 5494860

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150