Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xquery 获取Marklogic中所有文档的某个参数的所有值_Xquery_Marklogic - Fatal编程技术网

Xquery 获取Marklogic中所有文档的某个参数的所有值

Xquery 获取Marklogic中所有文档的某个参数的所有值,xquery,marklogic,Xquery,Marklogic,我正在尝试使用如下查询获取Marklogic中所有文档的“xxx”参数: (/doc/document)/xxx 但由于我们有非常大的文档数据库,我得到一个错误“主机上扩展的树缓存已满”。我没有此服务器的管理员权限,因此无法更改配置。我建议在获取以下文档时可以使用范围: (/doc/document)[1 to 1000]/xxx 然后 (/doc/document)[1000 to 2000]/xxx 等等,但我担心的是,我不知道它是如何工作的,例如,如果在此过程中更改数据库(例如,将添

我正在尝试使用如下查询获取Marklogic中所有文档的“xxx”参数:

(/doc/document)/xxx
但由于我们有非常大的文档数据库,我得到一个错误“主机上扩展的树缓存已满”。我没有此服务器的管理员权限,因此无法更改配置。我建议在获取以下文档时可以使用范围:

(/doc/document)[1 to 1000]/xxx
然后

(/doc/document)[1000 to 2000]/xxx
等等,但我担心的是,我不知道它是如何工作的,例如,如果在此过程中更改数据库(例如,将添加新文档),会发生什么情况,它将如何影响结果文档列表?另外,我不知道它使用的顺序,以防我使用范围


请澄清,这种方法是否合适,或者是否有其他方法获取所有文档的某些参数?

根据数据库的大小,可能无法在一个事务中获取所有值。 假设您有一万亿个文档,那么结果集将比一个事务中返回的结果集更大。 这重要吗?只有你的商业案例才能说明问题。 获取所有“xxx”值的最有效方法是使用范围索引。你可以看到它是如何工作的 使用cts:元素值()

要做到这一点,您确实需要能够在元素“xxxx”上创建一个范围索引(询问您的DBA)

然后cts:element-values()只返回那些值以及能够返回大部分或全部值的可能性 在内存中,单事务比使用xpath(/doc/document/xxx)要高得多,正如您编写的那样,xpath实际上返回所有“xxx”元素(不仅仅是它们的值)。最可能的情况是,实际加载与/doc匹配的每个文档,然后对其进行解析并返回xxx元素。这可能既慢又低效。 范围索引只存储值,您无需加载实际文档即可检索这些值。
一般来说,在处理大型数据集时,学习如何仅使用索引访问MarkLogic中的数据将产生最快的结果。

非常感谢,但是有可能获取MarkLogic数据库中的所有现有索引吗?可能元素“xxxx”上的索引已经存在..抱歉,忘记添加-我指的是我没有ML DB的管理员权限的情况