WO2014002161A1 - 情報処理装置、ファイル管理方法、及びファイル管理プログラム - Google Patents

情報処理装置、ファイル管理方法、及びファイル管理プログラム Download PDF

Info

Publication number
WO2014002161A1
WO2014002161A1 PCT/JP2012/066142 JP2012066142W WO2014002161A1 WO 2014002161 A1 WO2014002161 A1 WO 2014002161A1 JP 2012066142 W JP2012066142 W JP 2012066142W WO 2014002161 A1 WO2014002161 A1 WO 2014002161A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
item
information
search
files
Prior art date
Application number
PCT/JP2012/066142
Other languages
English (en)
French (fr)
Inventor
貢嗣 山本
泰裕 鈴木
片岡 正弘
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2014522237A priority Critical patent/JP5958539B2/ja
Priority to PCT/JP2012/066142 priority patent/WO2014002161A1/ja
Publication of WO2014002161A1 publication Critical patent/WO2014002161A1/ja
Priority to US14/571,517 priority patent/US10339104B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 項目と該項目を含むファイル数とを対応付けた項目情報(12a)とファイル(13a)ごとに各項目を含むか否かを示すファイル情報(12c)とに基づいて、要求された検索条件を満たすファイル(13a)を検索する検索部(11b)と、ファイル(13a)の削除要求があると、前記項目情報(12a)に対して、前記削除対象のファイル(13a)に含まれる項目のファイル数を更新し、該ファイル数が0になった場合に前記項目情報(12a)からファイル数が0になった項目と該項目を含むファイル数とを削除する削除部(11c)と、を有する。

Description

情報処理装置、ファイル管理方法、及びファイル管理プログラム
 本発明は、情報処理装置、ファイル管理方法、及びファイル管理プログラムに関する。
 図19は、フラットファイルの一例を示す図であり、図20は、フラットファイルからのレコード抽出の一例を示す図である。フラットファイルは、例えばCSV(Comma Separated Values)形式やXML(eXtensible Markup Language)形式で複数の項目(項目名)を持つ情報を保持するファイルであり、例えば図19に示すように、CSV形式で複数のレコードを保持する。レコードは、複数の項目(カラム)がカンマ等の区切り記号で区切られる。フラットファイルを用いたシステムでは、時間の経過に応じて、時々刻々とフラットファイルのデータの形式(カラム等)が変化しても良く、ファイルをファイルのまま、改竄せずに格納することができ、また、RDB(Relational DataBase)スキーマ定義を事前に決める必要がない。
 例えば、図20に示すように、ファイル1では、{“名前”,“住所”,“年齢”}の項目を持つレコードが保持され、ファイル2では、新たに必要になった“血液型”の項目が追加され、ファイル3では、不要になった“年齢”の項目が削除されている。このように、フラットファイルを用いたシステムでは、異なるデータの形式を持つ複数のファイル1~3から、ユーザが指定した検索条件(例えば“名前”の項目に“山”が含まれる)に合致するレコードを抽出することができる。
 上述した利点から、多様・大量の業務データをフラットファイルデータ格納庫に蓄積し活用するシステムが用いられることがある。一例として、このシステムは、POS(Point Of Sale)システムの売り上げデータと在庫データとを分析して自動発注する際や、ATM(Automatic Teller Machine)のジャーナルデータ等の管理に用いられる。
 ところで、フラットファイルを用いたシステムでは、非定型データが大量に格納されたときに、必要に応じて、業務データを高速に検索(抽出)して活用することが求められる場合がある。なお、非定型データとは、様々なカラムの変化を持ったデータであり、例えばPDF(Portable Document Format)文書内部の表データやジャーナルデータ等が挙げられる。図21は、レコード抽出対象のフラットファイルの絞り込み処理の一例を説明する図である。なお、以下、フラットファイルを単にファイルという場合がある。
 図21に示すように、システムは、ファイルを格納するファイル格納領域と、ファイルのメタ情報を保持する管理領域(管理DB(データベース))とを有している。
 ファイルを格納する場合、システムは、事前にファイルの絞り込みに使用するキーとなる項目名(例えば“項目1”)を決めておく。ユーザからファイル1の格納要求があると(ステップS101)、システムにより、ファイル1が開かれてキーとなる項目である“項目1”の情報(例えばカラムの最大値:10,最小値:2)が取得される(ステップS102)。そして、システムにより、取得した“項目1”の情報がメタ情報として管理領域に格納され、ファイル1がファイル格納領域に格納される(ステップS103)。
 次に、ユーザから、検索条件として“項目1>13”を満たすデータ(レコード)の抽出要求を受けると(ステップS104)、システムにより、管理DBに問い合わせが実施され(ステップS105)、検索条件に合致しないメタ情報のファイルが検索対象から除外される。なお、図21の場合、ファイル1の“項目1”の最大値は10であり、ファイル2の“項目1”の最大値は15であるため、“項目1>13”の検索条件を満たさないファイル1が検索対象から除外される。そして、システムにより、ファイル格納領域に格納されたファイル2に対してのみ、ファイルが開かれて検索条件に合致するレコードの抽出処理が実施される(ステップS106)。
 このように、図21に示す例では、大量に格納されたファイルの中から、検索する必要のないファイルが除外されて検索対象のファイルが絞り込まれることにより、データ検索の高速化が実現される。
 なお、関連する技術として、原稿を画像信号に変換した1次情報にこの1次情報を検索するためのキーワード等の2次情報を付加してメモリに記憶させて登録し、この2次情報を用いて必要な1次情報をメモリから検索して読み出す技術がある(例えば下記特許文献1)。
 この技術は、登録時に、キーワードごとにそのキーワードを有する1次情報の資料番号を格納する資料番号リストファイルに、登録すべき1次情報の資料番号を順次格納する。また、この技術は、検索時に、検索条件である2次情報中のキーワードについて、キーワード種と資料番号をアドレスとしてビットを割り付けるビットマップメモリを作成し、ビットマップメモリに基づいて求めた1次情報のみをメモリから読み出す。
特開平1-237723号公報 特開2000-242536号公報
 上述した図21に示す例では、検索条件にキーとなる項目名が含まれない場合、ファイル格納領域に格納された全てのファイルが検索対象となる。つまり、検索条件にキーとなる項目名が含まれない場合、検索条件にキーとなる項目名が含まれる場合と比較して、ファイルの絞り込みが行なえないためにファイルのオープンコストが増加し、検索レスポンスが低下することになる。
 また、上述した関連する技術では、管理テーブル(資料番号リストファイル,ビットマップメモリ)において1次情報を削除することが考慮されていない。つまり、1次情報の削除等に応じて管理テーブルの情報を更新する構成がないため、1次情報の登録及び削除が繰り返しされた場合、検索時に、存在しない1次情報を読み込むという無駄な処理が発生することになり、検索レスポンスが低下することになる。
 1つの側面では、本発明は、複数のファイルから情報を検索する際の検索効率を向上させることを目的とする。
 一態様の情報処理装置は、複数の項目を持つ情報を保持するファイルを管理する情報処理装置であって、前記項目と該項目を含むファイル数とを対応付けた項目情報と前記ファイルごとに各項目を含むか否かを示すファイル情報とに基づいて、要求された検索条件を満たすファイルを検索する検索部と、ファイルの削除要求があると、前記項目情報に対して、前記削除対象のファイルに含まれる項目のファイル数を更新し、該ファイル数が0になった場合に前記項目情報からファイル数が0になった項目と該項目を含むファイル数とを削除する削除部と、を有する。
 また、一態様のファイル管理方法は、複数の項目を持つ情報を保持するファイルを管理するファイル管理方法であって、前記項目と該項目を含むファイル数とを対応付けた項目情報と、前記ファイルごとに各項目を含むか否かを示すファイル情報と、に基づいて、要求された検索条件を満たすファイルを検索し、ファイルの削除要求があると、前記項目情報に対して、前記削除対象のファイルに含まれる項目のファイル数を更新し、該ファイル数が0になった場合に前記項目情報からファイル数が0になった項目と該項目を含むファイル数とを削除する。
 さらに、一態様のファイル管理プログラムは、複数の項目を持つ情報を保持するファイルを管理するコンピュータに実行させるファイル管理プログラムであって、前記項目と該項目を含むファイル数とを対応付けた項目情報と、前記ファイルごとに各項目を含むか否かを示すファイル情報と、に基づいて、要求された検索条件を満たすファイルを検索し、ファイルの削除要求があると、前記項目情報に対して、前記削除対象のファイルに含まれる項目のファイル数を更新し、該ファイル数が0になった場合に前記項目情報からファイル数が0になった項目と該項目を含むファイル数とを削除する、処理を前記コンピュータに実行させる。
 一実施形態によれば、複数のファイルから情報を検索する際の検索効率を向上させることができる。
