Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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,我使用CQWeb应用程序编写了一个不返回的XQuery 我原以为下面的程序可以运行,但服务器仍然挂起 declare namespace data = "http://marklogic.com/ps/data"; /data:doc/data:provider[ 1 to 5 ] 有什么想法吗?如果我在树下搜索,它不会挂起来。现在我正在尝试探索数据结构,因此我需要至少返回一个提供程序 提前感谢, Guido我认为XPath步骤周围需要括号。我认为您已要求服务器加载所有/data:doc/da

我使用CQWeb应用程序编写了一个不返回的XQuery

我原以为下面的程序可以运行,但服务器仍然挂起

declare namespace data = "http://marklogic.com/ps/data";
/data:doc/data:provider[ 1 to 5 ]
有什么想法吗?如果我在树下搜索,它不会挂起来。现在我正在尝试探索数据结构,因此我需要至少返回一个提供程序

提前感谢,


Guido

我认为XPath步骤周围需要括号。我认为您已要求服务器加载所有/data:doc/data:provider元素。按文档顺序对它们进行排序,然后抓住前5个。但是,如果你有数百万或数十亿的这些元素,它将不得不把它们全部获得。这可能需要很长时间。请尝试以下方法:

declare namespace data = "http://marklogic.com/ps/data";
(/data:doc/data:provider)[ 1 to 5 ]

-Danny

我认为XPath步骤周围需要括号。我认为您已要求服务器加载所有/data:doc/data:provider元素。按文档顺序对它们进行排序,然后抓住前5个。但是,如果你有数百万或数十亿的这些元素,它将不得不把它们全部获得。这可能需要很长时间。请尝试以下方法:

declare namespace data = "http://marklogic.com/ps/data";
(/data:doc/data:provider)[ 1 to 5 ]

-丹尼

正确的解决方案,错误的理由。原始表达式返回每个data:doc文档元素的前5个data:provider子元素。Danny的答案返回了匹配整个路径的前5个元素。但是我认为解决方案不完整,因为它应该是
[position()=1到5]
,或者更好的
[position()le 5]
,因为谓词真值和有效布尔值的XQuery 1.0规则不允许单独使用位置值序列。事实上,应该提出一个错误。或者Marklogic在这里做了一些不同的事情吗?在Marklogic xquery版本“1.0-ml”中,它允许[1到5]位置语法,这在早期版本的xquery中是允许的。“1.0”是严格的方言,它需要position()函数。谢谢约翰,我应该得到正确的答案…正确的解决方案,错误的理由。原始表达式返回每个data:doc文档元素的前5个data:provider子元素。Danny的答案返回了匹配整个路径的前5个元素。但是我认为解决方案不完整,因为它应该是
[position()=1到5]
,或者更好的
[position()le 5]
,因为谓词真值和有效布尔值的XQuery 1.0规则不允许单独使用位置值序列。事实上,应该提出一个错误。或者Marklogic在这里做了一些不同的事情吗?在Marklogic xquery版本“1.0-ml”中,它允许[1到5]位置语法,这在早期版本的xquery中是允许的。“1.0”是严格的方言,它需要position()函数。谢谢你,约翰,我应该把这件事做好。。。。