gpt4 book ai didi

xquery - MarkLogic cts :element-query false positives?

转载 作者:行者123 更新时间:2023-12-04 14:10:20 26 4
gpt4 key购买 nike

鉴于此文件:-

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

这似乎不对,因为没有带有 的单个项目类型=T1 值=V2 .
对我来说,这似乎是一个误报。

我是不是误会了 cts:element-query作品?
(我不得不说文档在这方面不是特别清楚)。

或者这是什么地方 MarkLogic 努力给我我期望的结果,如果我有更多或更好的索引,我就不太可能得到误报。

最佳答案

除了@wst 的回答,你只需要启用 element value positions从未经过滤的搜索中获得准确的结果。这里有一些代码来显示这一点:

xdmp:document-insert("/items.xml", <items>
<item><type>T1</type><value>V1</value></item>
<item><type>T2</type><value>V2</value></item>
</items>);

cts:search(collection(),
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')
))
), 'unfiltered'
)

element value positions启用这将返回测试文档。启用位置后,查询不返回任何内容。

正如@wst 所说, cts:search()默认过滤运行,而 cts:uris() (例如 xdmp:estimate() 仅在未过滤的情况下运行。

哼!

关于xquery - MarkLogic cts :element-query false positives?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37398150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com