一実施形態に係る情報処理装置の機能構成例を示すブロック図である。 図1に示すファイル格納領域に格納されるフラットファイルのデータ構造の一例を示す図である。 図1に示す管理領域に格納される項目名辞書テーブルの一例を示す図である。 図1に示す管理領域に格納されるソート済項目名辞書テーブルの一例を示す図である。 図1に示す管理領域に格納される項目名ビット管理テーブルの一例を示す図である。 図1に示す格納部によるCSV形式のフラットファイルからの項目名の抽出処理の一例を説明する図である。 図1に示す格納部によるXML形式のフラットファイルからの項目名の抽出処理の一例を説明する図である。 図1に示す検索部によるファイルの絞り込み処理の一例を説明する図である。 図1に示す情報処理装置のハードウェア構成例を示すブロック図である。 図1に示す格納部におけるファイル格納処理の一例を説明するフローチャートである。 図1に示すフラットファイル及び各テーブルの関係を説明する図である。 図1に示す格納部による各テーブルの更新処理の一例を説明する図である。 図1に示す検索部におけるファイル検索処理の一例を説明するフローチャートである。 図1に示す削除部におけるファイル削除処理の一例を説明するフローチャートである。 図1に示す削除部による各テーブルの更新処理の一例を説明する図である。 一実施形態の第1変形例に係る検索部によるファイルの絞り込み処理を説明する図である。 一実施形態の第2変形例に係る項目名辞書テーブルを示す図である。 一実施形態の第2変形例に係る項目名ビット管理テーブルを示す図である。 フラットファイルの一例を示す図である。 フラットファイルからのレコード抽出の一例を示す図である。 レコード抽出対象のフラットファイルの絞り込み処理の一例を説明する図である。
 以下、図面を参照して実施の形態を説明する。
 〔1〕一実施形態
 〔1-1〕情報処理装置の説明
 図1は、一実施形態に係る情報処理装置1の機能構成例を示すブロック図である。情報処理装置1は、複数の項目を持つ情報を保持するフラットファイル13aを複数管理するものであり、図1に示すように、ファイル管理部11,管理領域12,及びファイル格納領域13を有している。
 ファイル格納領域13は、フラットファイル13aが格納される領域である。ファイル格納領域13としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等の各種デバイスの記憶領域を用いることができる。図2は、ファイル格納領域13に格納されるフラットファイル13aのデータ構造の一例を示す図である。
 フラットファイル(ファイル)13aは、CSV形式やXML形式で複数の項目(項目名)を持つ情報を保持する入力対象のファイルであり、例えば図2に示すように、CSV形式で複数のレコードを保持する。レコードは、複数の項目がカンマ等の区切り記号で区切られる。なお、以下、フラットファイル13aを単にファイル13aという場合がある。また、以下の説明において、ファイル格納領域13には、ファイル13aとして、図2に示すファイル13a-1及びファイル13a-2が格納されるものとする。なお、ファイル13a-1及びファイル13a-2は、それぞれファイルX及びファイルYという場合がある。
 以下、ファイル13aが保持する項目は、“項目名{}”の{}の間にカンマ区切りで表し、ファイル13aが保持するレコードは、“レコード{}”の{}の間にカンマ区切りで表す。例えば、図2においては、ファイル13a-1は、項目名{“Name”,“Address”}について、2つのレコード{“Yamamoto”,“Aichi”},{“Suzuki”,“Kanagawa”}を保持している。また、ファイル13a-2は、項目名{“Name”,“Address”,“Age”,“Gender”}について、2つのレコード{“Yamaguchi”,“Yamaguchi”,“27”,“M”},{“Yamada”,“Osaka”,“25”,“F”}を保持している。
 管理領域(保持部)12は、ファイル13aを管理するための各テーブル12a~12cが格納される領域である。管理領域12としては、例えばRAM(Random Access Memory)等の揮発性メモリ等の記憶領域を用いることができる。なお、各テーブル12a~12cは、それぞれデータベースであってもファイルであっても良い。図3~図5はそれぞれ、管理領域12に格納される項目名辞書テーブル12a,ソート済項目名辞書テーブル12b,項目名ビット管理テーブル12cの一例を示す図である。
 項目名辞書テーブル(項目情報)12aは、ID(識別子)と、項目名(項目)と、該項目名を含むファイルのファイル数と、を対応付けた情報であって、ファイル13aに含まれる全ての項目名を管理するテーブルである。図3に示す例では、項目名辞書テーブル12aは、図2に示すファイル13a-1及び13a-2に含まれる全ての項目名について、IDを割り当て、当該項目名を含むファイル数を保持する。一例として、項目名辞書テーブル12aは、“項目名=Name”に“ID=1”を割り当て、“Name”の項目名(項目)を含むファイル13a-1,13a-2の“ファイル数=2”を設定したレコードを保持する。なお、項目名辞書テーブル12aは、後述する格納部11a及び削除部11cにより更新される。
 ソート済項目名辞書テーブル(ソート済項目情報)12bは、項目名辞書テーブル12aに含まれる複数の項目名であって所定の順序でソートした項目名と、該項目名に対応するID(識別子)とを含むテーブルである。図4に示す例では、ソート済項目名辞書テーブル12bは、図3に示す項目名辞書テーブル12aに含まれる項目名をアルファベット順で昇順にソートした項目名と、当該項目名に対応するIDとを保持する。
 項目名ビット管理テーブル(ファイル情報)12cは、ファイル13aごとに各項目を含むか否かを示すテーブルであり、ファイル13aごとに、ファイル格納領域13に格納されたファイル13aに含まれる各項目の有無を、ビット列として保持する。このビット列は、IDに対応するビット位置の値の有効又は無効に応じて該ファイル13aがIDに対応する項目を含むか否かを示すものである。
 例えば、図5に示す例では、項目名ビット管理テーブル12cは、ファイルX,Yごとに、これらのファイル13aが含む項目のIDに対応するビット位置の値を有効(例えば“1”)に設定し、それ以外のビット位置の値を無効(例えば“0”)に設定したビット列を保持する。一例として、項目名ビット管理テーブル12cは、IDが“1”である項目名“Name”,IDが“2”である項目名“Address”(図3参照)を含むファイルXについて、IDに対応する1ビット目,2ビット目のビット位置の値が“1”であり、それ以外のビット位置の値が“0”であるビット列を保持する。なお、ビット列の幅(最大ビット数)は、将来増加し得るIDの最大値以上であることが好ましい。
 ファイル管理部11は、ファイル13a及び各テーブル12a~12cを管理し、検索要求に応じて検索条件を満たすレコード(情報)を保持するファイル13aを検索し、検索したファイル13aから検索条件を満たすレコード(情報)を取り出すものである。このため、ファイル管理部11は、格納部11a,検索部11b,及び削除部11cを有している。
 格納部11aは、ユーザ等からファイル13aの格納要求を受けると、格納対象のファイル13aに含まれる全ての項目名を収集して管理領域12内の各テーブル12a~12cを更新し、格納対象のファイル13aをファイル格納領域13に格納する。
 具体的には、格納部11aは、ファイル13aの格納要求を受けると、格納対象のファイル13aから全ての項目名を抽出する。そして、格納部11aは、抽出した項目名に他の項目名と重複しないID(例えば最小の整数)を割り当て、図3に示す項目名辞書テーブル12aに“項目名”と“ID”とを設定するとともに、“項目を含むファイル数”に1を設定する。なお、格納部11aは、抽出した項目名が既に項目名辞書テーブル12aに存在する場合には、IDの割り当てを行なわず、抽出した項目名に対応する“項目を含むファイル数”に1を加算する。
 ここで、図6及び図7を参照して、格納部11aによるファイル13aからの項目名の抽出(取得)処理を説明する。図6及び図7はそれぞれ、格納部11aによるCSV形式,XML形式のファイル13aからの項目名の抽出処理の一例を説明する図である。
 格納対象のファイル13aがCSV形式のファイルである場合、格納部11aは、ファイル13aの最初の行の先頭から改行までを読み込み、所定の区切り文字(例えばカンマ“,”)の検出を契機に、検出した区切り文字の前後の文字列を分割して、分割された文字列(項目名;図6に示す例では“Name”及び“Address”)を抽出する。
 また、検索対象のファイル13aがXML形式のファイルである場合、格納部11aは、ファイル13aの先頭から順に、“<”と“>”との間の記述内容(要素名;図7に示す例では“root”,“person”,“name”,“age”等)を読み込み、階層の深さをインクリメントする。また、格納部11aは、“</”及び“>”(図7に示す例では“</name>”,“</age>”,“</person>”等)を検出すると階層の深さをデクリメントする。そして、格納部11aは、階層の深さが“0”になるまで繰り返し“<”と“>”との間の記述内容の読み込みを行ない、項目名を抽出する。
 なお、上述したファイル13aが保持するレコード(情報)には、図6に示すCSV形式のファイル13aが保持するレコードのほか、図7に示すXML形式のファイル13aが保持する開始タグと終了タグとの間のデータが含まれる。なお、格納部11aによるファイル13aからの項目名の抽出処理は、上述した手順に限定されず、既知の種々の手法により行なうことが可能であり、その詳細な説明は省略する。
 また、格納部11aは、項目名辞書テーブル12aに対して新たに追加した項目名及びIDがある場合には、当該項目名及びIDの組を、ソート済項目名辞書テーブル12bに追加する。このとき格納部11aは、追加する項目名及びIDの組を、ソート済項目名辞書テーブル12bに含まれる項目名が所定の順序となるように追加する。
 なお、格納部11aは、項目名辞書テーブル12aに対して新たに追加した項目名及びIDがある場合に、既存のソート済項目名辞書テーブル12bを削除して、更新後の項目名辞書テーブル12aに基づき新たにソート済項目名辞書テーブル12bを作成しても良い。この場合、格納部11aは、項目名辞書テーブル12aに含まれる全ての項目名を所定の順序(例えばアルファベット順,50音順等で昇順又は降順)でソートし、ソートした項目名と当該項目名に対応するIDとを含むソート済項目名辞書テーブル12bを作成し、管理領域12に格納する。
 さらに、格納部11aは、項目名ビット管理テーブル12cに対して、格納対象のファイル13aのファイル名と、格納対象のファイル13aに含まれる各項目の有無を示す上述したビット列とを追加する。
