Hi Jack,

Thanks for your observation.


> The first result of this query is the entry for Austria. I would expect
> both of the instances of the word 'German' in that entry to be surrounded
> by <mark> tags. However only the first instance is.
>

I couldn’t reproduce this yet. Here’s a command script that returns 14
<mark>German</mark> elements:

<commands>
  <set option='ftindex'>true</set>
  <create-db name='factbook'>https://files.basex.org/xml/factbook.xml
</create-db>
  <xquery><![CDATA[
let $groups := ('ethnicgroups', 'languages')
let $database := 'factbook'
let $query := 'German'

let $search := ft:search($database, $query)/parent::*
  [name() = $groups]/ancestor::country
let $marked := ft:mark(
  $search[.//*[name() = $groups][text() contains text { $query }]]
)
return $marked//*[text() = 'German']
  ]]></xquery>
</commands>

Could you check if you get the same result?

Thanks in advance
Christian

Reply via email to