Marklogic Server中的片段是什么意思



我想知道Marklogic Server中片段的含义。请详细解释什么是Marklogic中的碎片化过程,以及为什么我们应该避免碎片化。

您读过文档吗?http://docs.marklogic.com/guide/admin/fragments#chapter

简而言之:

标记逻辑索引是基于片段的,这意味着它们具有以片段级别结束的粒度。通常情况下,文档存储为单个片段(可选地为其属性单独存储一个片段),但您可以定义片段根和片段父级。它们会导致文档在存储时被切成碎片,但如果您将文档的根序列化到输出,则会检索所有子部分,并将其连接在一起,就好像文档从未被切成碎片一样。

为什么要回避?

最重要的是,因为cts查询(搜索库也使用它)通常不会跨越片段边界。您必须明确表示要跨越这些边界,例如使用cts:documentfragmentquery,这里给出了一个很好的例子:http://developer.marklogic.com/pubs/5.0/apidocs/cts-query.html#cts:document-碎片查询

通过将碎片存储为单独的文档来显式地存储碎片,从而显式地执行此操作。你必须进行多次搜索才能合并结果。MarkLogic的速度非常快,所以只搜索几次而不是一次通常也同样快。

一些人还观察到,在处理由许多(数万)片段组成的大型文档时存在一些性能问题。单独的文档不会发生的事情。

啊!

最新更新