このように、格納部11aは、ファイル13aの格納時に、ファイル13aに含まれる項目名を全て収集し、各テーブル12a~12cを用いて一括管理する。
 検索部11bは、管理領域12が保持する項目名辞書テーブル12a又はソート済項目名辞書テーブル12bとファイル格納領域13とに基づいて、要求された検索条件を満たすファイル13aを検索する。
 具体的には、検索部11bは、項目名辞書テーブル12a又はソート済項目名辞書テーブル12bに基づき検索条件に含まれる項目のIDを特定する。そして、検索部11bは、特定したIDに対応するビット位置の値が有効である検索対象のファイル13aを、項目名ビット管理テーブル12cに基づいて抽出し(絞り込み)、抽出したファイル13aから、検索条件を満たすファイル13aを検索する。
 例えば、項目名辞書テーブル12a及びソート済項目名辞書テーブル12bが図3及び図4に示すレコードを保持する場合に、検索部11bが、“Name==“Yamamoto” AND Age==29”の検索条件で検索要求を受けた場合について想定する。この場合、検索部11bは、検索条件に含まれる項目名である“Name”及び“Age”のIDを、項目名辞書テーブル12a又はソート済項目名辞書テーブル12bに基づいてそれぞれ“1”及び“3”と特定する。
 なお、検索部11bは、検索条件に含まれる項目のIDを特定するテーブルとして、項目名辞書テーブル12a及びソート済項目名辞書テーブル12bのいずれかを用いることができる。検索部11bがソート済項目名辞書テーブル12bを用いる場合、項目名が所定の順序でソートされているため、検索条件に含まれる項目名である“Name”及び“Age”の検索を高速化することができる。以下、検索部11bは、ソート済項目名辞書テーブル12bを用いるものとして説明する。なお、検索部11bが項目名辞書テーブル12aを用いる場合には、管理領域12はソート済項目名辞書テーブル12bを格納しなくても良く、検索部11b及び後述する削除部11cはソート済項目名辞書テーブル12bを作成又は更新する処理を省略することができる。
 次に、検索部11bによる、特定したIDに基づく検索対象のファイル13aの絞り込みの処理の詳細を説明する。図8は、検索部11bによるファイルの絞り込み処理の一例を説明する図である。
 検索部11bは、ソート済項目名辞書テーブル12bに基づき、検索条件に含まれる項目のIDを特定すると、特定したIDに対応するビット位置の値を有効にした検索用ビット列を生成する。例えば、検索部11bが検索条件に含まれる項目名である“Name”及び“Age”のIDを“1”及び“3”と特定した場合、1ビット目,3ビット目のビット位置の値が“1”であり、それ以外のビット位置の値が“0”である検索用ビット列を生成する(図8参照)。なお、検索用ビット列の幅(最大ビット数)は、項目名ビット管理テーブル12cのビット列の幅と同じであることが好ましい。
 次いで、検索部11bは、検索用ビット列と項目名ビット管理テーブル12cの各ビット列とのAND(積)を算出し、算出した各積が、検索用ビット列と一致するビット列に対応するファイル13aを抽出する(絞り込む)。そして、検索部11bは、抽出したファイル13aを検索対象のファイル13aとして特定し、検索対象のファイル13aから、検索条件を満たすファイルを検索する。図8に示す例では、検索用ビット列とファイルYのビット列とのAND結果が検索用ビット列と一致するため、検索部11bは、ファイルYを検索対象のファイル13aとして特定し、ファイルYが検索条件を満たすレコードを保持しているか否かを、ファイルYを開いてレコードを読み出すことにより判断する。
 なお、図8に示すファイルYは、図2に示すように検索条件に含まれる項目名である“Name”及び“Age”を含んではいるが、“Name==“Yamamoto” AND Age==29”の検索条件を満たすレコードは保持していない。従って、この場合、検索部11bは、検索条件を満たすファイル13aの検索結果として、該当ファイル13aがない旨をユーザに出力する。一方、例えばファイルYが検索条件を満たすレコードを保持している場合には、検索部11bは、ファイルYから検索条件を満たすレコードを抽出して、抽出したレコードを検索結果としてユーザに出力する。
 なお、検索結果の出力の態様は、図示しないモニタ等に表示する、或いは抽出したレコードを保持するテーブルを作成し所定の記憶領域に格納する等、既知の種々の手法により行なうことが可能であり、その詳細な説明は省略する。
 このように、検索部11bは、格納するファイル13aに含まれる項目名をビット列として保持する項目名ビット管理テーブル12cと、ユーザが指定する検索条件との照らし合わせにより、目的の検索条件に合致するレコードが含まれないファイル13aを検索対象から除外して検索対象の絞り込みを行なう。
 削除部11cは、ファイル13aの削除要求があった場合に、項目名ビット管理テーブル12cから削除対象のファイル13aに係るレコード(情報)を削除するとともに、項目名辞書テーブル12aに対して、削除対象のファイル13aに含まれる項目のファイル数を更新する。
 具体的には、削除部11cは、項目名ビット管理テーブル12cに対して、削除するファイル13aに対応するビット列において値が有効であるビット位置を特定するとともに、削除するファイル13aに対応するビット列を削除する。そして、削除部11cは、項目名辞書テーブル12aに対して、特定したビット位置に対応する項目のファイル数から1を減算する。
 また、削除部11cは、ファイル数から1を減算した結果、該ファイル数が0になった場合に、項目名辞書テーブル12aから、ファイル数が0になったレコード、つまり項目名(項目)と該項目名に対応するIDと該項目を含むファイル数とを削除する。また、削除部11cは、ソート済項目名辞書テーブル12bから、ファイル数が0になったレコード、つまり項目名(項目)と該項目名に対応するIDとを削除する。
 そして、削除部11cは、削除対象のファイル13aを削除する。
 なお、削除部11cは、項目名ビット管理テーブル12cにおいて値が全てのファイル13aのビット列で無効である無効ビット位置がある場合、全てのビット列に対して無効ビット位置を詰めても良い。
 例えば、削除部11cが図2に示すファイルYの削除要求を受けた場合、ファイルYについて図5に示す項目名ビット管理テーブル12cの1ビット目~4ビット目が有効であることを特定し、ファイルYのレコードを削除する。この場合、項目名ビット管理テーブル12cにおいてID“3”,“4”に対応する3ビット目,4ビット目が有効であるビット列は存在しなくなる。そこで、削除部11cは、項目名ビット管理テーブル12cの全てのビット列に対して、無効ビット位置である3ビット目,4ビット目を詰める、つまり無効ビット位置のビットを削除するとともに、無効ビット位置よりも下位のビットを、削除したビット数だけ上位側にシフトさせる。なお、削除部11cは、項目名辞書テーブル12aにおいてファイル数が0になったレコードがある場合に、ファイル数が0になった項目に対応するIDを無効ビット位置として検出することができる。
 また、削除部11cは、無効ビット位置を詰める際に、項目名に対応するIDとビット列のビット位置とがずれないように、項目名辞書テーブル12a及びソート済項目名辞書テーブル12bにおいて削除したレコード以降のレコードのIDを詰める、つまり繰り上げても良い。
 〔1-2〕情報処理装置のハードウェア構成例
 次に、図9を参照して、本実施形態に係る情報処理装置1のハードウェア構成例を説明する。なお、図9は、図1に示す情報処理装置1のハードウェア構成例を示すブロック図である。
 図9に示すように、情報処理装置1は、サーバ2及びストレージ装置3を有している。サーバ2は、情報処理装置1として動作する電子計算機であり、CPU(Central Processing Unit)21,メモリ22,記憶装置23,及びネットワークコントローラ24を有している。また、ストレージ装置3は、サーバ2とネットワークを介して接続されており、記憶装置31及びネットワークコントローラ32を有している。
 CPU21は、メモリ22,記憶装置23,及びネットワークコントローラ24とそれぞれバス(及びコントローラ等)を介して接続され、種々の制御や演算を行なう処理装置である。CPU21は、メモリ22又は図示しないROM(Read Only Memory)等に格納されたプログラムを実行することにより、種々の機能を実現する。
 例えば本実施形態に係るCPU21は、上述したファイル管理部11としての機能を実現する。
 メモリ22は、種々のデータやプログラムを一時的に格納する記憶装置であって、CPU21がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。なお、メモリ22としては、例えばRAM等の揮発性メモリが挙げられる。
 また、本実施形態に係るメモリ22は、少なくとも一部の記憶領域が上述した管理領域12として用いられ、後述する記憶装置23及び/又は31に格納された各テーブル12a~12cが展開される。
 記憶装置23及び31は、例えばHDD等の磁気ディスク装置やSSD等の半導体ドライブ装置等の各種デバイスである。
 本実施形態に係る記憶装置23及び/又は31は、少なくとも一部の記憶領域が上述したファイル格納領域13として用いられ、複数のファイル13aや、メモリ22に展開される前の各テーブル12a~12cが格納される。なお、CPU21(ファイル管理部11)は、ファイル格納領域13に対して、ファイル13aの格納,検索対象のファイル13aの読み込み,ファイル13aの削除等の処理を行なう。
 ネットワークコントローラ24及び32は、接続先のネットワークコントローラとのインタフェース制御を行なうとともに、各種のデータ通信を行なうコントローラである。
 〔1-3〕情報処理装置の動作例
 次に、上述の如く構成された情報処理装置1における動作例を、図10~図15を参照して説明する。図10は、格納部11aにおけるファイル格納処理の一例を説明するフローチャートであり、図11は、ファイル13a及び各テーブル12a~12cの関係を説明する図である。図12は、格納部11aによる各テーブル12a~12cの更新処理の一例を説明する図であって、ファイルX,ファイルYの格納要求があった場合の処理を示す図である。図13は、検索部11bにおけるファイル検索処理の一例を説明するフローチャートであり、図14は、削除部11cにおけるファイル削除処理の一例を説明するフローチャートである。図15は、削除部11cによる各テーブル12a~12cの更新処理の一例を説明する図であって、ファイルYの削除要求があった場合の処理を示す図である。
 〔1-3-1〕ファイル格納処理
 はじめに、図10~図12を参照して、情報処理装置1におけるファイル格納処理の一例を説明する。なお、以下の説明では、各テーブル12a~12cにレコードが存在しない状態(例えば情報処理装置1の初期状態)において、図2に示すファイルX,ファイルYの格納要求を受けた場合を想定する。
 図10に示すように、ユーザ等からファイルX,ファイルYの格納要求が指示されると(ステップS1)、格納部11aにより、ファイル格納領域13から入力対象のファイルX,ファイルYが開かれ、読み込まれる(ステップS2)。そして、格納部11aにより、ファイルXから項目名{“Name”,“Address”}が、ファイルYから項目名{“Name”,“Address”,“Age”,“Gender”}が、それぞれ抽出される(ステップS3;図11参照)。このとき、新しい項目名が抽出されているため、格納部11aにより、抽出した項目名{“Name”,“Address”,“Age”,“Gender”}の順で、IDが最小の整数である1から付与されて項目名辞書テーブル12aに登録される(ステップS4)。また、格納部11aにより、当該項目名を含むファイル13aのファイル数“2”,“2”,“1”,“1”が求められ、項目名辞書テーブル12aに設定される(図11及び図12の項目名辞書テーブル12a参照)。
 そして、格納部11aにより、項目名辞書テーブル12aの項目名について所定の順序(例えば昇順)でソートされたソート済項目名辞書テーブル12bが作成又は更新される(ステップS5;図11及び図12のソート済項目名辞書テーブル12b参照)。また、格納部11aにより、ファイルX,ファイルYのファイル名とビット列とが項目名ビット管理テーブル12cに格納される(ステップS6;図11及び図12の項目名ビット管理テーブル12c参照)。最後に、格納部11aにより、ファイルX,ファイルYがファイル格納領域13に格納され(ステップS7)、処理が終了する。
 〔1-3-2〕ファイル検索処理
 次いで、図13を参照して、情報処理装置1におけるファイル検索処理の一例を説明する。なお、ファイル検索処理は、検索条件を満たすレコード(情報)を抽出するために、検索条件に含まれる項目を含むファイル13aを問い合わせる処理である。つまり、ファイル検索処理により、検索条件を満たすレコードを検索する検索対象のファイル13aが特定される。
 図13に示すように、ユーザ等から“Name==“Yamamoto” AND Age==29”の検索条件で、レコードの検索要求が指示されると(ステップS11)、検索部11bにより、検索条件の項目名と、ソート済項目名辞書テーブル12bに含まれる項目名とが照合され、該当するIDが特定される(ステップS12)。次いで、検索部11bにより、特定されたIDに基づいて検索用ビット列が生成される(ステップS13)。
 そして、検索部11bにより、検索用ビット列と項目名ビット管理テーブル12cの各ビット列とのAND(積)が取られ、AND結果が検索用ビット列と一致したビット列に対応するファイルYのみが検索対象に特定され(ステップS14;図8参照)、処理が終了する。なお、この場合、検索部11bは、ファイルYのみを開き、検索条件を満たすレコードの有無を判断して判断結果をユーザ等に出力する。一方、検索部11bは、絞り込みにより除外されたファイル13aであるファイルXは開かない。
 〔1-3-3〕ファイル削除処理
 次に、図14及び図15を参照して、情報処理装置1におけるファイル削除処理の一例を説明する。
 図14に示すように、ユーザ等によりファイルYの削除要求を受けると(ステップS21)、削除部11cにより、項目名ビット管理テーブル12cにおいて、ファイルYのビット列がチェックされ、当該ビット列(レコード)が削除される(ステップS22;図15の項目名ビット管理テーブル12c参照)。次いで、削除部11cにより、項目名辞書テーブル12aに対して、ステップS22でチェックしたビット列のビット位置、つまりファイルYに含まれていた項目のID、に対応する“項目を含むファイル数”から1が減算される(ステップS23;図15の項目名辞書テーブル12a参照)。
 項目名辞書テーブル12aの“項目を含むファイル数”が0になった場合、削除部11cにより、そのレコードが、項目名辞書テーブル12a及びソート済項目名辞書テーブル12bから削除される(ステップS24;図15の項目名辞書テーブル12a及びソート済項目名辞書テーブル12b参照)。一方、削除部11cは、“項目を含むファイル数”が0でないレコードに対しては、処理を行なわない。最後に、削除部11cにより、ファイルYがファイル格納領域13から削除され(ステップS25)、処理が終了する。
 以上のように、本実施形態の一例としての情報処理装置1によれば、検索部11bにより、項目名ごとに管理される項目名辞書テーブル12a又はソート済項目名辞書テーブル12bと、ファイル13aごとに管理される項目名ビット管理テーブル12cとに基づいて、要求された検索条件を満たすファイル13aが検索される。すなわち、検索部11bは、全ての項目名について各ファイル13aに含まれるか否かを判断することができ、図21に示す手法とは異なり、ユーザが指定するレコードの検索条件に依存せずに、検索対象のファイル13aを絞り込むことができる。このように、各テーブル12a~12cによる項目名の一括管理により、検索部11bにより検索対象のファイル13aが絞り込まれるため、ファイル13aのオープンコストを削減でき、検索効率を向上させることができる。
 例えば、検索条件に合致する項目名が、ファイル格納領域13内の全ファイル13aのうちのn%のファイル13aに含まれる場合、最大で100/n倍(n=50であれば最大2倍,n=1であれば最大100倍)の検索性能の向上が見込める。特に、検索部11bによるレコードの検索処理の多重度が小さい場合に、より効果的である。
 また、削除部11cにより、ファイルの削除要求があった場合に、項目名辞書テーブル12aに対して、削除対象のファイル13aに含まれる項目のファイル数が更新される。そして、ファイル数が0になった場合に、削除部11cにより、項目名辞書テーブル12a及びソート済項目名辞書テーブル12bからファイル数が0になったレコードが削除される。
 従って、ファイル13aの登録及び削除が繰り返された場合でも、格納するファイル13aに存在しない項目が項目名辞書テーブル12aに残存することがない。これにより、検索部11bは、格納する全てのファイル13aに含まれない項目が検索条件に含まれていても、当該項目を項目名辞書テーブル12aから検索しないようにすることができ、検索条件に含まれる項目に対応するIDの特定処理を効率的に行なうことができる。また、検索部11bは、不要な項目(レコード)が削除された項目名辞書テーブル12aから検索条件に含まれる項目名の探索を行なうことができ、項目名の探索性能を向上させることができる。さらに、検索対象のファイル13aに存在しないファイル13aが含まれることもないため、ファイル13aのオープンコストを削減でき、検索条件を満たすファイル13aの検索を高速化することができる。
 また、削除部11cにより、項目名ビット管理テーブル12cから削除対象のファイル13aに係るレコードが削除される。従って、ファイル13aの登録及び削除が繰り返された場合でも、項目名ビット管理テーブル12cには存在しないファイル13aに対応するレコードが残存することがない。これにより、検索部11bは、存在しないファイル13aを読み込もうとすることがなく、ファイル13aのオープンコストを削減でき、検索条件を満たすファイル13aの検索を高速化することができる。
 このように、ファイル13aの登録時及び削除時に管理テーブル(テーブル12a~12c)がメンテナンスされる。つまり、ファイル13aの登録のみならず削除にも対応した管理テーブル(テーブル12a~12c)の構造により、ファイル13aの登録及び削除が繰り返されても、検索部11bの検索レスポンスの低下を抑止でき、安定した検索レスポンスを得ることができる。
 さらに、格納部11aにより、格納対象のファイル13aから収集した項目名がIDに割り当てられて項目名辞書テーブル12aに設定される。つまり、項目名が辞書化して保存されるため、データ量が小さく抑えられ、記憶領域を効率的に利用することができる。
 また、検索部11bにより、検索条件に含まれる項目名に対応したIDを特定する際に、項目名を辞書順にソートして保持するソート済項目名辞書テーブル12bが用いられることで、項目名の探索範囲を限定することができ、検索コストを削減することができる。
 さらに、検索部11bにより、検索条件に基づいて生成した検索用ビット列と、項目名ビット管理テーブル12cが保持する各ビット列とが比較される。これにより、文字列の比較よりも高速に検索対象のファイル13aを絞り込むことができ、比較コストを削減することができる。
 〔2〕変形例
 〔2-1〕第1変形例
 上述した一実施形態では、検索部11bが検索対象のファイル13aを絞り込む際に、項目名ビット管理テーブル12cが保持するビット列のビット幅と同じ幅の検索用ビット列を、検索条件に基づいて生成するものとして説明したが、これに限定されるものではない。
 例えば、一実施形態の第1変形例としての検索部11bは、検索条件に複数の項目名が含まれる場合、これら複数の項目のうち、ファイル数が少ない項目に対応するビット位置の値のみが有効であって、当該ビット位置が最終ビットとなる検索用ビット列を生成しても良い。この場合、検索部11bは、生成した検索用ビット列と、項目名ビット管理テーブル12cの各ビット列のうちの検索用ビット列のビット幅と同じ幅のビット列と、のANDを取るようにしても良い。これにより、検索条件に応じてANDの演算を行なうビット幅を減少させることができる。
 図16は、一実施形態の第1変形例に係る検索部11bによるファイル13aの絞り込み処理を説明する図である。例えば、図16に示すように、検索条件に含まれる項目名{“Name”,“Address”}を含むファイル数が、それぞれ“1000”,“5”である場合を想定する。
 この場合、検索部11bは、ファイル数が少ない項目名“Address”に対応するID“2”を項目名辞書テーブル12aに基づき特定する。次いで、検索部11bは、図16に示すように、特定したIDに対応するビット位置(2ビット目)の値を有効にした検索用ビット列であって、先頭のビット位置から有効にしたビット位置までのビット幅(2ビット)を持つ検索用ビット列“01”を生成する。
 次いで、検索部11bは、図16に示すように、検索用ビット列“01”と、項目名ビット管理テーブル12cの各ビット列であって、先頭のビット位置から有効にしたビット位置まで、つまり2ビット目までの各ビット列“11”及び“11”とのAND(積)を求める。
