JP2011210094A - 検索機能付きファイルストレージ装置及びプログラム - Google Patents

検索機能付きファイルストレージ装置及びプログラム Download PDF

Info

Publication number
JP2011210094A
JP2011210094A JP2010078583A JP2010078583A JP2011210094A JP 2011210094 A JP2011210094 A JP 2011210094A JP 2010078583 A JP2010078583 A JP 2010078583A JP 2010078583 A JP2010078583 A JP 2010078583A JP 2011210094 A JP2011210094 A JP 2011210094A
Authority
JP
Japan
Prior art keywords
file
file system
configuration
search function
control unit
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
JP2010078583A
Other languages
English (en)
Other versions
JP5441791B2 (ja
Inventor
Daishi Ukai
大志 鵜飼
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.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions 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 Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2010078583A priority Critical patent/JP5441791B2/ja
Publication of JP2011210094A publication Critical patent/JP2011210094A/ja
Application granted granted Critical
Publication of JP5441791B2 publication Critical patent/JP5441791B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】大幅に小さな空間に文書とその索引の情報を収容できるファイルシステムとプログラムを提供する。
【解決手段】ファイルシステム制御部と、構成情報ファイルシステムとを有する検索機能付きファイルストレージ装置において、ファイルシステム制御部が、N-gramインデクスの作成に使用された原始ファイルの構成文字列を、その配列順に重複なくかつ抜けなく再構成できるように、N-gramインデクスの各項目を表す符号の一部を配列した構成ファイルを生成する。
【選択図】図3

Description

本発明は、検索機能を有するファイルストレージ装置と当該装置の動作を制御するプログラムに関する。
近年、全文検索技術は急速に進歩しつつある。その一方で、全文検索技術が対象とするデータ量の巨大化に伴い、幾つかの課題が指摘されている。
指摘の一つは、索引(以下、「インデクス」という。)の肥大化である。特に、テキストファイル(人間が直接理解可能な形式のファイル)を索引付けする場合、インデクスの規模は、索引付けの対象となったファイルとほぼ等しい大きさになる。結果的に、ファイルそのものの内容(以下、「コンテンツ」という。)の2倍の容量が必要となる。
指摘の1つは、コンテンツとインデクスの間で同種の情報を二重に保持することに伴う情報の一貫性である。すなわち、情報の一貫性を両者間で保持することの困難性についての指摘である。
これらの問題のうち前者については、例えば特許文献1に示す方法が提案されている。すなわち、nグラム構造に特殊な情報を付与し、インデクスの規模を抑制する方法が提案されている。一方、これら問題のうち後者については、例えば特許文献2に示す方法が提案されている。すなわち、ファイルシステムの内部にインデクスを設け、コンテンツとインデクスが一致しない期間を短縮する方法が提案されている。なお、この方法では、ファイルシステム全体を走査することなく、効率的にインデクスを構築する工夫が広く行われている。
しかし、特許文献1に記載の方法は、インデクスの容量を抑制できたとしても、コンテンツが使用する容量を抑制することはできない。また、この方法は、インデクスの構築/更新時に、ファイルシステム全体の走査を必要とする。従って、コンテンツがファイルシステムに登録された後も、それらが走査されてインデクスが構築されるまでの間、コンテンツとインデクスの内容が一致しない期間が発生する。
一方、特許文献2に記載の方法は、利用者に対してファイルシステムとして振る舞い、新たなコンテンツがシステムに登録される契機を自ら検出することができる。このため、ファイルシステムの全体を走査しなくても、インデクスを構築することができる。従って、特許文献1のようにコンテンツとインデクスとの間に不整合が生じる期間は生じないか、少なくとも期間を短縮できる。しかし、特許文献2の方法は、ファイルシステムの内部において、コンテンツとインデクスをそれぞれ独立したデータとして取り扱う。このため、コンテンツとインデクスで同種の情報を二重に持つことに変わりはない。また、ファイルシステム内部の障害により不整合を生じさせないための処理は複雑化しがちである。さらに、この方法は、容量上の効率化を改善することはできない。
特開2004−164223号公報 特開2005−309727号公報
D.A. Huffman, "A method for the construction of minimum-redundancy codes", Proceedings of the I.R.E., Sept. 1952, pp. 1098-1102 早坂 良太, 『オープンソースの全文検索システムの速度性能比較』, 電気通信大学尾内研究室卒業論文, 平成18年, pp. 1
ところで、特許文献1の方法には、仮にファイルシステムが更新の生じたファイルのみを通知する機能を利用可能であるとしても、以下に示す問題が予想される。各種の障害や機器の構成変更が生じた場合に、コンテンツとインデックスの間の一貫性を回復するのに長期の期間が必要になるという問題である。特許文献1の方法は、一貫性を回復するために、コンテンツを収容したファイルシステム全体を走査する以外の手段に乏しい。このため、ファイルシステムが巨大な場合には特に、インデックスの一貫性を回復するまでに、数日から数週間もの期間が必要となる。
また、現在の全文検索システムは、大量のテキスト文書(人間が理解可能な形式の文書)を索引付けする場合、文書そのものと同じかそれを越える規模のインデクスを必要とする。インデクス全体は索引付けを行った文書と同量の情報を含んでおり、システム全体で冗長な情報を含んでいる。しかも、冗長な情報は、全文検索システムと同一の情報でなく、複雑な依存関係を有している。このため、各種の障害発生時に一貫性が保たれなくなり、索引付けの再実行、更新されたファイルの検出等、復旧処理の複雑化の原因となっている。
本発明の目的の一つは、従来に比べ、大幅に小さな空間に文書とその索引とを収容することができるファイルシステムとプログラムを提供することである。また、本発明の一つの目的は、ファイルの内容を小さなコストで直ちに索引に登録できるファイルシステムとプログラムを提供することである。また、本発明の一つの目的は、索引とファイル本体の内容の一貫性を容易に維持できるファイルシステムとプログラムを提供することである。
発明者らは、前述した目的の一つ又は複数を実現するため、ファイルシステム制御部と、構成情報ファイルシステムとを有する検索機能付きファイルストレージ装置において、ファイルシステム制御部が、N-gramインデクスの作成に使用された原始ファイルの構成文字列を、その配列順に重複なくかつ抜けなく再構成できるように、N-gramインデクスの各項目を表す符号の一部を配列した構成ファイルを生成する仕組みを提案する。
本発明の場合、N-gramインデクスの作成に使用した原始ファイルの保存に代えて、原始ファイルの構成文字列を、その配列順に重複なくかつ抜けなく再構成できるように、N-gramインデクスの各項目を表す符号の一部を配列した構成ファイルを保存する。構成ファイルは、N-gramインデクスの符号列の一部(N分の1)で構成されるため、原始ファイルそのものを保存する場合に比して容量が小さく済む。結果的に、従来に比べ、大幅に小さな空間に文書(原始ファイル)とその索引とを収容することができる。
また、本発明の場合には、原始ファイルの代わりに保存する構成ファイルそのものがN-gramインデクスの符号列で表現される。このため、小さいコストでファイルの内容を直ちに索引に登録することができ、かつ、索引とファイル本体の内容の一貫性を容易に維持することができる。
本発明に係るシステムの全体構成例を示す図。 N-gramインデクスのデータ構成例を示す図。 構成ファイルのデータ構成例とN-gramインデックスとの対応関係を説明する図。 ファイルシステム制御部の詳細構成例を示す図。 ファイルの新規作成時におけるファイルシステム制御部の処理動作を説明するフローチャート。 ファイルの削除時におけるファイルシステム制御部の処理動作を説明するフローチャート。
以下、図面に基づいて、発明の実施形態例を説明する。なお、後述する実施形態はいずれも一例であり、本発明には、本明細書に記載する任意の機能を組み合わせることで実現されるシステム、本明細書に記載する一部の機能を周知技術で置換したシステム、本明細書に記載する機能に周知技術を追加したシステムも含まれる。また、後述する実施例で実行される機能は、計算機(コンピュータ)上で実行されるプログラムとして実現される。もっとも、プログラムの一部又は全部は、ハードウェアを通じて実現しても良い。
(システムの全体構成)
図1に、実施例に係るストレージシステムの構成を示す。ストレージシステムは、検索機能付きファイルストレージ装置10と、このファイルストレージ装置に直接接続されたクライアントコンピュータ1と、このファイルストレージ装置にネットワーク3及びネットワークファイルシステムゲートウェイ4を通じて接続されるクライアントコンピュータ2とで構成される。
ここで、クライアントコンピュータ1及び2は、本システムを利用する各種のコンピュータである。ネットワークシステムゲートウェイ4は、検索機能付きファイルストレージ装置10をネットワーク経由で使用する場合に、検索機能付きファイルストレージ装置10をWindowsファイル共有又はそれに類したネットワークファイルシステムとして動作させるための手段である。
検索機能付きファイルストレージ装置10は、ローカルファイルシステムゲートウェイ5、ファイルシステム制御部6、構成情報ファイルシステム7、N-gramインデクス8、全文検索部9で構成される。
ここで、ローカルファイルシステムゲートウェイ5は、検索機能付きファイルストレージ装置10を外部から利用可能とするためのインターフェースである。ローカルファイルシステムゲートウェイ5は、例えば外部から与えられた要求を、装置内のデータ構造に適した形式に整理し、ファイルシステム制御部6に引き渡す機能を提供する。
ファイルシステム制御部6は、ローカルファイルシステムゲートウェイ5から与えられた要求に基づいて、構成情報ファイルシステム7及びN-gramインデクス8に対する入出力処理を実行する。
構成情報ファイルシステム7は、ファイル及びディレクトリのメタ情報、すなわちファイル名、権限情報、変更時刻等、ファイル内容以外の情報を含んでいる。また、構成情報ファイルシステム7は、格納前のファイル(原始ファイル)の内容そのものをファイル(以下、「構成ファイル」という。)として格納しないことを特徴とする。
構成ファイルの内容は、N-gramインデクス内に含まれる符号の連接として表現される。この明細書において、「連接」とは、符号の配列順にN-gramインデクスから対応文字列を読み出して配列した場合に、原始ファイルの構成文字列を重複や抜けなく再構成できる関係の意味で使用する。
例えば原始ファイルの構成文字列が「Hello」であり、バイグラムの場合(2文字の並びでインデックスを形成する場合)、N-gramインデクスは「He」「el」「ll」「lo」「o*」となる。このとき、各インデックスを特定する符号が出現順に「1」、「2」、「3」、「4」、「5」と付されているとすると、構成ファイルは、「1,3,5」で与えられる。この構成ファイルを構成する符号の並び順に文字列を読み出すと、「He」、「ll」、「o*」となり、原始ファイルの構成文字列「Hello」を抜けなく、かつ、重複なく復元できる。本明細書では、このような対応関係を有する構成ファイルを、N-gramインデクス8に基づいて作成し、構成情報ファイルシステム7に格納する。
なお、構成情報ファイルシステム7は、実際には必ずしもファイルシステムでなくても良い。構成情報ファイルシステム7は、例えばファイル及びディレクトリに関する情報を保持したデータベースでも良い。この明細書では、構成情報ファイルシステム7が、通常のファイルシステムで構成されているものとして説明する。
また、ローカルファイルシステムゲートウェイ5を経由することなく、ユーザが構成情報ファイルシステム7に直接アクセスできる仕組みは通常提供されないものとする。その一方で、構成情報ファイルシステム7の一部又は全部が、検索機能付きファイルストレージ装置10からのみアクセス可能な外部システムとして、検索機能付きファイルストレージ装置10の外部に配置される構成が考えられる。
N-gramインデクス8は、長さNの文字列とその出現位置の対応関係をリスト形式(テーブル構造)で保持するファイルである。
全文検索部9は、ユーザから与えられた検索語に基づいた全文検索を、N-gramインデクスを対象として実行するアプリケーションソフトウェアである。
(N-gramインデックスのデータ構造)
図2に、N-gramインデクス8のデータ構造例を示す。Nの大きさは自然数であれば任意である。図2の場合には、説明を容易にするために、便宜的にN=2の場合を示す。
N-gramインデクス8の各行は「N文字列」21により識別される。
「符号」22は「N文字列」21を一意に特定するデータである。「N文字列」21をN-gramインデックス8内に格納する際には、異なる符号が同一のN文字列を示しても良い。
「出現位置1」23及び「出現位置2」24は、対応する「N文字列」21がどのファイルのどの位置に出現するかを示すデータである。図2においては、出現位置1と2の2つを用意しているが、「N文字列」の出現箇所が1つだけの場合には、出現位置2は使用されない。
因みに、各出現位置のうち対応ファイルの出現位置の特定には、inode番号、ファイルパス等を使用する。この実施例では、inode番号を使用する。また、ファイル内における各N文字列の出現位置の特定には、各N文字列の先頭に位置する文字(第1文字)が、対応ファイルの構成文字列で出現する先頭からの位置で特定する。従って、図2に示す例の場合、N文字列「ed」の出現位置1は、ファイル101の先頭から101番目の位置に出現することを表している。
また、N文字列は任意のファイルにおいて、任意の回数だけ出現し得る。このため、1つのN文字列に対して、任意の個数の出現位置が対応付けられた形式でN-gramインデックス8内に収容される。例えば、図2に示す例の場合、N文字列「ed」は、ファイル102の先頭から65番目の位置にも出現する。この位置は、N文字列「ed」に対応する出現位置2として格納される。勿論、「N文字列」の出現箇所が3つ以上の場合には、出現箇所の数だけ出現位置の記憶欄が用意される。
(構成ファイルとN-gramインデックスとの関係)
図3は構成ファイルのデータ構造とN-gramインデックスとの関係を示す。前述したように、構成ファイルを構成するN-gramインデクスの符号の配列は、対応する文字列を符号の配列順に表記すると、原始ファイルの構成文字列が抜け及び重複なしに再現されるように作成されている。因み、図3に示す例の場合、構成ファイルの配列(すなわち、符号1→符号2)により文字列「edac」を再構成することができる。
構成ファイルは、検索機能付きファイルストレージ装置10内のどこに配置しても良い。この実施例の場合には、構成情報ファイルシステム7内のファイルとして格納する。
一般に、N文字列の出現頻度は一様ではないと考えられる。従って、N-gramインデックスの符号とN文字列の組を適切に選ぶことにより、構成ファイルの規模を小さくすることができる。すなわち、出現頻度が高いN文字列には短い符号を割り当て、出現頻度が低いN文字列には長い符号を割り当てれば、構成ファイルの大きさを小さくすることができる。この符号の選び方は、公知の方法として非特許文献1等に開示されている。
(ファイルシステム制御部の機能ブロック構成)
図4に、ファイルシステム制御部6の機能ブロック構成を示す。ファイルシステム制御部6は、ファイル復号部42、ファイル属性情報制御部43、ファイル符号化部44、ファイル格納部45、ファイル索引づけ部46で構成される。これらの機能ブロックが構成情報ファイルシステム7とN-gramインデクス8と協調し、データの保管、索引づけ、通常ファイルとしてのアクセス機能を提供する。勿論、ファイルシステム制御部6は、前述した構成ファイルの作成も実行する。
ファイルシステムへのアクセスは、(1) ファイル内容の読み取り、(2) 属性情報の読み書き、(3) ファイル内容の書き込みの三つに大別できる。
ファイル復号部42は、ファイル内容の読み取り機能を提供する。すなわち、ファイル復号部42は、構成ファイルを構成する符号の配列に従ってN-gramインデクスの文字列を読み出し、原始ファイルの構成文字列を復元する。この後、ファイル復号部42は、復元した構成文字列を要求元のクライアントコンピュータに出力する。
ファイル属性情報制御部43は、属性情報の読み書き機能を提供する。ファイル属性情報制御部43は、(1) ファイルの移動、削除、新規作成、(2) ファイル名の変更、参照、(3) 権限情報の変更、参照、(4) 更新日時の変更、参照を実行する。
ファイル索引づけ部46は、ファイルシステム内に書き込まれる原始ファイルを走査し、原始ファイルから切り出したN文字列をN-gramインデクスに登録する機能と、各N文字列に符号を割り当てる機能とを提供する。この符号は、前述したように、ファイル格納部45やファイル復号部42で使用される。
(検索機能付きファイルシステムの処理動作)
(新規ファイルの追加)
図5に、検索機能付きファイルシステム10に新規ファイルを追加する場合に、ファイルシステム制御部6が実行する処理動作を示す。このフローチャートでは、新規に追加されたファイルを走査し、符号化と索引づけを行う手順を示す。
クライアントコンピュータから新規にファイル(原始ファイル)が書き込まれた場合、ファイルシステム制御部6は、構成情報ファイルシステム7内に構成ファイルを新規作成し、これを書き込みモードでオープンする(S501)。
この実施例の場合、原始ファイルからの読み取りは、初期状態において構成文字列の先頭から開始されるものとする。なお、原始ファイルからの読取は、構成文字列の最後尾から開始することも可能である。
次に、ファイルシステム制御部6は、原始ファイルから入力できるデータがあるか否かを判定する(S502)。
入力可能なデータが一文字もない場合(S502で否定結果の場合)、ファイルシステム制御部6は、構成ファイルをクローズし、原始ファイルをストレージ領域上から削除する(S503)。以後、ファイルシステムは、原始ファイルを構成ファイルとN-gramインデックスを通じて仮想的に管理する状態になる。
一方、原始ファイルに読み取り可能な文字列がある場合、ファイルシステム制御部6は、原始ファイルからN文字を読み取る(S504)。この際、読み取り可能な文字列が1文字以上あるがN文字に満たない場合、ファイルシステム制御部6は、読み取れるだけ文字列を読み取り、N文字に満たない文字の数だけの記号"None"を、読み取った文字列の末尾に付加する。これにより、文字列全体の長さをN文字にする。"None"は全ての入力ファイルに含まれないことが保証された記号である。こうして得られた長さNの文字列をN文字列とする。前述したように、N文字列はN-gramインデクスにおいて、各項目を一意に識別する識別子である。
次に、ファイルシステム制御部6は、今回得られたN文字列が、N-gramインデクス内に既に登録されているか否かを判定する(S505)。
否定結果が得られた場合(登録されていない場合)、ファイルシステム制御部6は、当該N文字列を新たな項目として登録する(S510)。例えばN文字列の出現位置が初期状態の場合、N-gramインデクスには何の登録もない。このとき、登録されたN文字列には何らかの符号を登録する。符号の与え方は、N文字列を一意に識別できれば任意である。
一方、肯定結果が得られた場合(登録済みの場合)、ファイルシステム制御部6は、N文字列に対応する項目に付されている符号をN-gramインデクスから取得する。ここまでの処理により、全てのN文字列について、対応する符号が取得される。
次に、ファイルシステム制御部6は、現在の処理中のN文字列の先頭に位置する文字が、構成文字列の配列上の先頭アドレスを0とする場合にN(自然数)で割り切れるアドレスか否かを判定する。Nで割り切れる場合、ファイルシステム制御部6は、現在処理中のN文字列に対応する符号を構成ファイルに追記する(S506)。これに対し、Nで割り切れない場合、ファイルシステム制御部6は、現在処理中のN文字列に対応する符号を構成ファイルに追記せず廃棄する。
この後、ファイルシステム制御部6は、N-rgamインデクスに現在のN文字列の出現箇所を記録する(S507)。この出現箇所の記録は、構成ファイルに追記しなかったN文字列も含め、全てのN文字列が対象である。この出現位置の記録により、任意の文字列に関する全文検索が可能になる。
次に、ファイルシステム制御部6は、原始ファイルからの読み取り位置を、現在の読取位置に対して1文字後方にずらす(S508)。この後、ファイルシステム制御部6は、処理S502に戻り、以降の処理を反復する。
なお、S507の処理は索引づけに過ぎず、原始ファイルの内容には影響を及ぼさない。このため、登録すべき内容をキューに蓄積して別スレッドで処理する等の技法を適用すれば、ファイルシステムとしての応答性を高めることができる。ただし、この方法を用いると、コンテンツとインデクスの内容が一致しない期間が生じる。また、インデクスへの反映が障害によって失敗に終わった場合の回復処理を考慮する必要等が生じ、システムの複雑化の要因となる。従って、実施にあたっては、これらのトレードオフを考慮し、慎重にシステムを設計することが必要となる。この本実施例では、S506、S507及びS508の処理を逐次的に実行するものとする。
(ファイルの削除)
図6に、検索機能付きファイルシステム10から特定のファイルを削除する場合に、ファイルシステム制御部6が実行する処理動作を示す。なお、ファイル内容の更新(変更)は、ファイルの削除と新規ファイルの追加の連続実行を通じて実現できる。
クライアントコンピュータから削除すべきファイルが指定された場合、ファイルシステム制御部6は、構成情報ファイルシステム7内の構成ファイルを読み取りモードでオープンする(S601)。
この実施例の場合、ファイルシステム制御部6は、構成ファイルからのデータ入力が可能か否かを判定する(S602)。
構成ファイルから読み出せるデータがない場合(すなわち、ファイルサイズが0の場合)、ファイルシステム制御部6は、構成ファイルをクローズし、直ちに構成情報ファイルシステム7から削除する(S607)。
一方、構成ファイルから読み取り可能なデータがある場合、ファイルシステム制御部6は、構成ファイルの現在位置から符号を読み出し、当該符号に対応するN文字列をN-gramインデクスから入力する。なお、入力可能な文字数がNに満たない場合、図5の説明の場合と同様、末尾に文字"None"を補うことによりN文字列とする(S604)。なお、構成ファイルから文字列を復元する際の詳細については後述する。
この後、ファイルシステム制御部6は、N-gramインデクスから処理中のN文字列に対応する項目を抽出し、このN文字列に対応付けられている出現位置を削除する(S605)。例えば図2のN文字列が“ed”が削減対象であった場合、例えば出現位置1の「ファイル101:101」を削除する。なお、N-gramインデックス8には、ある原始ファイルについて作成されたN文字列のうち構成ファイルに登録されていないN文字列が多数存在する(S507を参照)。従って、ここでの削除では、構成ファイルから再現された文字列に対して1文字ずつシフトして得られるN文字列も同時に削除される。
その後、ファイルシステム制御部6は、構成ファイルからの現在位置を後方に1文字後方にずらす(S606)。この後、ファイルシステム制御部6は、処理S602に戻り、以降の処理を反復する。S602において、次に処理すべきデータがなくなると、ファイルシステム制御部6は、構成ファイルをクローズし、対応ファイルの削除を完了する(S607)。
(構成ファイルの復号機能)
S604の処理を実行するために、ファイルシステム制御部6は、内部読み取りバッファを有している。この内部読み取りバッファは、構成ファイルから読み出される連続する2個の符号を復号する際に復号される最大でN個×N文字列のデータを保持することができる記憶容量を有しているものとする。
また、内部読み取りバッファは、復号対象とする符号が構成ファイルの中で出現する位置の情報を保存する領域を有しているものとする。また、構成ファイルを復号化する場合(元の構成文字列を復号する場合)、ファイルシステム制御部6は、新たに復号化された符号が復号化済みの文字列内で出現する位置iを計算できるものとする。例えば位置iは、処理対象とする符号に対応するN文字列の先頭文字の位置として与えられる。
この場合において、処理がS602からS604に移行すると、ファイルシステム制御部6は、構成ファイルの現在位置に対応するN文字列を入力する。このとき、ファイルシステム制御部6は、内部読み取りバッファ内の読み取り開始位置、すなわち復号化後の文字列の先頭からの文字数jを与え、対応するN文字列を読み取る。この文字数jは、内部読み取りバッファ内からN文字列が読み出されるたび、1文字ずつ後方にシフトされる。
ここで、j−iがNより小さい場合、ファイルシステム制御部6は、内部読み取りバッファは内部に保持したN個のN文字列のうちから要求されたjに対応するN文字列を応答する。例えばN=3の場合に、2つの符号に対応する文字列「abcdef」が内部読み取りバッファに格納されているものとする。このとき、j=1に対して「abc」が読み出される。次にjは2に更新され、「bbcd」が読み出され。次にjは3に更新され「cde」が読み出される。
一方、j−iがNと等しい場合、ファイルシステム制御部6は、構成ファイルから次の符号を読み出し、N-gramインデクス8を用いた復号化の後、内部読み取りバッファにN個のN文字列を生成する。例えばi=1かつj=4の場合、「def」が読み出されると共に、次の文字列の生成に備えて、構成ファイルの次の符号に対応する文字列「ghi」を復号し、内部読み取りバッファに読み込む。
この後、ファイルシステム制御部6は、内部読み取りバッファ内における符号に対応するN文字列の先頭位置を与えるiにNを加え、位置情報を更新する。前述の例であれば、i=1から4に更新する。さらにその後、ファイルシステム制御部6は、要求された読み取り位置(文字数j)を順次更新し、それぞれに対応するN文字列を内部読み取りバッファから応答する。
(実施形態の効果)
以上説明したように、本実施例の場合、N-gramインデクスの作成に使用した原始ファイルの保存に代えて、原始ファイルの構成文字列をその配列順に重複なくかつ抜けなく再構成できるようにN-gramインデクスの符号を選択的に配列した構成ファイルを保存する。これにより、原始ファイルそのものを保存する場合に比して、ストレージシステムの消費容量を小さくできる。結果的に、従来に比べ、大幅に小さな空間に文書(原始ファイルを復元できる情報)とその索引とを収容することができる。
また、本実施例の場合には、原始ファイルの代わりに保存する構成ファイルそのものがN-gramインデクスの符号列で表現される。このため、小さいコストでファイルの内容を直ちに索引に登録することができ、かつ、索引とファイル本体の内容の一貫性を容易に維持することができる。
(ウイルスの検索処理)
テキストファイルに限らず、一般のファイルを収容するストレージとして利用した場合には、前述した効果に加え、コンピュータウイルスの検索を画期的に高速に行えるストレージを実現できる。この効果について、若干の説明を補う。
現行のコンピュータウイルス対策ソフトウェアは「パターンファイル」と呼ばれるウイルスの特徴を収録したデータベースを持っている。コンピュータウイルス対策ソフトウェアは、検索対象として指定されたファイルシステム全体を、このパターンファイルの内容と照合しつつ走査する。
ここで、N-gramインデクスによる全文検索は、単語区切りに基づいた転置インデクスと異なり、漏れのない検索が可能である。従って、本実施例に係る検索機能付きファイルストレージ装置10の場合には、単にウイルスの特徴を検索語として全文検索を行うだけで特定のウイルスの存在の可否を判定することができる。
N-gramインデクスの検索性能は設計にもよるが、数百万ドキュメントに対する一回の検索が1msec程度で完了する製品も既に存在する(例えば非特許文献2参照)。従って、数百万のファイルが存在するファイルシステムに対する数万のウイルスパターンの検索を数秒以内に完了させることも困難ではないことになる。
1 クライアントコンピュータ1
2 クライアントコンピュータ2
3 ネットワーク
4 ネットワークファイルシステムゲートウェイ
5 ローカルファイルシステムゲートウェイ
6 ファイルシステム制御部
7 構成情報ファイルシステム
8 N-gramインデクス
9 全文検索部
10 検索機能付きファイルストレージ装置
21 N文字列
22 符号
23 出現位置1
24 出現位置2
42 ファイルシステム復号部
43 ファイル属性情報制御部
44 ファイル符号化部
45 ファイル格納部
46 ファイル索引づけ部

Claims (6)

  1. ファイルシステム制御部と、構成情報ファイルシステムとを有する検索機能付きファイルストレージ装置において、
    前記ファイルシステム制御部が、N-gramインデクスの作成に使用された原始ファイルの構成文字列を、その配列順に重複なくかつ抜けなく再構成できるように、前記N-gramインデクスの各項目を表す符号の一部を配列した構成ファイルを作成する
    ことを特徴とする検索機能付きファイルストレージ装置。
  2. 請求項1に記載の検索機能付きファイルストレージ装置において、
    前記ファイルシステム制御部は、
    前記構成文字列の配列上の先頭アドレスを0とする場合に、N(自然数)で割り切れるアドレスに位置する文字で始まるN個の文字列に対応する前記符号だけを選択的に追記することにより前記構成ファイルを生成する
    ことを特徴とする検索機能付きファイルストレージ装置。
  3. 請求項1に記載の検索機能付きファイルストレージ装置において、
    前記ファイルシステム制御部は、
    仮想的に管理されている原始ファイルの削除時、又は、仮想的に管理する原始ファイルの新規保存時、又は、仮想的に管理されている原始ファイルの内容変更時、前記N-gramインデクスを更新する
    ことを特徴とする検索機能付きファイルストレージ装置。
  4. 請求項1に記載の検索機能付きファイルストレージ装置において、
    前記ファイルシステム制御部は、実管理する原始ファイルのN-gramインデクスの作成と並行して、前記構成ファイルを作成する
    ことを特徴とする検索機能付きファイルストレージ装置。
  5. 請求項4に記載の検索機能付きファイルストレージ装置において、
    前記ファイルシステム制御部は、前記構成ファイルの作成後に、ストレージ領域上から前記原始ファイルを削除する
    ことを特徴とする検索機能付きファイルストレージ装置。
  6. 検索機能付きファイルストレージ装置に搭載されたコンピュータに、
    N-gramインデクスの作成に使用された原始ファイルの構成文字列を、その配列順に重複なくかつ抜けなく再構成できるように、前記N-gramインデクスの各項目を表す符号の一部を配列した構成ファイルを生成するステップと、
    作成された前記構成ファイルを記憶領域に格納するステップと
    を実行させるプログラム。
JP2010078583A 2010-03-30 2010-03-30 検索機能付きファイルストレージ装置及びプログラム Expired - Fee Related JP5441791B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010078583A JP5441791B2 (ja) 2010-03-30 2010-03-30 検索機能付きファイルストレージ装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010078583A JP5441791B2 (ja) 2010-03-30 2010-03-30 検索機能付きファイルストレージ装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2011210094A true JP2011210094A (ja) 2011-10-20
JP5441791B2 JP5441791B2 (ja) 2014-03-12

Family

ID=44941062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010078583A Expired - Fee Related JP5441791B2 (ja) 2010-03-30 2010-03-30 検索機能付きファイルストレージ装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5441791B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016058016A (ja) * 2014-09-12 2016-04-21 カシオ計算機株式会社 検索インデックス作成装置、検索インデックス作成方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058578A (ja) * 2001-08-10 2003-02-28 Ricoh Co Ltd 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体
JP2004164223A (ja) * 2002-11-12 2004-06-10 Fujitsu Ltd N文字インデックス作成プログラムおよびn文字インデックス検索プログラム
WO2006123429A1 (ja) * 2005-05-20 2006-11-23 Fujitsu Limited 情報検索方法、装置、プログラム、該プログラムを記録した記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058578A (ja) * 2001-08-10 2003-02-28 Ricoh Co Ltd 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体
JP2004164223A (ja) * 2002-11-12 2004-06-10 Fujitsu Ltd N文字インデックス作成プログラムおよびn文字インデックス検索プログラム
WO2006123429A1 (ja) * 2005-05-20 2006-11-23 Fujitsu Limited 情報検索方法、装置、プログラム、該プログラムを記録した記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016058016A (ja) * 2014-09-12 2016-04-21 カシオ計算機株式会社 検索インデックス作成装置、検索インデックス作成方法及びプログラム

Also Published As

Publication number Publication date
JP5441791B2 (ja) 2014-03-12

Similar Documents

Publication Publication Date Title
JP6596102B2 (ja) コンテンツ連想シーブに存在している基本データエレメントからデータを導出することによるデータの無損失削減
US8738572B2 (en) System and method for storing data streams in a distributed environment
US8706710B2 (en) Methods for storing data streams in a distributed environment
US8554561B2 (en) Efficient indexing of documents with similar content
JP5339432B2 (ja) ストレージシステム
US8527556B2 (en) Systems and methods to update a content store associated with a search index
KR101631004B1 (ko) 위치 독립적 파일
US8527480B1 (en) Method and system for managing versioned structured documents in a database
JP5650982B2 (ja) ファイルの重複を排除する装置及び方法
JP6726690B2 (ja) 基本データシーブを用いて無損失削減されたデータに対する多次元検索、コンテンツ連想的な取出し、ならびにキーワードベースの検索および取出しの実行
WO2018133762A1 (zh) 文件合并方法和装置
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
JP5441791B2 (ja) 検索機能付きファイルストレージ装置及びプログラム
WO2018080560A1 (en) Encoding edges in graph databases
US9128823B1 (en) Synthetic data generation for backups of block-based storage
JP5488587B2 (ja) 情報処理システムと方法
JPH10261969A (ja) データ圧縮方法および装置
EP4002143A1 (en) Storage of file system items related to a versioned snapshot of a directory-based file system onto a key-object storage system
JP5867208B2 (ja) データモデル変換プログラム、データモデル変換方法およびデータモデル変換装置
US8898122B1 (en) Method and system for managing versioned structured documents in a database
US9002810B1 (en) Method and system for managing versioned structured documents in a database
JP4825504B2 (ja) データ登録・検索システムおよびデータ登録・検索方法
JP6291435B2 (ja) プログラムおよびクラスタシステム
JP7377915B2 (ja) 個別データ検索サービスを提供する方法、コンピュータ装置、およびコンピュータプログラム
JP5483166B2 (ja) 文書検索装置、文書検索方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131114

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: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131217

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees