超时调整SPARQL查询Marklogic

时间:2018-11-12 21:57:41

标签: marklogic

我正在运行一个简单的SPARQL查询,该查询的目的是对给定类的实体之间的数据和对象属性实例进行计数,即为多少组织提供了名称,地址等。三元存储区中当前仅加载一种类型的实体,因此无需对以下?进行过滤:

select ?attribName
from <http://example.com/graphs/orgs>
where 
{
  ?s ?attribName ?attribValue .
}
group by 
  ?attribName

此查询超时。我也可以选择distinct获得5或6,但是将上限设置为30秒后也会超时。有几百万个实体。

我想知道如何修改SPARQL查询的超时(而不是优化查询)。我已经在管理控制台中尝试了各种超时方法,但是似乎没有任何影响。从查询控制台或通过其余API运行查询时,都会发生这种情况,但是我们所做的更改似乎都不会影响我们观察到的超时。

任何想法实现此目标的正确方法是什么?谢谢。

2 个答案:

答案 0 :(得分:1)

我认为30秒没有超时。您可能面临其他问题。检查此线程https://developer.marklogic.com/pipermail/general/2014-July/015483.html,您还可以尝试以下操作:

import module namespace sem = "http://marklogic.com/semantics"  at "/MarkLogic/semantics.xqy";

sem:sparql('select ?o
where 
{
  ?s ?p ?o .
}
group by ?o')

这可以帮助您将MarkLogic查询超时增加到最少10分钟。

答案 1 :(得分:0)

已解决。事实证明,我没有在管理控制台中设置正确的超时值。我进入管理控制台,在左窗格中选择了应用服务器。然后,我将不同应用程序服务器的“请求超时”字段更改为更高的值。最初它不起作用,但是当第二天重新部署环境(即,重新启动Marklogic)时,超时生效,问题得以解决。