そして、検索部11bは、AND結果が検索用ビット列と一致するビット列に対応するファイル13aを検索対象のファイルとして特定し、特定した検索対象のファイル13aから検索条件を満たすファイル13aを検索する。
 このように、第1変形例としての情報処理装置1によっても、上述した一実施形態と同様の効果を奏することができるほか、検索部11bは、検索対象のファイル13aの絞り込みの優先度を設け、絞り込み効果が高いカラムについて優先的に絞り込み処理を実施する。従って、検索条件に応じてANDの演算を行なうビット幅を減少させることができ、検索対象のファイル13aの絞り込み処理の検索効率を向上させることができる。
 なお、検索部11bは、検索条件に含まれる項目名のIDのうちの、最大のIDをビット幅とした検索用ビット列を生成し、生成した検索用ビット列と、項目名ビット管理テーブル12cの各ビット列のうちの検索用ビット列のビット幅と同じ幅のビット列と、のANDを取るようにしても良い。
 一例として、検索部11bは、ユーザ等から“Name==“Yamamoto”AND Address==“TOKYO””の検索条件で検索要求を受けると、ソート済項目名辞書テーブル12bを参照して、項目名{“Name”,“Address”}のIDをそれぞれ“1”,“2”と特定する。このとき、検索部11bは、1ビット目,2ビット目が有効つまり“1”である、2ビットの検索用ビット列を生成する。そして、検索部11bは、生成した2ビットの検索用ビット列と、項目名ビット管理テーブル12cが保持する各ビット列の1ビット目,2ビット目のビットのみとのANDを取る。
 これによっても、検索条件に応じてANDの演算を行なうビット幅を減少させることができ、検索対象のファイル13aの絞り込み処理の検索効率を向上させることができる。
 〔2-2〕第2変形例
 上述した一実施形態及び第1変形例では、検索部11bは、検索条件に応じて検索対象のファイル13aの絞り込みを行なうものとして説明したが、これに限定されるものではない。
 例えば、検索部11bは、検索条件に含まれる項目を含むファイル数が所定の閾値を超える場合、ファイル13aの絞り込み処理を抑止し、全てのファイル13aから、検索条件を満たすファイル13aを検索することとしても良い。ここで、所定の閾値は、項目名辞書テーブル12aのリードコストとファイル13aのリードコストに基づいて予め定められる。
 項目名辞書テーブル12aのリードコストとしては、例えば項目名辞書テーブル12aに含まれる項目数、つまりレコード数が挙げられる。また、ファイル13aのリードコストとしては、例えば、ファイル13aのサイズが挙げられる。
 図17は、一実施形態の第2変形例に係る項目名辞書テーブル12a′を示す図であり、図18は、項目名ビット管理テーブル12c′を示す図である。図17及び図18に示すように、第2変形例に係る項目名辞書テーブル12a′は、項目ごとの当該項目を含むファイル13aの合計サイズをさらに含み、項目名ビット管理テーブル12c′は、ファイル13aごとにファイルサイズをさらに含む。一例として、項目名辞書テーブル12a′は、“ID=1”,“項目名=Name”,“項目を含むファイル数=1000”,“合計ファイルサイズ=200MB”のレコードと、“ID=2”,“項目名=Address”,“項目を含むファイル数=800”,“合計ファイルサイズ=1GB”のレコードと、を保持する。また、項目名ビット管理テーブル12c′は、ファイルXについてのビット列及びファイルサイズ“10MB”のレコードと、ファイルYについてのビット列及びファイルサイズ“1MB”のレコードと、を保持する。これらの合計サイズ及びファイルサイズは、ファイル13aのリードコストに影響を与える情報として、例えば検索部11bにより所定の閾値を算出する際に用いられる。
 検索部11bによる検索対象のファイル13aの絞り込みの処理においては、検索条件に含まれるIDを特定する際に、項目名辞書テーブル12aのレコード数が増加すると、項目名の検索時間も増加し、処理性能が低下する。一方、絞り込みを行なわずに検索条件を満たすレコードを全てのファイル13aから検索する際に、検索対象のファイル数が多い場合やファイルサイズが大きい場合には、検索対象のファイル13aを開く時間も増加し、処理性能が低下する。
 そこで、第2変形例に係る検索部11bは、絞り込みに要する項目名辞書テーブル12aのリードコストと、レコードを読み込む際のファイル13aのリードコストとを比較し、検索対象のファイル13aを絞り込むことで検索性能の向上が見込めるであろう所定の閾値を算出する。そして、検索部11bは、ファイル数が所定の閾値を超える場合には、ファイル13aの絞り込み処理の効果が少ないと判断し、全てのファイル13aを検索対象とする。
 このように、第2変形例としての情報処理装置1によっても、上述した一実施形態と同様の効果を奏することができるほか、検索部11bは、ファイル13aの絞り込みの効果が少ない場合に、リードコストがかかる無駄な絞り込み処理を抑止することができるため、処理性能の低下を抑止することができる。
 〔3〕その他
 以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
 例えば、上述した実施形態及び各変形例では、ファイル13aとして、CSV形式やXML形式のファイルを例に挙げて説明したが、これに限定されるものではない。例えば、ファイル13aとして、TSV(Tab-Separated Values)等のDSV(Delimiter-Separated Values)形式や、HTML(HyperText Markup Language)等のデータ記述言語による形式等、種々の形式のフラットファイルが用いられても良い。
 また、検索要求の対象となるファイル13aが全てCSV形式の場合について説明したが、検索要求の対象がXML形式等の他の形式のファイル13aであっても、ファイル管理部11は既述の処理を行なうことができる。
 さらに、検索要求の対象となるファイル13aが、CSV形式及びXML形式のように複数の形式のファイル13aであっても良い。なお、格納部11aにより抽出される項目名の形態は、CSV形式の場合とXML形式の場合とで異なる。例えば図6及び図7において、人物の姓を示す項目名は、図6のCSV形式の場合は“Name”である一方、図7のXML形式の場合は“/root/person/name”である。そこで、検索要求が複数の形式のファイル13aを対象とする場合には、管理領域12は、CSV形式及びXML形式のように異なる形式のファイル13a間で同一又は略同一とみなせる項目名を対応付ける変換テーブルをさらに格納することとしても良い。これにより、検索部11bは、検索要求に含まれる項目名を、変換テーブルに基づき検索対象のファイル13aに応じた適切な項目名に変換することができ、異なる形式のファイル13a間での横断検索を実現することができる。なお、変換テーブルは、ユーザが必要に応じて情報処理装置1に対して設定されても良いし、予めいくつかのパターンが設定されても良い。
 また、格納部11aは、ユーザ等からファイル13aの格納要求があった場合に、格納対象のファイル13aについて各テーブル12a~12cを更新するものとして説明したが、これに限定されるものではない。例えば、格納部11aは、所定の周期又はタイミングで、各テーブル12a~12cをリセット(例えば全レコード又はテーブル自体を削除)し、ファイル格納領域13に格納された全てのファイル13aから既述の処理により項目名を抽出して、各テーブル12a~12cを作成又は更新しても良い。これにより、ファイル13aの登録及び削除が繰り返されて、各テーブル12a~12cとファイル13aとの間に不整合が生じても、所定の周期又はタイミングで各テーブル12a~12cがリフレッシュされるため、検索処理において不要なファイル13aへの検索が行なわれることを防止でき、検索レスポンスの低下を抑止することができる。
 さらに、検索部11bは、検索対象のファイル13aを絞り込んだ後に、図21を用いて説明した処理を行ない、さらに検索対象のファイル13aを絞り込んでも良い。例えば、格納部11aは、ファイル13aを格納する際に、全ての項目,所定の項目,或いは過去の実績からユーザから要求された検索条件に含まれる可能性の高い項目について、格納するファイル13aに含まれる最大値及び最小値を収集する。そして、格納部11aは、収集した項目ごとの最大値及び最小値を、ファイル13aと対応付けて管理領域12に格納する(図21参照)。そして、検索部11bは、ビット列に基づいて検索対象のファイル13aを絞り込んだ後に、検索条件を満たす範囲のレコードを持つファイル13aを、管理領域12に格納された最大値及び最小値の情報から絞り込む。
 これにより、検索部11bは、ビット列に基づいて検索対象のファイル13aを絞り込んだ後に、ファイル13aを開くことなく検索条件を満たすレコードを持つファイル13aを絞り込むことができ、検索効率をさらに向上させることができる。
 なお、上述したファイル管理部11(格納部11a,検索部11b,削除部11c)の各種機能の全部もしくは一部は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のプログラムを実行することによって実現される。
 そのプログラムは、例えばフレキシブルディスク,CD(CD-ROM,CD-R,CD-RWなど),DVD(DVD-ROM,DVD-RAM,DVD-R,DVD-RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
 ここで、コンピュータとは、ハードウェアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウェアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、本実施形態の情報処理装置1の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
 なお、前記目的に限らず、上述した発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
 1  情報処理装置
 11  ファイル管理部
 11a  登録部
 11b  検索部
 11c  削除部
 12  管理領域(保持部)
 12a,12a′  項目名辞書テーブル(項目情報)
 12b  ソート済項目名辞書テーブル(ソート済項目情報)
 12c,12c′  項目名ビット管理テーブル(ファイル情報)
 13  ファイル格納領域
 13a,13a-1,13a-2  フラットファイル(ファイル)
 2  サーバ
 21  CPU
 22  メモリ
 23,31   記憶装置
 24,32  ネットワークコントローラ
 3  ストレージ装置

Claims (20)

  1.  複数の項目を持つ情報を保持するファイルを管理する情報処理装置であって、
     前記項目と該項目を含むファイル数とを対応付けた項目情報と前記ファイルごとに各項目を含むか否かを示すファイル情報とに基づいて、要求された検索条件を満たすファイルを検索する検索部と、
     ファイルの削除要求があると、前記項目情報に対して、前記削除対象のファイルに含まれる項目のファイル数を更新し、該ファイル数が0になった場合に前記項目情報からファイル数が0になった項目と該項目を含むファイル数とを削除する削除部と、
     を有することを特徴とする、情報処理装置。
  2.  前記項目情報は、前記項目ごとの識別子をさらに含み、
     前記ファイル情報は、前記ファイルごとに、前記識別子に対応するビット位置の値の有効又は無効に応じて該ファイルが前記識別子に対応する項目を含むか否かを示すビット列を持つことを特徴とする、請求項1記載の情報処理装置。
  3.  前記削除部は、前記ファイル情報に対して、前記削除するファイルに対応するビット列において値が有効であるビット位置を特定するとともに、該ビット列を削除し、前記項目情報に対して、前記特定したビット位置に対応する項目のファイル数を減算することを特徴とする、請求項2記載の情報処理装置。
  4.  前記削除部は、前記ファイル情報において値が全てのビット列で無効である無効ビット位置がある場合に、前記全てのビット列に対して前記無効ビット位置のビットを削除するとともに、前記無効ビット位置よりも下位のビットを、削除したビット数だけ上位側にシフトすることを特徴とする、請求項3記載の情報処理装置。
  5.  前記検索部は、前記項目情報に基づき前記検索条件に含まれる項目の識別子を特定し、前記特定した識別子に対応するビット位置の値が有効である検索対象のファイルを、前記ファイル情報に基づいて抽出し、抽出したファイルから、前記検索条件を満たすファイルを検索することを特徴とする、請求項2~4のいずれか1項記載の情報処理装置。
  6.  前記検索部は、前記項目情報に基づき前記特定した識別子に対応するビット位置の値を有効にした検索用ビット列を生成し、前記検索用ビット列と前記ファイル情報の各ビット列との積が、前記検索用ビット列と一致するビット列に対応する前記検索対象のファイルから、前記検索条件を満たすファイルを検索することを特徴とする、請求項5記載の情報処理装置。
  7.  前記検索部は、前記検索条件に複数の項目が含まれる場合、前記検索条件に含まれる複数の項目のうち、対応するファイル数が少ない項目について、前記項目情報に基づき識別子を特定し、前記特定した識別子に対応するビット位置の値を有効にした前記検索用ビット列であって、先頭のビット位置から前記有効にしたビット位置までのビット幅を持つ前記検索用ビット列を生成し、前記検索用ビット列と、前記ファイル情報の各ビット列であって、前記先頭のビット位置から前記有効にしたビット位置までの各ビット列との積が、前記検索用ビット列と一致するビット列に対応する前記検索対象のファイルから、前記検索条件を満たすファイルを検索することを特徴とする、請求項6記載の情報処理装置。
  8.  前記検索部は、前記項目情報に基づき前記特定した識別子に対応するファイル数が所定の閾値を超える場合、前記特定した識別子に対応するビット位置の値が有効である前記検索対象のファイルの抽出を抑止し、全てのファイルから、前記検索条件を満たすファイルを検索することを特徴とする、請求項5~7のいずれか1項記載の情報処理装置。
  9.  前記項目情報は、前記項目ごとの該項目を含むファイルの合計サイズをさらに含み、
     前記検索部は、前記項目ごとの前記合計サイズに基づいて、前記所定の閾値を算出することを特徴とする、請求項8記載の情報処理装置。
  10.  前記検索部は、前記項目情報に含まれる複数の項目であって所定の順序でソートした項目と、該項目に対応する識別子とを含むソート済項目情報に基づき前記検索条件に含まれる項目の識別子を特定するとともに、
     前記削除部は、前記削除対象のファイルに含まれる項目のファイル数が0になった場合に、前記ソート済項目情報からファイル数が0になった項目と該項目に対応する識別子とをさらに削除することを特徴とする、請求項2~9のいずれか1項記載の情報処理装置。
  11.  複数の項目を持つ情報を保持するファイルを管理するファイル管理方法であって、
     前記項目と該項目を含むファイル数とを対応付けた項目情報と、前記ファイルごとに各項目を含むか否かを示すファイル情報と、に基づいて、要求された検索条件を満たすファイルを検索し、
     ファイルの削除要求があると、前記項目情報に対して、前記削除対象のファイルに含まれる項目のファイル数を更新し、該ファイル数が0になった場合に前記項目情報からファイル数が0になった項目と該項目を含むファイル数とを削除する、
     ことを特徴とする、ファイル管理方法。
  12.  前記項目情報は、前記項目ごとの識別子をさらに含み、
     前記ファイル情報は、前記ファイルごとに、前記識別子に対応するビット位置の値の有効又は無効に応じて該ファイルが前記識別子に対応する項目を含むか否かを示すビット列を持つことを特徴とする、請求項11記載のファイル管理方法。
  13.  前記ファイル情報から削除対象のファイルに係る情報を削除する処理において、前記ファイル情報に対して、前記削除するファイルに対応するビット列において値が有効であるビット位置を特定するとともに、該ビット列を削除し、
     前記項目情報に対して、前記削除対象のファイルに含まれる項目のファイル数を更新する処理において、前記項目情報に対して、前記特定したビット位置に対応する項目のファイル数を減算する、
     ことを特徴とする、請求項12記載のファイル管理方法。
  14.  前記ファイル情報から削除対象のファイルに係る情報を削除する処理において、前記ファイル情報において値が全てのビット列で無効である無効ビット位置がある場合に、前記全てのビット列に対して前記無効ビット位置のビットを削除するとともに、前記無効ビット位置よりも下位のビットを、削除したビット数だけ上位側にシフトする、
     ことを特徴とする、請求項13記載のファイル管理方法。
  15.  前記検索する処理において、
     前記項目情報に基づき前記検索条件に含まれる項目の識別子を特定し、
     前記特定した識別子に対応するビット位置の値が有効である検索対象のファイルを、前記ファイル情報に基づいて抽出し、
     抽出したファイルから、前記検索条件を満たすファイルを検索する、
     ことを特徴とする、請求項12~14のいずれか1項記載のファイル管理方法。
  16.  複数の項目を持つ情報を保持するファイルを管理するコンピュータに実行させるファイル管理プログラムであって、
     前記項目と該項目を含むファイル数とを対応付けた項目情報と、前記ファイルごとに各項目を含むか否かを示すファイル情報と、に基づいて、要求された検索条件を満たすファイルを検索し、
     ファイルの削除要求があると、前記項目情報に対して、前記削除対象のファイルに含まれる項目のファイル数を更新し、該ファイル数が0になった場合に前記項目情報からファイル数が0になった項目と該項目を含むファイル数とを削除する、
     処理を前記コンピュータに実行させることを特徴とする、ファイル管理プログラム。
  17.  前記項目情報は、前記項目ごとの識別子をさらに含み、
     前記ファイル情報は、前記ファイルごとに、前記識別子に対応するビット位置の値の有効又は無効に応じて該ファイルが前記識別子に対応する項目を含むか否かを示すビット列を持つことを特徴とする、請求項16記載のファイル管理プログラム。
  18.  前記ファイル情報から削除対象のファイルに係る情報を削除する処理において、前記ファイル情報に対して、前記削除するファイルに対応するビット列において値が有効であるビット位置を特定するとともに、該ビット列を削除し、
     前記項目情報に対して、前記削除対象のファイルに含まれる項目のファイル数を更新する処理において、前記項目情報に対して、前記特定したビット位置に対応する項目のファイル数を減算する、
     処理を前記コンピュータに実行させることを特徴とする、請求項17記載のファイル管理プログラム。
  19.  前記ファイル情報から削除対象のファイルに係る情報を削除する処理において、前記ファイル情報において値が全てのビット列で無効である無効ビット位置がある場合に、前記全てのビット列に対して前記無効ビット位置のビットを削除するとともに、前記無効ビット位置よりも下位のビットを、削除したビット数だけ上位側にシフトする、
     処理を前記コンピュータに実行させることを特徴とする、請求項18記載のファイル管理プログラム。
  20.  前記検索する処理において、
     前記項目情報に基づき前記検索条件に含まれる項目の識別子を特定し、
     前記特定した識別子に対応するビット位置の値が有効である検索対象のファイルを、前記ファイル情報に基づいて抽出し、
     抽出したファイルから、前記検索条件を満たすファイルを検索する、
     処理を前記コンピュータに実行させることを特徴とする、請求項17~19のいずれか1項記載のファイル管理プログラム。
PCT/JP2012/066142 2012-06-25 2012-06-25 情報処理装置、ファイル管理方法、及びファイル管理プログラム WO2014002161A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014522237A JP5958539B2 (ja) 2012-06-25 2012-06-25 情報処理装置、ファイル管理方法、及びファイル管理プログラム
PCT/JP2012/066142 WO2014002161A1 (ja) 2012-06-25 2012-06-25 情報処理装置、ファイル管理方法、及びファイル管理プログラム
US14/571,517 US10339104B2 (en) 2012-06-25 2014-12-16 Information processing apparatus, file management method, and computer-readable recording medium having stored therein file management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/066142 WO2014002161A1 (ja) 2012-06-25 2012-06-25 情報処理装置、ファイル管理方法、及びファイル管理プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/571,517 Continuation US10339104B2 (en) 2012-06-25 2014-12-16 Information processing apparatus, file management method, and computer-readable recording medium having stored therein file management program

Publications (1)

Publication Number Publication Date
WO2014002161A1 true WO2014002161A1 (ja) 2014-01-03

Family

ID=49782397

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/066142 WO2014002161A1 (ja) 2012-06-25 2012-06-25 情報処理装置、ファイル管理方法、及びファイル管理プログラム

Country Status (3)

Country Link
US (1) US10339104B2 (ja)
JP (1) JP5958539B2 (ja)
WO (1) WO2014002161A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10331947B2 (en) * 2017-04-26 2019-06-25 International Business Machines Corporation Automatic detection on string and column delimiters in tabular data files
US10983893B1 (en) * 2019-02-08 2021-04-20 NeuShield, Inc. Data health monitoring system and methods
US11238107B2 (en) * 2020-01-06 2022-02-01 International Business Machines Corporation Migrating data files to magnetic tape according to a query having one or more predefined criterion and one or more query expansion profiles

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020545A (ja) * 1998-07-07 2000-01-21 Matsushita Electric Ind Co Ltd 情報検索装置、情報検索方法及び情報検索プログラムを記録した記録媒体
JP2007034878A (ja) * 2005-07-29 2007-02-08 Turbo Data Laboratory:Kk 情報処理方法、情報処理装置および情報処理プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01237723A (ja) 1988-03-17 1989-09-22 Sharp Corp 情報登録検索方法
JPH1063555A (ja) * 1996-08-19 1998-03-06 Hitachi Ltd ファイル管理方法
US5946677A (en) * 1997-04-14 1999-08-31 Electronic Data Systems Corporation System and method for locating and deleting computer files stored on a mass storage device
JP2000242536A (ja) 1999-02-19 2000-09-08 Nec Information Service Ltd 項目辞書
JP2007508753A (ja) * 2003-10-17 2007-04-05 パクバイト ソフトウエア プロプライアタリー リミティド データ圧縮システム及び方法
JP4509536B2 (ja) * 2003-11-12 2010-07-21 株式会社日立製作所 情報管理を支援する情報処理装置、情報管理方法、プログラム、および記録媒体
US7594254B2 (en) * 2004-03-22 2009-09-22 Cox Communications, Inc System and method for transmitting files from a sender to a receiver in a television distribution network
JP4042759B2 (ja) * 2005-05-17 2008-02-06 コニカミノルタビジネステクノロジーズ株式会社 データファイル管理装置,データファイル管理プログラム及び該プログラムを記録した記録媒体
JP4256397B2 (ja) * 2006-02-17 2009-04-22 誠 後藤 ファイル格納装置
JP5304172B2 (ja) * 2007-12-04 2013-10-02 株式会社リコー ファイル管理装置、ファイル管理方法及びファイル管理プログラム
US20090169001A1 (en) * 2007-12-28 2009-07-02 Cisco Technology, Inc. System and Method for Encryption and Secure Transmission of Compressed Media
US8832598B2 (en) * 2008-05-09 2014-09-09 Ricoh Company, Limited File management apparatus, file management method, and computer program product
JP2010140116A (ja) * 2008-12-09 2010-06-24 Ricoh Co Ltd ファイル管理装置、ファイル管理方法及びファイル管理プログラム
US8650229B2 (en) * 2010-11-18 2014-02-11 II Hector Fuentes System and method for removing master file table ($MFT) file record segments (FRS)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020545A (ja) * 1998-07-07 2000-01-21 Matsushita Electric Ind Co Ltd 情報検索装置、情報検索方法及び情報検索プログラムを記録した記録媒体
JP2007034878A (ja) * 2005-07-29 2007-02-08 Turbo Data Laboratory:Kk 情報処理方法、情報処理装置および情報処理プログラム

Also Published As

Publication number Publication date
JPWO2014002161A1 (ja) 2016-05-26
US20150106409A1 (en) 2015-04-16
JP5958539B2 (ja) 2016-08-02
US10339104B2 (en) 2019-07-02

Similar Documents

Publication Publication Date Title
US8359315B2 (en) Generating a representative sub-signature of a cluster of signatures by using weighted sampling
JP4740060B2 (ja) 重複データ検出プログラム、重複データ検出方法および重複データ検出装置
JP6028567B2 (ja) データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法
US8521759B2 (en) Text-based fuzzy search
US8209313B2 (en) Structuring and searching data in a hierarchical confidence-based configuration
KR101496179B1 (ko) 데이터 부재 태깅 기반의 정보 검색 시스템 및 방법
KR101744892B1 (ko) 시계열 계층 인덱싱을 이용한 데이터 검색 시스템 및 데이터 검색 방법
JP2005122702A5 (ja)
JP5199317B2 (ja) データベース処理方法、データベース処理システム及びデータベースサーバ
US20070100888A1 (en) Method and apparatus for managing content file information, and recording medium storing program for performing the method
CN110888837B (zh) 对象存储小文件归并方法及装置
JP5958539B2 (ja) 情報処理装置、ファイル管理方法、及びファイル管理プログラム
JP2014153961A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP5753056B2 (ja) 検索装置、文書管理方法、及び文書検索システム
JP6194980B2 (ja) 検索プログラム、検索方法、及び情報処理装置
WO2012081165A1 (ja) データベース管理装置及びデータベース管理方法
WO2020136790A1 (ja) エッジシステム、情報処理方法及び情報処理プログラム
KR100859710B1 (ko) 데이터에 대한 검색을 수행하기 위한 자료구조를 이용하여 데이터를 검색, 저장, 삭제하는 방법
KR101440475B1 (ko) 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체
US20200218705A1 (en) System and method of managing indexing for search index partitions
US20110307492A1 (en) Multi-region cluster representation of tables of contents for a volume
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム
JP5906810B2 (ja) 全文検索装置、プログラム及び記録媒体
KR100899817B1 (ko) 데이터에 대한 검색을 수행하는 자료구조를 기록한컴퓨터로 읽을 수 있는 기록매체
JP4106281B2 (ja) 情報検索評価装置、情報検索評価方法、情報検索評価装置用プログラム、及び情報検索評価装置用記録媒体

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12879956

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014522237

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12879956

Country of ref document: EP

Kind code of ref document: A1