How big is your data set ? The example I gave is pure xquery If the data is large there may not be much you can do entirely on-demand. Making it go faster in ML may involve pre-processing the data into a tree structure. I've had to do the same thing myself from flat struture to generate fast trees.
-----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Helen Chen Sent: Tuesday, April 06, 2010 4:53 PM To: General Mark Logic Developer Discussion Cc: Helen Chen Subject: Re: [MarkLogic Dev General] how to build the tree based on data Hi David, Thanks for the help. I did the list for one coden, this coden is kind of a little bit big, and it took more than one minute to return the full list, I added the order by for the for loop. It is a little too long for real time search result. I need it quicker. Any suggestions? Thanks, Helen On Apr 6, 2010, at 3:45 PM, Lee, David wrote: > Syntax typo > Not: > for $i in $issues := //article[volume eq $v and coden eq $c] > > Should be > > for $i in //article[volume eq $v and coden eq $c] > > > Probably some others as well > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Lee, > David > Sent: Tuesday, April 06, 2010 3:40 PM > To: General Mark Logic Developer Discussion > Subject: RE: [MarkLogic Dev General] how to build the tree based on > data > > A very quick pseudocode .... maybe this will give you some ideas. > > let $codens := fn:distinct-values( //coden) > for $c in $codens return > <coden name="{$c}"> > { > let $volumes := fn:distinct-values( $c//volume ) > for $v in $volumes > return > <volume name="{$v}"> > { > for $i in $issues := //article[volume eq $v and > coden eq $c] > return <issue name="{$i}"/> > } > </volume> > } > </coden> > > > > > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Helen > Chen > Sent: Tuesday, April 06, 2010 2:29 PM > To: General Mark Logic Developer Discussion > Cc: Helen Chen > Subject: [MarkLogic Dev General] how to build the tree based on data > > our data is like in the following structure > <article>...<coden></coden><volume></volume><issue></issue><paper></ > paper>....</article> > > the following are examples of the data, each tag <article> means one > xml in marklogic: > > article 1: > <article>...<coden>AAA</coden><volume>1</volume><issue>1</ > issue><paper>123</paper>....</article> > article 2: > <article>....<coden>AAA</coden><volume>1</volume><issue>2</ > issue><paper>233</paper>....</article> > article 3: > <article>....<coden>AAA</coden><volume>2</volume><issue>3</ > issue><paper>355</paper>....</article> > article 4: > <article>....<coden>ACD</coden><volume>5</volume><issue>2</ > issue><paper>899</paper>....</article> > article 5: > <article>....<coden>ABC</coden><volume>1</volume><issue>3</ > issue><paper>667</paper>....</article> > > > I want to build a tree list based on coden > > coden > volume > issue > > > so based on the above example data, if I say I want to build the tree > for coden AAA, I should get: > AAA > vol 1 > iss1 > iss 2 > vol 2 > iss 3 > > Any suggestions on how to build it using marklogic? > > Thanks, Helen > _______________________________________________ > General mailing list > [email protected] > http://xqzone.com/mailman/listinfo/general > _______________________________________________ > General mailing list > [email protected] > http://xqzone.com/mailman/listinfo/general > _______________________________________________ > General mailing list > [email protected] > http://xqzone.com/mailman/listinfo/general _______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general _______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general
