marklogic - 如何保留cts的相关顺序:search results

标签 marklogic relevance cts-search

我有以下代码:

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 根据相关性返回文档。 这两个代码都以不同的顺序返回结果。 哪个会返回具有正确相关性的结果,为什么?

最佳答案

第一个。

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

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

呵呵!

关于marklogic - 如何保留cts的相关顺序:search results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45099317/

相关文章:

xml - XQuery 中基于变量的动态排序(排序依据)

xml - 在 XPATH 中使用多个命名空间

xml - 上传 MarkLogic 时强制执行 XML contentType

mysql - 控制全文搜索相关性分数的小数位数?

elasticsearch - Elasticsearch 中同一字段上类型的相关性

C# 查找相关文档片段用于搜索结果显示

xpath - MarkLogic:如何使用 cts:uris 搜索 XPath

MarkLogic XML 到 JSON 的转换