JP2018018240A - データ処理装置およびプログラム - Google Patents
データ処理装置およびプログラム Download PDFInfo
- Publication number
- JP2018018240A JP2018018240A JP2016147020A JP2016147020A JP2018018240A JP 2018018240 A JP2018018240 A JP 2018018240A JP 2016147020 A JP2016147020 A JP 2016147020A JP 2016147020 A JP2016147020 A JP 2016147020A JP 2018018240 A JP2018018240 A JP 2018018240A
- Authority
- JP
- Japan
- Prior art keywords
- file
- byte sequence
- storage
- byte
- stored
- 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.)
- Pending
Links
Images
Abstract
【課題】本発明は、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、ストレージサーバに格納されるファイルの総容量を小さくすることを目的とする。【解決手段】特定手段11は、処理対象であるファイルを構成するバイト列と、ストレージ16に記憶されたファイルを構成するバイト列とを比較し、両者に共通して含まれるバイト列を特定する。分割手段12は、特定手段11により特定されたバイト列を用いて、処理対象であるファイルを複数のファイルに分割する。格納手段13は、分割手段12により生成された複数のファイルのうち、バイト列がストレージ16に記憶されているファイルと異なるファイルをストレージ16に格納する。【選択図】図2
Description
本発明は、データ処理装置およびプログラムに関する。
ストレージサーバに記憶されるデータの容量を削減するための手法が種々提案されている。特許文献1には、使用の条件を満たさなくなるとファイルの全部または一部を自動的に削除するファイル管理技術が提案されている。また、特許文献2には、変数データの間を埋める固定文字列データにより記述されるテンプレートを予めデータベースに格納しておき、動的コンテンツに対してテンプレートが適用できるか否かを検証し、適用できると判定された場合に差分データを差分保存DB34に保存し、端末装置からの復元リクエストに対し、テンプレートDB33に保存されたテンプレートと差分保存DB34に保存された差分データとを組み合わせることにより動的コンテンツを復元する装置が提案されている。
特許文献3には、ファイルXと既存ファイル1〜Nとの間の類似性有無を判断する技術として、目的のファイルXと既存のファイル1〜Nのそれぞれを、複数の、かつ、少なくとも同じアドレスではサイズが同じであるブロックに分割し、ブロック毎にチェックサム値を求め、同じアドレスのブロック同士のチェックサム値を比較し、上記の比較の結果、どれか一つのブロックのチェックサム値でも、両ファイルXとKの間で一致したときには、一致したファイルXとKは類似性有りと判定することが提案されている。
本発明は、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、ストレージサーバに格納されるファイルの総容量を小さくすることを目的とする。
本発明の請求項1に係るデータ処理装置は、処理対象であるファイルを構成するバイト列と予め定められたストレージに記憶されたファイルを構成するバイト列とを比較し、両者に共通して含まれるバイト列を特定する特定手段と、前記特定されたバイト列を用いて、前記処理対象であるファイルを複数のファイルに分割する分割手段と、前記分割により生成された複数のファイルのうち、バイト列が前記ストレージに記憶されているファイルと異なるファイルを、前記ストレージに格納する格納手段とを有することを特徴とする。
本発明の請求項2に係るデータ処理装置は、請求項1に記載の構成において、前記格納手段は、前記分割により生成された複数のファイルのパスのリストを、前記処理対象であるファイルのパスを示す情報として予め定められた記憶領域に格納することを特徴とする。
本発明の請求項3に係るデータ処理装置は、請求項1または2に記載の構成において、前記分割手段は、前記処理対象であるファイルを、前記特定されたバイト列のファイルと、当該特定されたバイト列の前部分のバイト列で構成されるファイルと、当該特定されたバイト列の後ろ部分のバイト列で構成されるファイルとに分割することを特徴とする。
本発明の請求項4に係るデータ処理装置は、請求項1乃至3のいずれか1項に記載の構成において、前記処理対象であるファイルを解析し、当該ファイルに含まれるキーワードを1または複数抽出する抽出手段を更に有し、前記特定手段は、前記抽出されたキーワードを前記ストレージに記憶されたファイルに対応するキーワードと比較し、比較結果に基づいて前記ストレージに記憶されたファイルから比較対象とするファイルを選定することを特徴とする。
本発明の請求項5に係るデータ処理装置は、請求項1乃至4のいずれか1項に記載の構成において、バイト列が複数記憶されたデータベースを参照し、当該データベースに記憶されたバイト列を前記処理対象であるファイルから検出する検出手段を更に有し、前記特定手段は、前記検出手段により前記処理対象であるファイルから前記データベースに登録されたバイト列が検出された場合、前記ストレージに記憶されているファイルであって前記検出されたバイト列が含まれるファイルと、前記処理対象であるファイルとにおいて、前記検出されたバイト列の後に続くバイト列および前記検出されたバイト列の前に続くバイトの列の少なくともいずれか一方を比較することにより、両者に共通して含まれるバイト列を特定することを特徴とする。
本発明の請求項6に係るプログラムは、コンピュータに、処理対象であるファイルを構成するバイト列と予め定められたストレージに記憶されたファイルを構成するバイト列とを比較し、両者に共通して含まれるバイト列を特定するステップと、前記特定されたバイト列を用いて、前記処理対象であるファイルを複数のファイルに分割するステップと、前記分割により生成された複数のファイルのうち、前記ストレージに記憶されているファイルと異なるファイルを、前記ストレージに格納するステップとを実行させるためのプログラムであることを特徴とする。
請求項1および6に係る発明によれば、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、ストレージサーバに格納されるファイルの総容量を小さくすることができる。
請求項2に係る発明によれば、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、ストレージサーバに格納されるファイルの総容量を小さくすることができる。
請求項3に係る発明によれば、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、ストレージサーバに格納されるファイルの総容量を小さくすることができる。
請求項4に係る発明によれば、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、バイト列の特定処理に要する時間を短縮することができる。
請求項5に係る発明によれば、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、バイト列の特定処理に要する時間を短縮することができる。
請求項2に係る発明によれば、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、ストレージサーバに格納されるファイルの総容量を小さくすることができる。
請求項3に係る発明によれば、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、ストレージサーバに格納されるファイルの総容量を小さくすることができる。
請求項4に係る発明によれば、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、バイト列の特定処理に要する時間を短縮することができる。
請求項5に係る発明によれば、格納対象であるファイルをそのままストレージサーバに格納する場合と比較して、バイト列の特定処理に要する時間を短縮することができる。
[1]構成
図1は、本実施形態に係るシステム1の構成を示すブロック図である。システム1は、文書管理サーバ10(データ処理装置の一例)と、クライアント端末20とを備える。文書管理サーバ10は、文書ファイルなどのファイルをストレージするサービスを、いわゆるクラウドサービスとして提供する。クライアント端末20は、利用者によって操作される装置であり、例えばパーソナルコンピュータである。文書管理サーバ10は、通信回線2によりクライアント端末20に接続されている。通信回線2は、例えばインターネットや移動体通信網、電話回線などのうちの少なくとも1つ以上を含む。
図1は、本実施形態に係るシステム1の構成を示すブロック図である。システム1は、文書管理サーバ10(データ処理装置の一例)と、クライアント端末20とを備える。文書管理サーバ10は、文書ファイルなどのファイルをストレージするサービスを、いわゆるクラウドサービスとして提供する。クライアント端末20は、利用者によって操作される装置であり、例えばパーソナルコンピュータである。文書管理サーバ10は、通信回線2によりクライアント端末20に接続されている。通信回線2は、例えばインターネットや移動体通信網、電話回線などのうちの少なくとも1つ以上を含む。
図2は文書管理サーバ10の機能構成の一例を示す図である。文書管理サーバ10は、特定手段11と、分割手段12と、格納手段13と、抽出手段14と、検出手段15とを有する。特定手段11は、処理対象であるファイルを構成するバイトの列と、ストレージ16に記憶されたファイルを構成するバイトの列とを比較し、両者に共通して含まれるバイトの列(以下「共通バイト列」という)を特定する。分割手段12は、特定手段11により特定された共通バイト列を用いて、処理対象であるファイルを複数のファイルに分割する。格納手段13は、分割手段12により生成された複数のファイルのうち、バイト列がストレージ16に記憶されているファイルと異なるファイルを、ストレージ16に格納する。また、格納手段13は、分割により生成された複数のファイルのパスのリストを、処理対象であるファイルのパスを示す情報として、予め定められた記憶領域に格納する。
抽出手段14は、処理対象であるファイルを解析し、ファイルに含まれるキーワードを1または複数抽出する。検出手段15は、検索のキーとなるバイト列が複数記憶されたデータベース17を参照し、データベース17に記憶されたバイト列を処理対象であるファイルから検出する。
図3は文書管理サーバ10のハードウェア構成を例示する図である。文書管理サーバ10は、CPU(Central Processing Unit)151と、ROM(Read Only Memory)152と、RAM(Random Access Memory)153と、ストレージ154と、通信IF155とを備える。CPU151は、文書管理サーバ10の各部を制御する制御装置(プロセッサ)である。ROM152は、プログラムおよびデータを記憶する不揮発性の記憶装置である。RAM153は、CPU151がプログラムを実行する際の作業領域として機能する揮発性の主記憶装置である。ストレージ154は、プログラムおよびデータを記憶する不揮発性の補助記憶装置である。通信IF155は、通信回線2を介した通信を行うためのインターフェースであり、この例では特に、クライアント端末20と通信を行うためのインターフェースである。
この例で、ストレージ154に記憶されているプログラムをCPU151が実行することにより、図2に示される機能が実装される。プログラムを実行しているCPU151は、特定手段11、分割手段12、格納手段13、抽出手段14および検出手段15の一例である。
図4は、システム1の機能構成の一例を示す図である。図において、クライアント端末20は入出力装置201を有する。入出力装置201は文書管理サーバ10とデータの遣り取りを行う。文書管理サーバ10は、文書管理システム本体101と、共通要素検出部102と、共通要素抽出部103と、格納先管理部104と、ファイルストレージ105と、文書データ保存データベース106とを有する。文書管理システム本体101は、文書管理サーバ10が提供する文書管理サービスに関しクライアント端末20とデータの遣り取りを行う。
共通要素検出部102は、ファイルストレージ105内のファイルを走査し、複数のファイルに共通して含まれるバイト列(共通バイト列)を探し出す。共通バイト列が特定された場合、共通要素検出部102は、共通バイト列を含むファイルのパス(以下「検出ファイルパス」という)のリストと、特定された共通バイト列とを共通要素抽出部103に送る。ファイルストレージ105は、文書ファイルなどのファイルを保存する。共通要素抽出部103は、共通要素検出部102で特定された共通バイト列を用いて処理対象であるファイルを複数のファイルに分割する。格納先管理部104は、共通要素抽出部103の分割処理により生成された複数のファイルのパスのリストを、分割前のファイルのパスを示す情報として、文書データ保存データベース106に格納する。文書データ保存データベース106には、文書ファイルを識別する文書IDとその文書ファイルの格納先を示すファイルパスとが対応付けて記憶される。
図5は、文書データ保存データベース106の内容の一例を示す図である。この例で、文書データ保存データベース106には、「文書ID」と「ファイルパス」との各項目が互いに関連付けて記憶されている。これらの項目のうち、「文書ID」の項目には、文書ファイルを識別する文書IDが格納される。「ファイルパス」の項目には、ファイルの格納場所を示すパス情報が格納される。図5に示す例では、文書IDが「001」である文書ファイルが「/contents/fileA」により示される場所に格納されている旨が示されている。
[2]動作
[2−1]データ量削減動作
図6は文書管理サーバ10が行う処理の流れを示すフローチャートである。図6に示される処理は、ファイルストレージ105にファイルが登録されたことを契機として開始されてもよく、また、例えば、予め定められたタイミング(例えば、毎日6:00、など)に開始されてもよい。ステップS101において、文書管理サーバ10のCPU151は上述の共通要素検出部102の処理を行う。すなわち、共通要素検出部102は、ファイルストレージ105に記憶されたファイルまたはクライアント端末20からストレージを依頼されたファイルを処理対象とし、処理対象であるファイルを構成するバイト列とファイルストレージ105に記憶された他のファイルを構成するバイト列とを比較し、両者に共通して含まれる共通バイト列を特定する。
[2−1]データ量削減動作
図6は文書管理サーバ10が行う処理の流れを示すフローチャートである。図6に示される処理は、ファイルストレージ105にファイルが登録されたことを契機として開始されてもよく、また、例えば、予め定められたタイミング(例えば、毎日6:00、など)に開始されてもよい。ステップS101において、文書管理サーバ10のCPU151は上述の共通要素検出部102の処理を行う。すなわち、共通要素検出部102は、ファイルストレージ105に記憶されたファイルまたはクライアント端末20からストレージを依頼されたファイルを処理対象とし、処理対象であるファイルを構成するバイト列とファイルストレージ105に記憶された他のファイルを構成するバイト列とを比較し、両者に共通して含まれる共通バイト列を特定する。
この実施形態では、共通要素検出部102は、ファイルストレージ105に格納されているファイルの中から、処理対象であるファイルに類似しているファイルを比較対象として選定し、選定したファイルと処理対象であるファイルとを比較することにより共通バイト列を検出する。比較対象とするファイルの選定方法としては、共通要素検出部102は、処理対象であるファイルを解析し、解析されたファイルに含まれるキーワードを1または複数抽出し、抽出されたキーワードをファイルストレージ105に記憶されたファイルに対応するキーワードと比較し、比較結果に基づいてファイルストレージ105に記憶されたファイルから比較対象とするファイルを選定する。
比較対象とするファイルの選定処理においては、ファイルストレージ105に格納されている文書ファイルから抽出されたテキストデータを形態素解析やnグラム分割したデータとしてインデックス化されたものが用いられる。この実施形態では、全文検索のインデックスとそのインデックスを含む文書ファイルの文書IDを保持するマップが用いられる。インデックスマップは文書管理サーバ10のストレージ154の予め定められた記憶領域に記憶されている。
図7は、インデックスマップの内容の一例を示す図である。図7の例では、「インデックス」と「文書ID」との各項目が互いに関連付けて記憶されている。これらの項目のうち、「インデックス」の項目には、検索キーとなる単語が格納される。「文書ID」の項目には、その単語が文書中に含まれている文書ファイルの文書IDが格納される。図7の例では、「営業部」という単語が、「001」、「002」、「003」の文書ファイルに含まれており、「仕様書」という単語が「003」の文書ファイルに含まれており、「技術管理部」という単語が「001」と「002」の文書ファイルに含まれている旨が示されている。共通要素検出部102は、インデックスマップに登録されているインデックスを予め定められた数以上含む文書ファイル同士を、比較対象とする文書ファイルとして選定する。
比較対象とするファイルが選定されると、共通要素検出部102は、選定されたファイルから共通バイト列を検出する処理を実行する。この実施形態では、共通要素検出部102は、検索のキーとなるバイト列が複数記憶された辞書を参照し、この辞書に記憶されたバイト列を処理対象であるファイルから検出し、検出したバイト列を用いて共通バイト列の検出を行う。この辞書は、文書管理サーバ10のストレージ154の予め定められた記憶領域に記憶されている。
図8は辞書の内容一例を示す図である。図8の例では、「バイト列」と「ファイルパス」との各項目が互いに関連付けられている。これらの項目のうち、「バイト列」の項目には、予め定められた基準を満たすバイト列が検索キーとして登録されている。検索キーとして登録されるバイト列は、キーが各ファイルに適度に出現するように、また、バイト列が長くなりすぎて逆にストレージサーバの容量を圧迫しないように、文書管理システムごとに調整されてもよい。図8の例では、「82」から始まる長さ10のバイト列がファイルストレージ105内の文書ファイルから検索され、検索されたバイト列が検索キーとして登録されている。この検索キーの登録処理は、予め定められたタイミングでファイルストレージ105に登録された文書ファイル全てを処理対象として実行されてもよく、また、文書ファイルがファイルストレージ105に登録されるタイミングで、登録対象である文書ファイルに対してキーの抽出処理が行われてもよい。「ファイルパス」の項目には、そのバイト列が含まれるファイルのパスを示す情報が登録されている。
共通要素検出部102は、検索キーであるバイト列がファイルストレージ105内のファイルから検出されると、そのファイルと処理対象であるファイルとにおいて、キーであるバイト列の後に続くバイトの列および前に続くバイト列の少なくともいずれか一方を比較することにより、共通バイト列を特定する。この例で、共通要素検出部102は、辞書に登録されたバイト列が抽出されたファイル同士について、抽出されたバイト列を起点にその前後を調べ、予め定められたバイト長以上の長さで一致しているバイト列がある場合、そのバイト列を共通バイト列として切り出す処理を行う。より具体的には、共通要素検出部102は、それぞれのファイルに出現する検索キーの前後のバイト列を確認し、前後も一致しているようであれば、一致している部分のバイト長を確認する。共通要素検出部102は、一致している部分のバイト長が予め定められた閾値を超える場合、その部分を共通バイト列として切り出す。なお、この閾値は、文書管理システムごとに調整されてもよい。
図9は、ファイルを構成するバイト列の一例を示す図である。図9には、ファイルAとファイルBとの2つのファイルがファイルストレージ105に格納されている例を示している。この例では、ファイルAとファイルBには、「e38297e38281be4142」という共通バイト列(以下「共通バイト列SQ1」という)が共通して含まれる。また、図示のように、ファイルAには、共通バイト列SQ1が2カ所に含まれている。なお、図9では、説明のために「e38297e38281be4142」という短いバイト列を例示しているが、実際にはファイルの1ページ分に相当する程度の長さのバイト列が用いられてもよい。
図6の説明に戻る。ステップS102およびステップS103において、CPU151は上述の共通要素抽出部103の処理を行う。すなわち、共通要素抽出部103は、ステップS102において、共通要素検出部102で特定された共通バイト列を用いて処理対象であるファイルを複数のファイルに分割する。この実施形態では、共通要素抽出部103は、処理対象であるファイルを、共通バイト列のファイルと、共通バイト列の前部分のバイト列で構成されるファイルと、共通バイト列の後ろ部分のバイト列で構成されるファイルとに分割する。このとき、処理対象であるファイルに共通バイト列が複数含まれている場合、共通要素抽出部103は、それらの共通バイト列に挟まれている部分のバイト列も切り出して別ファイルとする。
ステップS103において、共通要素抽出部103は、分割により生成された複数のファイルのうち、ファイルストレージ105に記憶されているファイルと異なるファイルを、ファイルストレージ105に格納する。この例で、共通要素検出部102から送られてきた共通バイト列をファイルストレージ105にファイルとして書き出すとともに、共通要素検出部102から送られてきた検出ファイルパスのリストに含まれる各ファイルについて、共通バイト列の部分より前の部分を別ファイルとして書き出す。また、共通要素検出部102は、共通バイト列の後ろの部分も別ファイルとしてファイルストレージ105に書き出す。また、処理対象であるファイルに共通バイト列が複数含まれている場合、共通要素抽出部103は、それらの共通バイト列に挟まれている部分についても別ファイルとして書き出す。
図9の例では、ファイルAとファイルBに含まれる共通バイト列SQ1がファイルDとしてファイルストレージ105に書き出され、ファイルAにおいて共通バイト列SQ1よりも前の部分のバイト列「7659」がファイルCとして書き出される。また、ファイルAに含まれる2つの共通バイト列SQ1に挟まれた部分のバイト列が、「ファイルE」として書き出される。更に、ファイルAにおいて2つ目の共通バイト列SQ1の後ろ部分が「ファイルF」として書き出される。ファイルBについても、共通バイト列SQ1とそれ以外の部分とでそれぞれ別ファイルが生成され、ファイルストレージ105に保存される。
また、共通要素抽出部103は、共通要素検出部102から送られてきた検出ファイルパスのそれぞれに紐付けて、前の部分のファイルのパス、共通バイト列のファイルのパス、後の部分のファイルのパス、の順に並べたファイルパスのリスト(ファイルパスリスト)を、格納先管理部104に送信する。
図6の説明に戻る。ステップS104において、CPU151は上述の格納先管理部104の処理を行う。すなわち、格納先管理部104は、共通バイト列を含むと判定されたファイルについて、文書データ保存データベース106に格納されているファイルパスの情報を更新する。この実施形態では、格納先管理部104は、分割により生成された複数のファイルのパスのリストを、処理対象であるファイルのパスを示す情報として文書データ保存データベース106に格納する。
図10は、図5の文書データ保存データベース106においてファイルパスが更新された状態の一例を示す図である。図10の例では、ファイルAのファイルパスが、ファイルCのファイルパス、ファイルDのファイルパス、ファイルEのファイルパス、ファイルDのファイルパス、ファイルFのファイルパス、の順にファイルパスが配列されたリストに置き換えられる。
[2−2]ファイルストレージからのファイル取得動作
次いで、クライアント端末20からファイルの取得要求がなされた場合の文書管理サーバ10の動作を説明する。クライアント端末20からファイルの取得要求を受信すると、文書管理サーバ10のCPU151は、以下の処理を行ってファイルストレージ105から要求されたファイルを読み出す処理を行う。まず、CPU151は、取得要求に含まれる文書IDを、文書データ保存データベース106から検索する。文書IDが検索されると、CPU151は、検索された文書IDに紐付けられたファイルパスを文書データ保存データベース106から読み出す。CPU151は、読み出されたファイルパスに従ってファイルストレージ105からファイルを読み出し、読み出したファイルを取得要求の応答としてクライアント端末20に送信する。
次いで、クライアント端末20からファイルの取得要求がなされた場合の文書管理サーバ10の動作を説明する。クライアント端末20からファイルの取得要求を受信すると、文書管理サーバ10のCPU151は、以下の処理を行ってファイルストレージ105から要求されたファイルを読み出す処理を行う。まず、CPU151は、取得要求に含まれる文書IDを、文書データ保存データベース106から検索する。文書IDが検索されると、CPU151は、検索された文書IDに紐付けられたファイルパスを文書データ保存データベース106から読み出す。CPU151は、読み出されたファイルパスに従ってファイルストレージ105からファイルを読み出し、読み出したファイルを取得要求の応答としてクライアント端末20に送信する。
このとき、CPU151は、読み出されたファイルパスがファイルパスのリストである場合、リストの順にファイルストレージ105からファイルを順に読み出し、読み出した複数のファイルを結合してひとつのファイルとしてクライアント端末20に送信する。例えば、読み出されたファイルパスが、ファイルCのファイルパス、ファイルDのファイルパス、ファイルEのファイルパス、ファイルDのファイルパス、ファイルFのファイルパス、の順に並べられたリストであった場合、CPU151は、ファイルストレージ105からファイルC、ファイルD、ファイルE、ファイルFを読み出し、ファイルC、ファイルD、ファイルE、ファイルD、ファイルFの順に並べて結合し、結合の結果得られるファイルを、クライアント端末20へ送信する。
ところで、クラウド上で文書管理システムを利用したサービスを構築する場合、クラウド上のストレージは容量課金されることがあり、サービスのコストを抑えるためには、出来る限り容量を抑える必要がある。この実施形態では、文書管理システムで利用されるストレージ内のファイルから、複数のファイルに共通して含まれるバイト列部分を切り出し、切り出された部分のバイト列を別ファイルとして保存する。これにより、ファイルストレージ105に格納されるファイルの総容量が小さくなる。
[3]変形例
上述した実施形態は、本発明の実施の一例に過ぎず、以下のように変形させてもよい。また、上述した実施形態および以下に示す各変形例は、必要に応じて組み合わせて実施してもよい。
上述した実施形態は、本発明の実施の一例に過ぎず、以下のように変形させてもよい。また、上述した実施形態および以下に示す各変形例は、必要に応じて組み合わせて実施してもよい。
(1)上述の実施形態では、共通要素検出部102が、処理対象であるファイルに類似しているファイルを選定し、選定したファイルと処理対象であるファイルとを比較することにより共通バイト列を検出した。共通バイト列の検出方法はこれに限られない。例えば、類似するファイルの選定処理が行われなくてもよい。この場合、共通要素検出部102が、ファイルストレージ105に格納されている全てのファイルを比較対象のファイルとしてもよい。
また、上述の実施形態では、共通要素検出部102が、インデックスマップに登録されているインデックスを用いて、バイト列の比較対象とするファイルを選定したが、比較対象とするファイルの選定方法はこれに限られない。例えば、共通要素検出部102が、ファイルストレージ105に格納されているファイルのそれぞれを、複数のブロックに分割し、各ブロックのチェックサム値を求め、チェックサム値を比較することによって類似しているかを判定してもよい。
また、既に他のファイルから共通バイト列として切り出されたファイルがファイルストレージ105に格納されている場合、共通要素検出部102が、そのファイル(共通バイト列として切り出されたファイル)を比較対象とするファイルとして選定してもよい。また、他の例として、共通要素検出部102が、そのファイル(共通バイト列として切り出されたファイル)との比較処理をそれ以外のファイルより優先して行ってもよい。
(2)上述の実施形態では、共通要素検出部102が、辞書に予め登録された検出キーを処理対象であるファイルから検索し、検索されたバイト列を起点にその前後を調べ、予め定められたバイト長以上の長さで一致しているバイト列がある場合、そのバイト列を共通バイト列として切り出す処理を行った。共通バイト列の特定方法はこれに限られない。例えば、共通要素検出部102が、処理対象であるファイルのバイト列と比較対象であるファイルのバイト列とを先頭から順に走査して共通バイト列を特定してもよい。
(3)上述の実施形態では、共通要素抽出部103は、処理対象であるファイルを、共通バイト列で構成されるファイルと、共通バイト列の前部分のバイト列で構成されるファイルと、共通バイト列の後ろ部分のバイト列で構成されるファイルとに分割した。処理対象であるファイルの分割方法はこれに限られない。例えば、共通要素抽出部103は、共通バイト列で構成されるファイルと、処理対象であるファイルから共通バイト列の部分が切り取られたファイルとに分割してもよい。この場合、例えば、共通要素抽出部103は、共通バイト列が切り取られたファイルに、共通バイト列を挿入すべき位置を示す情報をファイルに付与しておき、ファイルの取得要求を受け付けた際に、この情報に従ってファイルに共通バイト列を入れ込む処理を行ってもよい。
また、他の例として、例えば、共通要素抽出部103は、特定された共通バイト列を複数に分割して保存してもよい。
また、他の例として、例えば、共通要素抽出部103は、特定された共通バイト列を複数に分割して保存してもよい。
(4)上述の実施形態では1台の文書管理サーバ10により上述の文書管理サービスが提供されたが、複数台のサーバが協働することにより上記サービスが提供されてもよい。
(5)上述した実施形態において、文書管理サーバ10のCPU151により実行されるプログラムは、インターネットなどの通信回線を介してダウンロードされてもよい。また、これらのプログラムは、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。
1…システム、2…通信回線、10…文書管理サーバ、11…特定手段、12…分割手段、13…格納手段、14…抽出手段、15…検出手段、20…クライアント端末、151…CPU、152…ROM、153…RAM、154…ストレージ、155…通信IF。
Claims (6)
- 処理対象であるファイルを構成するバイト列と予め定められたストレージに記憶されたファイルを構成するバイト列とを比較し、両者に共通して含まれるバイト列を特定する特定手段と、
前記特定されたバイト列を用いて、前記処理対象であるファイルを複数のファイルに分割する分割手段と、
前記分割により生成された複数のファイルのうち、バイト列が前記ストレージに記憶されているファイルと異なるファイルを、前記ストレージに格納する格納手段と
を有するデータ処理装置。 - 前記格納手段は、前記分割により生成された複数のファイルのパスのリストを、前記処理対象であるファイルのパスを示す情報として予め定められた記憶領域に格納する
請求項1に記載のデータ処理装置。 - 前記分割手段は、前記処理対象であるファイルを、前記特定されたバイト列のファイルと、当該特定されたバイト列の前部分のバイト列で構成されるファイルと、当該特定されたバイト列の後ろ部分のバイト列で構成されるファイルとに分割する
請求項1または2に記載のデータ処理装置。 - 前記処理対象であるファイルを解析し、当該ファイルに含まれるキーワードを1または複数抽出する抽出手段
を更に有し、
前記特定手段は、前記抽出されたキーワードを前記ストレージに記憶されたファイルに対応するキーワードと比較し、比較結果に基づいて前記ストレージに記憶されたファイルから比較対象とするファイルを選定する
請求項1乃至3のいずれか1項に記載のデータ処理装置。 - バイト列が複数記憶されたデータベースを参照し、当該データベースに記憶されたバイト列を前記処理対象であるファイルから検出する検出手段
を更に有し、
前記特定手段は、前記検出手段により前記処理対象であるファイルから前記データベースに登録されたバイト列が検出された場合、前記ストレージに記憶されているファイルであって前記検出されたバイト列が含まれるファイルと、前記処理対象であるファイルとにおいて、前記検出されたバイト列の後に続くバイトの列および前記検出されたバイト列の前に続くバイトの列の少なくともいずれか一方を比較することにより、両者に共通して含まれるバイト列を特定する
請求項1乃至4のいずれか1項に記載のデータ処理装置。 - コンピュータに、
処理対象であるファイルを構成するバイト列と予め定められたストレージに記憶されたファイルを構成するバイト列とを比較し、両者に共通して含まれるバイト列を特定するステップと、
前記特定されたバイト列を用いて、前記処理対象であるファイルを複数のファイルに分割するステップと、
前記分割により生成された複数のファイルのうち、前記ストレージに記憶されているファイルと異なるファイルを、前記ストレージに格納するステップと
を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016147020A JP2018018240A (ja) | 2016-07-27 | 2016-07-27 | データ処理装置およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016147020A JP2018018240A (ja) | 2016-07-27 | 2016-07-27 | データ処理装置およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018018240A true JP2018018240A (ja) | 2018-02-01 |
Family
ID=61081752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016147020A Pending JP2018018240A (ja) | 2016-07-27 | 2016-07-27 | データ処理装置およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018018240A (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04360246A (ja) * | 1991-06-06 | 1992-12-14 | Toshiba Corp | ファイル圧縮装置 |
JPH11143902A (ja) * | 1997-11-11 | 1999-05-28 | Hitachi Ltd | n−gramを用いた類似文書検索方法 |
US20030212712A1 (en) * | 2002-05-13 | 2003-11-13 | Jinsheng Gu | Byte-level file differencing and updating algorithms |
JP2009266128A (ja) * | 2008-04-28 | 2009-11-12 | Nippon Hoso Kyokai <Nhk> | データ比較装置およびプログラム |
JP2012198786A (ja) * | 2011-03-22 | 2012-10-18 | Fujitsu Ltd | ファイル処理プログラム及び装置 |
-
2016
- 2016-07-27 JP JP2016147020A patent/JP2018018240A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04360246A (ja) * | 1991-06-06 | 1992-12-14 | Toshiba Corp | ファイル圧縮装置 |
JPH11143902A (ja) * | 1997-11-11 | 1999-05-28 | Hitachi Ltd | n−gramを用いた類似文書検索方法 |
US20030212712A1 (en) * | 2002-05-13 | 2003-11-13 | Jinsheng Gu | Byte-level file differencing and updating algorithms |
JP2005525641A (ja) * | 2002-05-13 | 2005-08-25 | イノパス・ソフトウェアー・インコーポレーテッド | バイト・レベルのファイル相違検出および更新アルゴリズム |
JP2009266128A (ja) * | 2008-04-28 | 2009-11-12 | Nippon Hoso Kyokai <Nhk> | データ比較装置およびプログラム |
JP2012198786A (ja) * | 2011-03-22 | 2012-10-18 | Fujitsu Ltd | ファイル処理プログラム及び装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8402052B2 (en) | Search device, search method, and computer-readable recording medium storing search program | |
KR102018445B1 (ko) | 캐스캐이딩 스타일 시트 파일들의 압축 | |
US10229267B2 (en) | Method and device for virus identification, nonvolatile storage medium, and device | |
JP4237813B2 (ja) | 構造化文書管理システム | |
CN107168966B (zh) | 一种搜索引擎索引构建方法及装置 | |
KR101358793B1 (ko) | 인덱스 파일 생성방법, 사전 인덱스 파일을 이용한 데이터 검색 방법 및 데이터 관리 시스템, 기록매체 | |
CN111083054A (zh) | 路由配置处理方法、装置、计算机设备和存储介质 | |
JP2001109754A (ja) | 索引ファイルを使用した検索方法及びそれに用いる装置 | |
US20150081477A1 (en) | Search query analysis device, search query analysis method, and computer-readable recording medium | |
TWI571752B (zh) | Retrieval method and information management device | |
JP3702268B2 (ja) | 情報検索システム、情報検索方法およびプログラム | |
KR20040039691A (ko) | 정보 검색 시스템의 인덱싱 방법 | |
CN107077509B (zh) | 一种改进浏览体验的方法、装置和设备 | |
JP2018018240A (ja) | データ処理装置およびプログラム | |
JP2016018279A (ja) | 文書ファイル検索プログラム、文書ファイル検索装置、文書ファイル検索方法、文書情報出力プログラム、文書情報出力装置及び文書情報出力方法 | |
JP2009093581A (ja) | 類義語検索管理システム | |
JP4091586B2 (ja) | 構造化文書管理システム、索引構築方法及びプログラム | |
US20170060998A1 (en) | Method and apparatus for mining maximal repeated sequence | |
KR20150008635A (ko) | 핵심 키워드 선정 장치, 핵심 키워드 선정 방법 및 이를 이용한 검색 서비스 제공 방법 | |
JP7081155B2 (ja) | 選択プログラム、選択方法、及び選択装置 | |
JP2008197700A (ja) | 文書管理システムおよび文書管理方法 | |
US10108468B2 (en) | Information processing apparatus, non-transitory storage medium, and information processing method | |
JP5223293B2 (ja) | 位置表現抽出装置、方法及びプログラム | |
CN112784596A (zh) | 一种识别敏感词的方法和装置 | |
KR20070031152A (ko) | 검색어 입력에 대한 검색 결과를 제공하는 방법 및 그방법을 채용한 검색 엔진 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190520 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200526 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20201222 |