Неправильный результат при поиске без учета регистра - PullRequest
2 голосов
/ 19 сентября 2019

У меня есть XML-документы в MarkLogic,

Документ 1 - URI - / test1 / wf1

<?xml  version="1.0" encoding="UTF-8"?>
<workflow>
    <workflowName>Oracle_RMS_9_RMS_9_Pos_and_Allocations_WF</workflowName>
    <workflowDescription>
    </workflowDescription>
    <endPointName>Oracle RMS 9_RMS 9 Pos and Allocations</endPointName>
    <createdDttm>2019-06-11 00:21:26.2121Z</createdDttm>
    <modifiedDttm>2019-08-28T04:37:19.764Z</modifiedDttm>
</workflow>

Мое требование - получить Uris документа, только если значение элемента совпадает с ignorecase.

cts:uris((),(),cts:and-query((cts:collection-query("workflow"),cts:element-value-query(xs:QName("endPointName"),"Oracle RMS 9 RMS 9 POs and Allocations",("case-insensitive","whitespace-sensitive")))))

Я выполняю вышеуказанный запрос, чтобы получить значение URI документа, совпадающее с xs:QName("endPointName") здесь я ожидаю пустую последовательность, потому что нет соответствующего документа, но я получаю / test / wf1 в качестве результата запроса.

Пожалуйста, помогите мне решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2019

Из документации для cts: element-value-query:

Если нет ни «чувствительных к пунктуации», ни «нечувствительных к пунктуации», используется $ textопределить чувствительность к пунктуации.Если $ text не содержит знаков препинания, он указывает «нечувствительный к пунктуации».Если $ text содержит знаки препинания, он указывает «чувствительный к пунктуации».

Я ожидаю, что вам нужно указать параметр «чувствительный к пунктуации», поскольку в строке поиска нет знаков препинания.

0 голосов
/ 19 сентября 2019

Вы пытались использовать «точную» опцию в запросе с учетом регистра »,« с учетом пробелов ».Это может решить проблему.

Надеюсь, это поможет.

С уважением.

...