我正在使用选项文件(使用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]” }}
答案 0 :(得分:1)
您可以与请求中的查询一起发送选项,而不是预先加载选项。参见:
http://docs.marklogic.com/guide/rest-dev/search#id_69918
在发送请求之前,客户端可以在提取路径值中替换实际的全名。
请求可以在qtext元素中提供查询字符串。
希望有帮助,
答案 1 :(得分:0)
或者,您可以简单地提取所有全名,然后过滤客户端,或者编写一个带有trans:参数的REST转换来为您的服务器端进行过滤。
HTH!