如何在MarkLogic 6中执行不区分大小写的匹配

Ant*_*ony 2 xpath xquery marklogic

嗨,我在MarkLogic中使用了cts搜索和XPath查询,并且还使用了多个参数。我需要同时捕获大写字母和小写字母(在XML搜索中)。

样本XML

<PP uri="/2000_4_174.xml">
  <P name="jur" value="ht"/>
  <P name="sitting" value="17 AUGUST"/>
  <P name="startpage" value="174"/>
</PP>
Run Code Online (Sandbox Code Playgroud)

我的XQuery

let $attr1  := "JUR"
let $attr2  := "startpage"
let $value1 := "ht"
let $value2 := "174"

let $uri := //PP[P[@name=$attr1 and @value=$value1] and   P[@name=$attr2 and @value=$value2]]/@uri
return $uri
Run Code Online (Sandbox Code Playgroud)

当$ attr1值为jur时,查询成功运行,但是我想提供大写或小写形式的值。请让我知道任何选择。

注意:更改归类cts后,搜索可以同时使用大写和小写字母,但XPath查询不起作用。

Dav*_*sel 5

要解决问题的XPath部分,可以执行不区分大小写的匹配。

let $attr1  := "JUR"
let $attr2  := "startpage"
let $value1 := "ht"
let $value2 := "174"

let $uri := //PP[P[fn:matches(@name, $attr1, "i") and @value=$value1] and 
    P[@name=$attr2 and @value=$value2]]/@uri
return $uri
Run Code Online (Sandbox Code Playgroud)

我希望这会稍慢一些,但是无论如何都可以匹配。