在带有Tijah扩展的XQuery中,无需使用递归函数即可生成元素和分数列表

在带有Tijah扩展的XQuery中,无需使用递归函数即可生成元素和分数列表,xquery,monetdb,Xquery,Monetdb,对于一个大学搜索引擎项目,我正在使用带有Tijah扩展的MonetDB。我有一个从搜索字符串返回的节点列表: let $qid := tijah:queryall-id($nexi) let $nodes := tijah:nodes($qid) $nodes现在包含元素列表,例如: <book>Design Patterns</book> <book>AntiPatterns</book> 在这种格式中,分数(由tijah:score返回)和

对于一个大学搜索引擎项目,我正在使用带有Tijah扩展的MonetDB。我有一个从搜索字符串返回的节点列表:

let $qid := tijah:queryall-id($nexi)
let $nodes := tijah:nodes($qid)
$nodes
现在包含元素列表,例如:

<book>Design Patterns</book>
<book>AntiPatterns</book>
在这种格式中,分数(由
tijah:score
返回)和名称组合在一起。我想用递归函数生成这个字符串,但我需要使用的MonetDB代数引擎不支持递归函数


我可以用非递归(可能是FLWOR)表达式生成相同的结果吗?

这是否符合您的要求

string-join(
  for $book in $nodes
  let $score := tijah:score($qid, $book)
  order by $score descending
  return string-join((data($book/title), ' {', $score, '}'), ''),
  ' ')
Design Patterns {0.2937} Antipatterns {0.43984}
string-join(
  for $book in $nodes
  let $score := tijah:score($qid, $book)
  order by $score descending
  return string-join((data($book/title), ' {', $score, '}'), ''),
  ' ')