我在Java中编写自己的Document Management System (DMS)(可用的那些不能满足我的需求)。
文件应由合格的DublinCore元数据标准描述。在我看来,最简单的方法是将键值对打包在带有XML表示的RDF模型中。
要存储所有文档的元数据,我有两个想法(文档文件将存储在文件系统中):
由于(许多)文档之间相互关联,第一种方法可能更适合分析数据,但第二种方法可能更快。
您会推荐哪种解决方案?或者有更好的解决方案吗?
的Stefan
答案 0 :(得分:1)
我不知道您的分析是如何工作的,但是如果您需要内存中的完整图表来进行分析,那么请使用variante 1(将所有文档的所有元数据存储在单个XML文件中),因为您将无法获得收益(但只有额外的工作)来自这个场景中的variante。
<强>加入强>
如果变体2的这项额外工作不多,那么我推荐变体2,因为它可以更加强制。
答案 1 :(得分:1)
您是否考虑过使用MongoDB和GridFS? http://www.mongodb.org/display/DOCS/GridFS+Specification
您可以将文档直接存储在MongoDB中作为二进制文件,甚至可以以您想要的任何格式存储该特定文件的相关元数据。即使它们具有相同的名称,它也能够存储文档,并且它将生成它自己的唯一ID。
答案 2 :(得分:1)
BTW:即使它不属于您的问题:查看JCR(Java内容存储库)实现,如JackRabbit。您可以使用它来存储文档,也可以使用元数据。
答案 3 :(得分:0)
我会查看像Couch DB这样的NO SQL文档解决方案,看看它是否可以帮到你。
我不喜欢文件系统解决方案;没有任何抽象可以帮助你。
答案 4 :(得分:0)
如果您总是访问所有文档,那么您的方法都不会慢于另一个。但我会推荐第二种方法。在分析数据时,您需要阅读所有文档,因此如果它们位于不同的文件或一个文件中没有区别......