3

我有以下代码:

1)

for $song in cts:search(fn:doc(), "night")
return $song/ts:top-song/ts:title/text() 

2)

cts:search(fn:doc(), "night")/ts:top-song/ts:title/text()

cts:search 根据相关性返回文档。这两个代码都以不同的顺序返回结果。哪个会返回具有正确相关性的结果,为什么?

4

1 回答 1

5

首先。

在第二种情况下,XPath 应用于 cts:search 返回的整个序列,但根据 XPath 标准,其结果被重新排序为文档顺序,当序列中的节点来自不同文档时,这变得不可预测。

第一个对序列应用 FLWOR 迭代,以确保保持顺序,并且 XPath 分别应用于序列中的每个项目。

HTH!

于 2017-07-14T09:40:07.643 回答