Sorry I didn't describe clearly. each <article> tag means one xml file, and each <jps> tag also means one xml file. The <article> tag holds the true article data, it is the top element in the xml file the <jps> tag is some meta information that does not exist in article data, it is on volume level, which means each coden and volume will have a separate xml file. and jps tag is the top element in the xml file. the coden volume and publication_year tag are also unique in each xml file.
We don't do special thing for fragment when loading data. But if they are in separate file, that should means they are in different fragment. Correct me if it is not. if I do the query like the following, I'll get correct value, but the big element-values query did not. fn:doc()/nsjps:jps[(./nsjps:coden eq "AAA") and (./nsjps:volume eq "12")]/nsjps:publication_year/text() Thanks, Helen > > <article>...<coden>AAA</coden><volume>1</volume><issue>1</issue><paper>123</paper>....</article> On May 6, 2010, at 12:55 PM, Geert Josten wrote: > Hi Helen, > > Looking more closely at your problem now. You say you have one big file with > all articles, which works correctly. You also have on big file with all jps > elements. Could it be that you have added 'article' as fragment root? I think > you also need 'jps' as fragment root. > > Your filter query will restrict the element-values to a set of fragments from > which it 'takes' the appropriate values. But it will take all within the same > fragment. So if you don't fragment on 'jps', your filter query will always > return the whole xml (with all jps elements) as one fragment, and hence > element-values will always return all possible values.. > > HTH > > Kind regards, > Geert > >> -----Original Message----- >> From: [email protected] >> [mailto:[email protected]] On Behalf Of >> helen chen >> Sent: donderdag 6 mei 2010 18:46 >> To: General Mark Logic Developer Discussion >> Subject: Re: [MarkLogic Dev General] question on query >> >> Hi Geert, >> >> Yes, the collation in the code is the collation I used to set >> the element-range indexes. >> >> I actually tried to do the query without specifying the >> collation like following, and I tried to take collation out >> one by one, but marklogic complains that there is no element >> range index for it, so I have to put collation there. >> >> cts:element-values(fn:QName("nsjps","publication_year"),(), >> ("ascending"), >> cts:and-query(( >> >> cts:element-range-query(fn:QName("nsjps","coden"), "=", "AAA", ()), >> >> cts:element-range-query(fn:QName("nsjps","volume"), "=", "12", ()) >> ), ()) >> ) >> >> >> >> Helen >> >> On May 6, 2010, at 12:33 PM, Geert Josten wrote: >> >> >> Hi Helen, >> >> You are using a particular collation in your code. Do >> all indexes specify this same collation? >> >> Kind regards, >> Geert >> >> >> >> drs. G.P.H. (Geert) Josten >> Consultant >> >> >> <image894d23....@724072c4b4fa45a4 >> <mailto:[email protected]> > >> >> >> >> >> >> >> Daidalos BV >> >> Hoekeindsehof 1-4 >> 2665 JZ Bleiswijk >> >> T +31 (0)10 850 1200 >> F +31 (0)10 850 1199 >> >> <mailto:[email protected]> [email protected] >> www.daidalos.nl <http://www.daidalos.nl/> >> >> KvK 27164984 >> >> >> P Please consider the environment before printing this mail. >> De informatie - verzonden in of met dit e-mailbericht - >> is afkomstig van Daidalos BV en is uitsluitend bestemd voor >> de geadresseerde. Indien u dit bericht onbedoeld hebt >> ontvangen, verzoeken wij u het te verwijderen. Aan dit >> bericht kunnen geen rechten worden ontleend. >> >> >> >> >> >> >> >> ________________________________ >> >> From: [email protected] >> [mailto:[email protected]] On Behalf Of >> helen chen >> Sent: donderdag 6 mei 2010 18:13 >> To: General Mark Logic Developer Discussion >> Cc: helen chen >> Subject: [MarkLogic Dev General] question on query >> >> >> I have a query works on one structure but not >> on another set of structure, I couldn't see the clue, >> >> >> for the working one: our data is like in the >> following structure >> >> <article>...<coden></coden><volume></volume><issue></issue><pa >> per></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</issu >> e><paper>123</paper>....</article> >> article 2: >> <article>....<coden>AAA</coden><volume>1</volume><issue>2</iss >> ue><paper>233</paper>...</article> >> ... >> >> I want to get issue list for the coden and >> volume, so I use the query >> >> >> cts:element-values(fn:QName("ns1","issue"),(), >> ("collation=http://marklogic.com/collation/en/MO", "descending"), >> cts:and-query(( >> >> cts:element-range-query(fn:QName("ns1","coden"), "=", "AAA", >> "collation=http://marklogic.com/collation/en/MO"), >> >> cts:element-range-query(fn:QName("ns1","volume"), "=", "1", >> "collation=http://marklogic.com/collation/en/MO") >> )) >> ) >> >> >> >> this one works very good, and it gives me the >> correct issue list for different coden/volume. >> >> >> ------- for the not working one: >> I have another situation that I want to use >> query similar with the above one: >> I have xml file structure like : <jps >> xmlns="nsjps"> <coden></coden> <volume></volume> >> <publication_year></publication_year></jps> >> >> >> the following every line is one xml file >> ... >> <jps xmlns="nsjps"> <coden>AAA</coden> >> <volume>12</volume> <publication_year>1968</publication_year></jps> >> <jps xmlns="nsjps"> <coden>AAA</coden> >> <volume>11</volume> <publication_year>1967</publication_year></jps> >> <jps xmlns="nsjps"> <coden>AAA</coden> >> <volume>10</volume> <publication_year>1966</publication_year></jps> >> <jps xmlns="nsjps"> <coden>AAB</coden> >> <volume>15</volume> <publication_year>1978</publication_year></jps> >> ... >> >> >> here every coden and volume should have unique >> value as publication_year. I thought if I use the following >> query for coden=AAA and volume=12, I should get only 1968 as >> return, but I got all the values for all the publication_year >> for coden=AAA and volume=12, which is 1968, 1967, 1966... >> >> >> >> >> cts:element-values(fn:QName("nsjps","publication_year"),(), >> ("collation=http://marklogic.com/collation/en/MO", "descending"), >> cts:and-query(( >> >> cts:element-range-query(fn:QName("nsjps","coden"), "=", >> "AAA", "collation=http://marklogic.com/collation/en/MO"), >> >> cts:element-range-query(fn:QName("nsjps","volume"), "=", >> "12", "collation=http://marklogic.com/collation/en/MO") >> )) >> ) >> >> >> >> >> Any one can help me? >> >> >> >> >> Thanks, Helen >> >> >> >> >> _______________________________________________ >> General mailing list >> [email protected] >> http://developer.marklogic.com/mailman/listinfo/general >> >> >> >> > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
