我有以下Xquery
代码:
for $w in $words
let $freq := (count($corpus[. eq $w]) div count($content2[text() eq $w]))
order by $freq descending
return <tr><td>{$w}</td><td>{$freq}</td></tr>
$words
是$corpus
中出现的一些不同的字词(可能会多次出现)。 $content2
是另一个词。变量和除法并不重要。
这个xquery
列出了一些单词的频率计算,有序。
我想要做的是将结果限制为10。 我试图使用位置值,但因为它给了我单词列表中单词的位置,它没有成功..
任何帮助?
答案 0 :(得分:16)
结果数量可以是限制如下:
(for $w in $words
let $freq := (count($corpus[. eq $w]) div count($content2[text() eq $w]))
order by $freq descending
return <tr><td>{$w}</td><td>{$freq}</td></tr>
)[position() = 1 to 10]
答案 1 :(得分:4)
使用subsequence($sequence, $start, $records)
返回结果的子集,从记录$start
开始(请注意XQuery从1开始计数)返回records
个项目。看看"Limiting Result Sets" XQuery Wikibooks Page。如何应用从此页面复制的功能的示例:
let $sorted-people :=
for $person in collection($collection)/person
order by $person/last-name/text()
return $person
for $person at $count in subsequence($sorted-people, $start, $records)
return
<li>{ $person/last-name/text() }</li>