Blazegraph Nano SPARQL 中的上下文参数

Context parameters in Blazegraph Nano SPARQL

我正在使用 Blazegraph Nano SPARQL Server 做一些实验。我使用以下命令启动服务器:

$ java -server -Xmx4g -jar bigdata-bundled.jar

但是,我需要为查询设置一个超时时间。为此有一个名为 queryTimeout 的上下文参数,但我不知道如何使用它。我可以添加一个命令选项来设置这个参数吗?如果此参数只能在 web.xml 文件中设置,我在哪里可以找到可用于设置 queryTimeout 参数的最小 web.xml 文件?

更新 web.xml 文件后可以再次编译 Blazegraph。步骤是:

克隆 git 存储库。

git clone git://git.code.sf.net/p/bigdata/git Blazegraph

检查版本。

git checkout -b BLAZEGRAPH_RELEASE_1_5_1

编辑 bigdata-war/src/WEB-INF/web.xml 以将 queryTimeout 属性 设置为:

<context-param>
   <description>When non-zero, the timeout for queries (milliseconds).</description>
   <param-name>queryTimeout</param-name>
   <param-value>60000</param-value>
</context-param>

重新编译 Blazegraph。

 ant clean executable-jar

如果您使用的是 REST API,则不需要使用 web.xml 重新编译。您可以使用超时查询参数以秒为单位设置单个查询的值,或使用 X-BIGDATA-MAX-QUERY-MILLIS HTTP Header 以毫秒为单位设置查询超时。参见 REST Query API

将超时设置为 30 秒的示例。

curl -X POST http://localhost:8080/bigdata/sparql --data-urlencode \
'query=SELECT * { ?s ?p ?o } LIMIT 1' --data-urlencode 'timeout=30'

将超时设置为 100 毫秒的示例。

curl -X POST http://localhost:8080/bigdata/sparql --data-urlencode \
'query=SELECT * { ?s ?p ?o } LIMIT 1' -H 'X-BIGDATA-MAX-QUERY-MILLIS:100'

如果您有嵌入式应用程序,例如蓝图。您可以在创建知识库时设置 maxQueryTime 属性。它根据 OpenRDF (rdf4j) 库上的查询 object 以秒为单位设置超时。这是 Sesame embedded mode.

的示例
com.bigdata.blueprints.BigdataGraph.maxQueryTime=30