对于大学搜索引擎项目,我使用 MonetDB 和 Tijah 扩展。我有一个节点列表,从搜索字符串返回:
let $qid := tijah:queryall-id($nexi)
let $nodes := tijah:nodes($qid)
$nodes
现在包含一个元素列表,例如:
<book>Design Patterns</book>
<book>AntiPatterns</book>
我可以使用以下 FLWOR 表达式计算并返回此列表的分数:
for $book in $nodes
let $score := tijah:score($qid, $book)
order by $score descending
return <book score="{$score}">{$book/title}</book>
但是,我想在新的搜索查询中使用节点列表。为此,我必须从该列表中生成一个具有以下格式的字符串:
Design Patterns {0.2937} Antipatterns {0.43984}
在这种格式化中,分数(返回tijah:score
并组合名称。我想用递归函数生成这个字符串,但是我需要使用的 MonetDB 代数引擎不支持递归函数。
我可以使用非递归(可能是 FLWOR)表达式生成相同的结果吗?