Im folgenden xquery alles funktioniert, außer dass in der Linie wie erwartet unter dem liest:Summen über eine Million Anzeige seltsam mit xquery
<h2>Total word count: {format-number($sum, "0")}</h2>
Wenn die Summe über a Million zeigt es als:
"1.516908E6"
Ich verstehe diese Nummer nicht. Zum Beispiel, warum gibt es ein "E"?
Alles unter einer Million Druck wie erwartet, zum Beispiel:
"72188" für 72.188.
Ich vermisse wahrscheinlich etwas Grundlegendes, aber ich wäre dankbar für jede Hilfe.
beginnen xquery
xquery version "3.0";
declare namespace tei="http://www.tei-c.org/ns/1.0";
declare option exist:serialize "method=html media-type=text/html ident=no";
let $commentaryid := request:get-parameter('commentaryid', '')
let $collection := concat("scta", "/", $commentaryid)
let $terms :=
<terms>
{
util:index-keys(
collection(concat("/db/apps/", $collection))//tei:p,
"",
function($key, $count) {
<term name="{$key}" count="{$count[1]}"
docs="{$count[2]}"/>
}, -1, "lucene-index")
}
</terms>
let $sum := sum($terms//@count)
return
<html>
<head>
</head>
<body>
<h1>Frequency analysis for {$collection}</h1>
<h2>Total word count: {format-number($sum, "0")}</h2>
<table>
<tr>
<td>Term</td>
<td>Frequency</td>
<td>Percentage</td>
</tr>
{
for $term in $terms//term
let $frequency := xs: integer($term/@count/string())
let $percentage := format-number(($term/@count div $sum), "%.00")
order by $frequency descending
return
<tr>
<td>{$term/@name/string()}</td>
<td>{$frequency}</td>
<td>{$percentage}%</td>
</tr>
}
</table>
</body>
</html>
Nur um zu bestätigen, gehe ich davon aus, dass Ihre util: index-keys() 'Ihre XQuery-Implementierung eXist ist. Welche Version von eXist verwenden Sie? – joewiz
Hallo @joewiz, ich habe 3.0.RC1 – Jeff
https://en.m.wikipedia.org/wiki/Scientific_notation#E_notation – har07