【问题标题】:Marklogic: what are field range query and path range query cts functions using xqueryMarklogic:什么是使用 xquery 的字段范围查询和路径范围查询 cts 函数
【发布时间】:2020-11-10 02:33:33
【问题描述】:

我一直在关注文档以了解 cts:field-range-query 和 cts:path-range-query。这些是我以前理解的链接。 https://docs.marklogic.com/cts:field-range-query https://docs.marklogic.com/cts:path-range-query

在 cts:path-range-query 中,我不理解输出。如何将字符串与 进行比较?

cts:search(doc(),cts:path-range-query("/name/fname",">","Jim"),"filtered")
 =>
<?xml version="1.0" encoding="UTF-8"?>
<name><fname>John</fname><mname>Rob</mname><lname>Goldings</lname></name>
<?xml version="1.0" encoding="UTF-8"?>
<name><fname>Ooi</fname><mname>Ben</mname><lname>Fu</lname></name>

在 cts:field-range-query 中,我也没有得到输出。

ts:search(doc(),cts:field-range-query("aname",">","Jim Kurla"));

(:
  returns the following:
<?xml version="1.0" encoding="UTF-8"?>
<name>
  <fname>John</fname>
  <mname>Rob</mname>
  <lname>Goldings</lname>
</name>
<?xml version="1.0" encoding="UTF-8"?>
<name>
  <fname>Ooi</fname>
  <mname>Ben</mname>
  <lname>Fu</lname>
</name>
:)

对不起,如果这很愚蠢,但我几天以来一直试图理解这个小东西,但不知何故我不明白。非常感谢您的帮助

【问题讨论】:

    标签: xquery marklogic


    【解决方案1】:

    字符串比较基于字母数字比较。它实际上取决于排序规则,但默认基于 Unicode(具有大小写和变音符号敏感性的 UCA Root Collat​​ion)。 AB 之前,但aB 之后,alphaZeta 之后。更令人困惑的是,10 也位于 2 之前。

    在您的示例中,路径查询仅查看fname,其中Jim 位于JohnOoi 之前。

    第二个示例可能是一个包含多个路径的字段,包括fnamemnamelname&gt; 满足如果文档中有任何名称值大于 JimGoldingsBenFu 按字母顺序排在 Jim 之前,但还有其他名称,如 JohnOoi 之后。所以这也会返回这两个值。

    Lee 重复查询更有趣。然后,路径查询将仅返回 1 个结果(第二个),但该字段可能仍会返回两者。

    【讨论】:

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