【问题标题】:How to dynamically fetch value using cts:seach in Marklogic?如何在 Marklogic 中使用 cts:search 动态获取值?
【发布时间】:2018-11-12 10:55:48
【问题描述】:

我的数据库有“n”个文档,我需要使用我提供的元素和值动态搜索文档。我在下面解释它-

我的数据库中的示例文档-

document1-
<root>
    <id1>12345</id1>
    <value>Country</value>
    <node1>somevalue</node1>
    <node2>somevalue</node2>
    <node3>somevalue</node3>
    <node4>somevalue</node4>
    .......................
</root>

document2-
<root>
    <id2>34567</id2>
    <value>Fruits</value>
    <node1>somevalue</node1>
    <node2>somevalue</node2>
    <node3>somevalue</node3>
    <node4>somevalue</node4>
    .......................
</root>

我需要将输入参数作为 Rest End Point 来执行我的操作,rest xml 文档的输入如下-

INPUT XML-

<root>
 <id>id1</id>
 <idvalue>12345</idvalue>

 .......................
</root>

我需要的输出显示在示例中-

示例- 从数据库中搜索所有 Id=Id1 且值=12345 的文档

有什么建议吗?

【问题讨论】:

    标签: xquery marklogic


    【解决方案1】:

    您可以探索 MarkLogic 的 Query By Example (QBE)。更多详情请访问网址https://docs.marklogic.com/guide/search-dev/qbe

    【讨论】:

      【解决方案2】:

      XPath 可以提取输入值以构造一个 cts.elementValueQuery()。

      类似下面的东西应该可以在 SJS 中工作:

      cts.search(cts.elementValueQuery(
          xs.QName(fn.string(input.xpath('/root/id'))),
          fn.string(input.xpath('/root/idvalue'))
          ))
      

      或类似于 XQuery 中的以下内容:

      cts:search(fn:collection(), cts:element-value-query(
          xs:QName(fn:string($input/root/id)),
          fn:string($input/root/idvalue)
          ))
      

      欲了解更多信息,请参阅http://docs.marklogic.com/cts.elementValueQuery

      希望对您有所帮助,

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-29
        • 1970-01-01
        • 1970-01-01
        • 2013-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多