2

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

我是否应该将每个文本内容存储为二进制文件(就像我对文件所做的那样) Node(nt:folder)--> Node(nt:file) --> Node(jcr:content 带有保存二进制文件的 jcr:data 属性)

或者最好有类似 Node(nt:folder)--> Node(nt:unstructured 的 jcr:message 属性来保存字符串)

我的第三个想法是为文本内容创建一个单独的命名空间 Node(nt:folder)--> Node(my:text with a jcr:message property which contains the string) Node(nt:folder)--> Node(my :html 带有包含字符串的 jcr:message 属性)...

你认为最好的解决方案是什么?讨论这个会很棒。

4

2 回答 2

1

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

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

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

于 2011-04-06T15:06:15.887 回答
1

将文本和 html 内容存储为 nt:file 结构使其可以通过 WebDAV 和其他理解这些结构的工具可见。根据您的应用程序,这可能很有用。

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

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

于 2011-04-14T07:43:15.517 回答