Hi Christian,
When I run your script, I do get 14 elements.
When I run the following script I just get 12.
<commands>
<set option='ftindex'>true</set>
</create-db>
<xquery><![CDATA[
declare function local:search(
$database as xs:string,
$query as xs:string
) {
let $country-search := ft:search($database, $query)/ancestor::country
let $city-search := ft:search($database,
$query)/ancestor::city/ancestor::country
let $other-search := ft:search($database, $query)/parent::*[name() =
('ethnicgroups', 'languages')]/ancestor::country
let $country-mark := $country-search[.//name[text() contains text {
$query }]] => ft:mark()
let $city-mark := $city-search[.//city[text() contains text { $query
}]] => ft:mark()
let $other-mark := $other-search[.//*[name() = ('ethnicgroups',
'languages')][text() contains text { $query }]] => ft:mark()
return (
$country-mark,
$city-mark,
$other-mark
)
};
local:search('factbook', 'German')//mark
]]></xquery>
</commands>
When you say you can't reproduce it, do you mean you get 14 results from running this script?
Cheers,
Jack