我们有一个持久存在XML文件的应用程序。除了一个大型XML文件(其作用类似于其他文件的索引)之外,所有其他文件都存储在单独的文件夹中并且非常小(它们主要包含有关文档的元数据(即视频/ pdf等))。
从关系的角度来看,除了与物理存储在磁盘上的文档(即,通过目录路径)相关联的元数据之外,数据/对象之间没有太多的关系。所以所有数据都与文档相关联。
除了搜索XML索引文件外,所有其他搜索都是通过“Windows索引搜索”完成的。
虽然系统将来会用于单个用户,但它将更改为多个用户,这意味着索引文件将有多个用户同时更新它。此文件可能会变得非常大(10,000个条目,其中每个条目包含一些元数据和对磁盘上文档的引用)
另一个要求是在不同的机器上有多个索引文件,每个机器都管理自己的文档存储库。现在这意味着搜索/浏览我们必须在多台机器上搜索的内容。
考虑到这一切,我发现拥有一个数据库可以解决一些问题,但是有很多工作要进入我们必须解决问题的阶段(即创建一个ORM模型,数据库,存储库) ,命令等)。
我的一个或多个问题是否可以通过其他方式解决其中一些问题,而无需通过数据库路线?
TIA JD
答案 0 :(得分:2)
您可以尝试使用本机XML数据库来加速XML处理。我已经使用Berkeley DB XML(嵌入式,库)和eXist(联网,客户端 - 服务器,REST)取得了一些成功。特别是,前者解决了用单个索引文件替换散落在各处的大量小型XML文件的问题,因此它可能会替换您的XML索引文件。后者通过Lucene进行全文搜索。
答案 1 :(得分:2)
听起来好像你的工作量肯定是朝着需要数据库的方向发展。由于数据已经是所有XML,因此迁移到本机XML数据库应该是破坏性最小的路由。如今,流行的产品往往是MarkLogic,如果你能负担得起,那么如果你不能,那就是eXist。 (我对两者都不感兴趣,但知道两者的满意用户。)