Какой порядок сортировки можно использовать для сортировки всех строчных букв сначала в marklogic? - PullRequest
1 голос
/ 13 мая 2019

Я использую 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 ]

1 голос
/ 14 мая 2019

Я не думаю, что вы можете достичь того, чего хотите, с помощью сопоставлений.

Вы можете использовать атрибут 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
0 голосов
/ 13 мая 2019

Вы можете использовать http://marklogic.com/collation//CL.Документацию по этому вопросу можно найти в руководстве по поиску, в разделе Часть атрибута URI сопоставления .Также может быть полезно посмотреть на случайный индекс строки в пользовательском интерфейсе администратора.Существует утилита Collation Builder (маленькая кнопка за настройкой сортировки), которая может помочь вам собрать нужные параметры сортировки.

HTH!

...