MarkLogic中xml doc和二进制文档的大小限制是多少?

时间:2014-09-18 18:31:27

标签: marklogic

json文档的MongoDB大小限制为16MB。

MarkLogic对XML和二进制文档有类似的限制吗?

MarkLogic如何提取大型二进制文件,例如大于2MB的视频或Excel电子表格?

1 个答案:

答案 0 :(得分:1)

MarkLogic对可以编制索引的文件及其可以编制的文件进行区分。有点详细,但这里尝试了一个相当短的概述:

二进制文件无法直接编入索引,但您可以使用多种格式提取文本和元数据。存储这些二进制文件的方法有三种:

  1. 数据库内
  2. 正如所谓的托管外部二进制文件
  3. 作为非托管外部二进制文件
  4. 有一个大二进制阈值,可以在插入数据库时​​自动区分1和2。默认情况下,此阈值设置为1 Mb。你通常不会真正注意到这种差异,你可以以同样的方式访问它们。到目前为止,我还没有看到托管外部二进制文件大小的上限,如果有,它们可能是由底层文件系统格式或操作系统强加的。我可以摄取一个1 Gb的拉链,并且可以在没有太多麻烦的情况下将其拉出来,并且在本地磁盘上也非常快。据我所知,托管的大型二进制文件包含在备份中。

    非托管外部二进制文件就像分开存储它们一样。您可以从MarkLogic外部执行此操作,也可以从内部执行此操作。 MarkLogic允许将文件写入和读取到磁盘上的位置。文件显然不包含在备份中,另一个缺点是您无法将所谓的属性与它们相关联,这些属性存储在MarkLogic数据库中,并且也可以编入索引。托管的外部二进制文件确实允许这样做。我不知道对这种非托管二进制文件的特殊限制。

    MarkLogic 7能够对文本和XML文档进行全文搜索。它还支持XML文档上的许多其他索引。 MarkLogic 7允许将JSON存储为可以编制索引的特定XML结构。 MarkLogic 8将本地存储和索引JSON文档。这些文档的大小没有固定的限制,但这取决于它们的处理方式,存储方式以及应用的内存设置。

    简而言之,MarkLogic使用片段,片段需要适合所谓的内存页面。我相信它与数据库中的内存树大小设置直接相关,在我的个人笔记本电脑上默认为128 Mb,具有16 Gb物理内存。这些页面用于处理实际访问内容所需的内容。这可以用于解析和遍历XML以评估XPath,但也可以是文本文档的字符串替换,或解压缩zip以在数据库中提取和存储其各个文件。

    您可以增加内存设置以满足您的需求。但是请注意,MarkLogic通常会并行处理请求和任务。请记住,如果所有这些请求和任务都要声明大尺寸的页面,那么您将需要大量内存!

    如果您真的想知道所有细节,我建议您阅读Jason Hunter的Inside MarkLogic Server HTH!