3

私は独自のドキュメント管理システム (DMS)を Java で作成しています (利用可能なものは私のニーズを満たしていません)。

ドキュメントは、Qualified DublinCore Metadata Standard によって記述されるものとします。これを行う最も簡単な方法は、キーと値のペアを RDF モデルに XML 表現でパックすることだと思います。

すべてのドキュメントのメタデータを保存するには、2 つのアイデアがあります (ドキュメント ファイルはファイル システムに保存されます)。

  1. すべてのドキュメントのすべてのメタデータを1 つのXML ファイルに保存する
  2. ドキュメントの XML ファイルを作成し、ファイル システムまたは RDBMS (Java の H2 データベース エンジンなど) に格納します。1 つのドキュメントのキーは一意ではないため、キー値データベースではこれを解決できません。

(多くの) ドキュメントが相互にリンクされているため、データの分析には最初のアプローチの方が適している可能性がありますが、2 番目のアプローチの方がはるかに高速である可能性があります。

どのソリューションをお勧めしますか? または、より良い解決策はありますか?

ステファン

4

5 に答える 5

1

分析がどのように機能するかはわかりませんが、分析を行うためにメモリ内の完全なグラフが必要な場合は、バリアント 1 (すべてのドキュメントのすべてのメタデータを単一の XML ファイルに格納する) を使用します。このシナリオのバリアント 2 からの余分な作業)。

追加した

バリアント 2 のこの余分な作業がそれほど多くない場合は、バリアント 2 をお勧めします。

  • 巨大な xml ファイルの代わりに小さな xml ファイルを書くだけで、ドキュメントのメタデータを更新または追加できます。
  • 使用する xml パーサーによって異なりますが、場合によっては、1 つの巨大な xml ファイルよりもいくつかの小さな xml ファイルを解析する方が高速です (ただし、これはデータの量に強く依存します)。
于 2011-01-12T18:38:37.883 に答える
1

MongoDB と GridFS の使用を検討しましたか? http://www.mongodb.org/display/DOCS/GridFS+仕様

ドキュメントを MongoDB にバイナリとして直接保存したり、特定のファイルに関連付けられたメタデータを任意の形式で保存したりすることもできます。同じ名前のドキュメントを保存する機能があり、独自の一意の ID を生成します。

于 2011-01-12T18:39:10.253 に答える
1

ところで:それがあなたの質問に属していなくても: JackRabbitのようなJCR (Java Content Repository) 実装を見てください。ドキュメントやメタデータの保存にも使用できます。

于 2011-01-12T18:43:33.613 に答える
0

Couch DB のような NO SQL ドキュメント ソリューションが役立つかどうかを調べます。

私はファイル システム ソリューションが好きではありません。そこで役立つ抽象化はまったくありません。

于 2011-01-12T18:36:25.023 に答える
0

常にすべてのドキュメントにアクセスしている場合、他のアプローチよりも遅いアプローチはありません。しかし、私は2番目のアプローチをお勧めします。データを分析するときは、すべてのドキュメントを読み取る必要があるため、別のファイルにある場合と 1 つのファイルにある場合の違いはありません...

于 2011-01-12T18:36:40.810 に答える