大学の検索エンジン プロジェクトでは、Tijah 拡張機能を備えた MonetDB を使用しています。検索文字列から返されたノードのリストを取得しました。
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) 式で同じ結果を生成できますか?