The codepoints are identical for both for "føre":
102 248 114 101
and same as GUI.
However, when using text index instead of full text the results are the same for both, except that RESTXQ takes almost forever (as if there was no text index), while REST gives immediate result. So it looks as if the RESTXQ accesses the index structure in a different way - could that be so, or is there some strange things in my own configuration?
2015-05-18 14:28 GMT+02:00 Christian Grün christian.gruen@gmail.com:
It could be that your URL is decoded in a wrong way.. What happens if you run the following function with REST and RESTXQ and "føre" as word?
declare %rest:path("/test/encoding/{$word}") function page:test-encoding($word) { string-to-codepoints($word) };
Thanks, Christian
string-to-codepoints()
REST output (2 first lines): føre fø - re 219
RESTXQ føre fo - re 123
The first word quoted is "føre" in both cases and is what the scripts
see,
so the full text is given the same in both cases. Could it be that within RESTXQ the full text index is treated differently?
I will work closer on a self contained example, but thought this might point to something.
Cheers Lars
2015-05-18 13:44 GMT+02:00 Lars Johnsen yoonsen@gmail.com:
Hi Christian - and thanks for fast response. Latest version 8.11 is in
use
(same behaviour as previous). Let me see if I can make a self contained example.
best, Lars
2015-05-18 13:40 GMT+02:00 Christian Grün christian.gruen@gmail.com:
Hi Lars,
hm, that's difficult to tell. All I can say is that this sounds unusual, so I'm coming up with my standard questions: Do you think you could build us a little example that allows us to reproduce the problem? Have you tried the latest version of BaseX?
Best, Christian
On Mon, May 18, 2015 at 1:35 PM, Lars Johnsen yoonsen@gmail.com
wrote:
I am running a web script in two identical versions (identical as in "cut and paste"), one via RESTXQ and one vi REST. The response is
different,
and I wondered what may be the trouble.
For example the output (the URLs only works locally) for http://ljohnsen:8984/hyphens/mellom is the same as http://ljohnsen:8984/rest?run=hyphen-show.xq&word=mellom
which is a set of hyphenation data: mellom mel - lom 17005 Mel - lom 144 mel - lom. 50
but if "mellom" is exchanged with "nasjonalbiblioteket" only the
REST
version shows any result, which then is the same as I get
experimenting
in the GUI.
The actual script is added below, and which runs in both versions (identical apart form the rest and restxq interfaces), it uses full text search, but results differ when run under the REST-regime.
All the best Lars G Johnsen National Library of Norway
module namespace page = 'http://basex.org/modules/web-page';
declare %rest:path("/hyphens/{$word}") %output:method("html")
function page:show-hyphens($word) { let $db := db:open('hyphen-data') let $hyphens := for $hyp in $db/hyphens/hyphens[full contains text {$word}] group by $first := $hyp/first, $second := $hyp/second let $count := count($hyp) order by xs:int($count) descending return element p { attribute freq {$count}, $first, " - ", $second, $count }
let $total := sum($hyphens//@freq) let $div := element div { element p {$word}, for $hyp in $hyphens return element div { attribute class {"hyph"}, attribute style {"font-size:", 1
+round(xs:int($hyp//@freq/data()) div $total,1) || "em"}, $hyp
} } return <html encoding="UTF-8"> <head> <meta http-equiv="Content-Type" content="text/html"
charset="UTF-8" /> <title>Orddelinger</title> </head> <body>{$div} </body> </html>
};