在我的应用程序中,我在许多功能中使用cts:cts()。当我迁移到ML-7时,cts:contains()中的大多数地方都不像预期的那样工作。在许多情况下,我正在执行第一个参数的xdmp: but ()来获得所需的结果,但我仍然认为它不是一个有效的修复。另外,在我使用cts::inside的其他情况下,这是不可能的。是否有解决此问题的工作,或者我需要重新处理所有的cts:包含发生的事件?另外,Marklogic 7中是否有此类API更改的文档?
发布于 2014-04-04 08:54:11
麦克。谢谢你的意见。这个问题作为Marklogic版本7.0.2.2的一部分得到了解决。早期的7.0.2.1版本出现了这个问题。
发布于 2014-03-28 16:51:14
对以前版本的更改见安装指南:http://docs.marklogic.com/guide/relnotes
cts:包含的文档注意到“原子值在检查匹配之前被转换为文本节点”。因此,xdmp:unquote的结果不太可能做您想做的事情。您将测试包含序列化XML的文本节点,而不是测试原始XML节点。
下面是来自cts:contains和cts:reverse-query的文档示例。这对我来说很好,7.0-2.2,并按预期返回true。
let $query := <query>{cts:word-query("hello")}</query>
let $x := <bar>hello</bar>
return cts:contains($query, cts:reverse-query($x))一般来说,cts:contains做内存中的评估,而且不会很好地扩展.使用不在数据库中的单个内存中文档非常方便。但在大多数情况下,cts:search或search:search是一个更好的选择。
https://stackoverflow.com/questions/22706304
复制相似问题