假设有以下文档:
<items>
<item><type>T1</type><value>V1</value></item>
<item><type>T2</type><value>V2</value></item>
</items>
不出所料,我发现这将在cts:uris()
中回拉页面:
cts:and-query((
cts:element-query(xs:QName('item'),
cts:element-value-query(xs:QName('type'),'T1')
),
cts:element-query(xs:QName('item'),
cts:element-value-query(xs:QName('value'),'V2')
)
))
但有些令人惊讶的是(至少对我来说),我也发现这个也可以:
cts:element-query(xs:QName('item'),
cts:and-query((
cts:element-value-query(xs:QName('type'),'T1'),
cts:element-value-query(xs:QName('value'),'V2')
))
)
这似乎不正确,因为没有单个项目具有type=T1和value=V2。对我来说,这似乎是一个误报。
我是否误解了
cts:element-query
的工作方式?
(必须说,文档在这个领域并不特别清晰。)还是这是MarkLogic努力给我期望的结果,如果我有更多或更好的索引,就不太可能出现误报匹配。