![](/img/trans.png)
[英]MarkLogic - XQuery - cts:element-range-query using variable length sequence or map
[英]Marklogic: what are field range query and path range query cts functions using xquery
我一直在关注文档以了解 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>
:)
对不起,如果这很愚蠢,但我几天以来一直试图理解这个小东西,但不知何故我不明白。 真的很感谢帮助
字符串比较基于字母数字比较。 它实际上取决于排序规则,但默认值基于 Unicode(具有大小写和变音符号敏感性的 UCA 根排序规则)。 A
在B
之前,但a
在B
之后,并且alpha
也在Zeta
之后。 更令人困惑的是, 10
出现在2
之前。
在您的示例中,路径查询仅查看fname
,其中Jim
出现在John
和Ooi
之前。
第二个示例可能是具有多个路径的字段,包括fname
、 mname
和lname
。 如果文档中存在任何大于Jim
名称值,则>
满足。 Goldings
、 Ben
和Fu
按字母顺序排在Jim
之前,但还有其他名字,例如John
和Ooi
。 所以这也返回这两个值。
与Lee
重复查询更有趣。 然后路径查询将仅返回 1 个结果(第二个),但该字段可能仍会返回这两个结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.