如何保留 cts:search 个结果的相关顺序

How to preserve relevance order of cts:search results

我有以下代码:

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:根据相关性搜索 returns 文档。 这两个代码 return 导致不同的顺序。 return 哪个结果具有正确的相关性,为什么?

第一个。

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

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

HTH!