执行不区分大小写的搜索时得到错误的结果

时间:2019-09-19 10:32:10

标签: marklogic marklogic-9

我在MarkLogic中有一个xml文档,

文档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。

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")))))

我正在执行上述查询,以获取xs:QName("endPointName")的文档URI匹配值,在这里我期望为空序列,因为没有匹配的文档,但是我将/ test / wf1作为查询结果。

请指导我解决此问题。

2 个答案:

答案 0 :(得分:0)

您是否尝试在不区分大小写的查询中使用“精确”选项,“对空格敏感”。这样可以解决问题。

希望这会有所帮助。

致谢。

答案 1 :(得分:0)

从cts:element-value-query上的documentation

  

如果“标点敏感”和“不标点敏感”都不是   目前,$ text用于确定标点符号的敏感性。如果$ text   不包含标点符号,它指定“不标点符号”。如果   $ text包含标点符号,它指定“标点符号敏感”。

我希望您需要指定选项“标点符号敏感”,因为搜索字符串中没有标点符号。