可以使用哪种排序规则在marklogic中首先对所有小写字母进行排序?

时间:2019-05-13 07:31:17

标签: marklogic

我正在使用MarkLogic 8.0-6.3

我必须对字符串进行排序,首先要对小写字母进行排序。

例如:

('a', 'A', 'b', 'B') should be sorted like ('a', 'b', 'A', 'B')

默认代码点排序规则将最后对小写字母进行排序。

更新

排序规则为http://marklogic.com/collation//CL的输出

enter image description here

2 个答案:

答案 0 :(得分:1)

我不认为您可以通过排序规则来实现所需的功能。

您可以使用SI <strength>属性:http://marklogic.com/collation//SI

for $i in ("a", "A", "b", "B")
order by $i descending collation "http://marklogic.com/collation//SI"
return $i

但这将返回('b', 'a', 'B', 'A')

代替排序规则,可以测试该值是否等于fn:lower-case()值,然后按该布尔值排序:

for $i in ("a", "A", "b", "B")
order by $i eq lower-case($i) descending
return $i

答案 1 :(得分:0)

您可以使用http://marklogic.com/collation//CL。有关此问题的文档可以在search-dev指南的Attribute Portion of the Collation URI部分中找到。在管理界面中查看随机字符串索引也很有用。有一个“排序规则生成器”实用程序(排序规则设置后面的小按钮),可以帮助您同时单击所需的排序规则。

HTH!