Tokenize..

Saturday, 13 April 2013 · 3 messages · last reply 14 Apr 2013
JB
John Best13 Apr 2013 06:32 #

Hi there,

The structure of my XML DB (Docs) is -

<Docs>
   <Doc>
      <Info></Info>
      <Desc></Desc>
   </Doc>
</Docs>

I want to create tokens, so I will be using ft:tokens('Docs'). This will create tokens for all the available nodes.

I want to create tokens for the Info Node only... How to ,,?

-- Have a nice day JBest
CG
Christian Grün13 Apr 2013 23:26 #

Hi John,

to give you a somewhat satisfying answer, I’m afraid I need more details.

Quoted text · John Best · 3 lines
> I want to create tokens, so I will be using ft:tokens('Docs'). > This will create tokens for all the available nodes. > I want to create tokens for the Info Node only... How to ,,?

The result of ft:tokens() will contain all tokens that are stored in the full-text index of the addressed database. At this point I’m stuck, because I can’t guess what you mean with "Info Node"?

Best, Christian

CG
Christian Grün14 Apr 2013 14:09 #
Quoted text · Christian Grün · 1 line
> With "Info Node", I mean that I want to have tokens for a specific node. !!

Got it. You’ll have to retrieve the text of this node and call ft:tokenize(). An example:

  for $x in //text()
  return ft:tokenize($x)

Please note that the tokenize function won’t aggregate the tokens. You could try the following XQuery code to get a similar output (note that this particular example only works with 7.7, which includes support for general FLWOR expressions):

  let $text := 'a b a'
  for $words in ft:tokenize($text)
  group by $w := $words
  let $count := count($words)
  order by $count descending
  return <entry count="{ $count }">{ $w }</entry>
Quoted text · Christian Grün · 26 lines
> On Sun, Apr 14, 2013 at 2:56 AM, Christian Grün <christian.gruen at gmail.com> > wrote: >> >> Hi John, >> >> to give you a somewhat satisfying answer, I’m afraid I need more details. >> >> > I want to create tokens, so I will be using ft:tokens('Docs'). >> > This will create tokens for all the available nodes. >> > I want to create tokens for the Info Node only... How to ,,? >> >> The result of ft:tokens() will contain all tokens that are stored in >> the full-text index of the addressed database. At this point I’m >> stuck, because I can’t guess what you mean with "Info Node"? >> >> Best, >> Christian > > > > > -- > Have a nice day > JBest > >

⚡Generated with XQuery