Jackrabbit / JCR组织文本内容数据

时间:2011-04-06 14:21:26

标签: organization jackrabbit jcr

我在考虑如何在Jackrabbit中组织“普通”文本内容(即字符串,HTML代码......)。 是否有任何推荐的纯文本内容结构(如文件)?

我应该将每个文本内容存储为二进制文件(就像我对文件一样) 节点(NT:文件夹) - >节点(nt:file) - >节点(jcr:带有jcr的内容:包含二进制文件的data属性)

或者拥有类似的东西更好 节点(NT:文件夹) - >节点(nt:非结构化,带有保存字符串的jcr:message属性)

我的第三个想法是为文本内容创建一个单独的名称空间 节点(NT:文件夹) - >节点(我的:带有jcr的文本:包含字符串的message属性) 节点(NT:文件夹) - > Node(my:html with a jcr:message属性,用于保存字符串) ...

你最重要的解决方案是什么? 讨论这个问题会很棒。

2 个答案:

答案 0 :(得分:1)

我会将常规文本存储在字符串属性中,除非它是一个大的(多千字节)文本。这类似于关系数据库中的VARCHAR。

对于非“文件”的真正大文本,我会使用二进制属性(流)。这些属性存储在DataStore中,其编写和访问速度比字符串属性慢,但不会将整个项目加载到内存中,并且只会存储一次相同的数据。这类似于关系数据库中的BLOB / CLOB。

对于文件,我会使用nt:folder / nt:file。这类似于文件系统中的文件。

答案 1 :(得分:1)

将文本和html内容存储为nt:文件结构使其可通过WebDAV和其他了解这些结构的工具显示。根据您的应用,这可能很有用。

如果您不需要,可以将文本内容存储为属性。在这种情况下,使用标准属性名称:jcr:title,jcr:description等,如JSR-283规范的标准应用程序节点类型部分中所定义,有助于使事情保持一致。

另请参阅http://wiki.apache.org/jackrabbit/DavidsModel,其中包含一些相关建议。