element-attribute-range-query获取结果但element-attribute-value-query不获取任何结果

时间:2015-10-12 06:39:23

标签: xquery marklogic

我想获取具有特定元素属性值的文档。

所以,我尝试了cts:element-attribute-value-query,但我没有得到任何结果。但是相同的元素属性值,我可以使用cts:element-attribute-range-query

此处使用了示例代码段。

let $s-query := cts:element-attribute-range-query(xs:QName("tit:title"),xs:QName("name"),"=",
"SampleTitle",
("collation=http://marklogic.com/collation/codepoint"))


let $s-query := cts:element-attribute-value-query(xs:QName("tit:title"),xs:QName("name"),
"SampleTitle",
())

return cts:search(fn:doc(),($s-query))

范围查询的问题是它需要范围索引。我在多个主机中有数百个数据库。我需要在每个DB上创建范围索引。

属性值查询有什么问题?

1 个答案:

答案 0 :(得分:2)

我通过几项研究找到了这个问题。

实际上,结果文件是法语文件。它具有如下结构。这是一个样本。

<doc xml:lang="fr:CA" xmlns:tit="title">
    <tit:title name="SampleTitle"/>
</doc>

cts:element-attribute-value-query是一种与语言相关的查询。要获得法语语言结果,需要在选项中提及语言如下。

cts:element-attribute-value-query(xs:QName("tit:title"),xs:QName("name"), "SampleTitle",("lang=fr"))

cts:element-attribute-range-query不需要语言选项。

感谢您的努力。