MarkLogic中xml文档和二进制文档的大小限制是什么



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

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

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

MarkLogic区分了可以索引的文件和不能索引的文件。详细介绍有点多,但这里有一个相当简短的概述:

二进制文件不能直接建立索引,尽管您可以用它提取许多格式的文本和元数据。有三种存储二进制文件的方法:

  1. 数据库内部
  2. 作为所谓的托管外部二进制文件
  3. 作为非托管外部二进制文件

有一个大的二进制阈值,在插入数据库时会自动区分1和2。默认情况下,该阈值设置为1Mb。你通常不会真正注意到这种差异,但你访问两者的方式完全相同。到目前为止,我还没有看到托管外部二进制文件大小的上限,如果有,它们可能是由底层文件系统格式或操作系统强加的。我可以接收一个1 Gb的zip,然后在没有太多麻烦的情况下再次将其拉出,而且在本地磁盘上速度也非常快。据我所知,托管的大型二进制文件包含在备份中。

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

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

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

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

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

最新更新