元素属性范围查询获取结果,但元素属性值查询未获取任何结果
element-attribute-range-query fetching result but element-attribute-value-query is not fetching any result
我想获取具有特定元素属性值的文档。
因此,我尝试了 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))
范围查询的问题是它需要范围索引。我在多个主机中有数百个数据库。我需要在每个数据库上创建范围索引。
属性值查询可能有什么问题?
我通过一些研究发现了这个问题。
实际上结果文档是法语文档。它具有如下结构。这是一个示例。
<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
不需要语言选项。
感谢您的努力。
我想获取具有特定元素属性值的文档。
因此,我尝试了 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))
范围查询的问题是它需要范围索引。我在多个主机中有数百个数据库。我需要在每个数据库上创建范围索引。
属性值查询可能有什么问题?
我通过一些研究发现了这个问题。
实际上结果文档是法语文档。它具有如下结构。这是一个示例。
<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
不需要语言选项。
感谢您的努力。