【问题标题】:MarkLogic - Pass variable value through REST API to OPTIONS fileMarkLogic - 通过 REST API 将变量值传递给 OPTIONS 文件
【发布时间】:2018-08-28 18:03:46
【问题描述】:

我正在使用选项文件(使用 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)。

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

【问题讨论】:

    标签: marklogic marklogic-9


    【解决方案1】:

    您可以在请求中将选项与查询一起发送,而不是提前加载选项。见:

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

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

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

    希望对您有所帮助,

    【讨论】:

      【解决方案2】:

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

      HTH!

      【讨论】:

        猜你喜欢
        • 2017-07-15
        • 1970-01-01
        • 1970-01-01
        • 2012-11-05
        • 2020-10-30
        • 1970-01-01
        • 2019-01-07
        • 2020-07-18
        • 2018-01-07
        相关资源
        最近更新 更多