MarkLogic-通过REST API将变量值传递给OPTIONS文件

时间:2018-08-28 18:03:46

标签: marklogic marklogic-9

我正在使用选项文件(使用PUT / v1 / config / query加载到模块DB中)。然后,我使用?options=module-name&q=FullName:"John Smith"进行GET / v1 / search。我试图通过REST API传递作为参数提供的FullName,以限制输出内容。

选项文件中的以下代码工作正常,

<extract-document-data selected="include">
    <extract-path>/envelope/instance/Contact/*[FullName="John Smith"] 
    </extract-path>
</extract-document-data>

如何将FullName的值作为参数传递,而该值来自REST API参数而不是硬编码?像

<extract-document-data selected="include">
    <extract-path>/envelope/instance/Contact/*[FullName=$FullName] 
    </extract-path>
</extract-document-data>

我尝试了上述语法,但是在部署(PUT / v1 / config / query)时出错。

  

{“ errorResponse”:{      “状态代码”:400,      “ status”:“错误请求”,      “ messageCode”:“ RESTAPI-INVALIDCONTENT”,      “消息”:“ RESTAPI-INVALIDCONTENT:(err:FOER0000)无效的内容:提取文档数据的路径无效:/ envelope / instance / Contact / * [FullName = $ FullName]”   }}

2 个答案:

答案 0 :(得分:1)

您可以与请求中的查询一起发送选项,而不是预先加载选项。参见:

http://docs.marklogic.com/guide/rest-dev/search#id_69918

在发送请求之前,客户端可以在提取路径值中替换实际的全名。

请求可以在qtext元素中提供查询字符串。

希望有帮助,

答案 1 :(得分:0)

或者,您可以简单地提取所有全名,然后过滤客户端,或者编写一个带有trans:参数的REST转换来为您的服务器端进行过滤。

HTH!