Thanks again Geert.  

 

It's taking me a while to come over from XPath land but with this list's
help I'm getting closer.

 

gary

From: [email protected]
[mailto:[email protected]] On Behalf Of Geert Josten
Sent: Wednesday, June 22, 2011 2:40 PM
To: General MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] element values in fragments

 

Hi Gary,

 

Are you aware that cts:element-value-match is returning values that match
the pattern, not a query that does so? Run it separately. Wouldn't be
surprised if it would return an empty sequence, you might want to try '*'
instead of '?' as pattern..

 

Cts:and-query doesn't return doc-id's. Queries are always fragment-based,
and result in a positive match if the query (and its sub-queries) are
satisfied within a single fragment, with the exception of
document-fragment-query..

 

Kind regards,

Geert

 

Van: [email protected]
[mailto:[email protected]] Namens Gary Larsen
Verzonden: dinsdag 21 juni 2011 20:16
Aan: 'General MarkLogic Developer Discussion'
Onderwerp: Re: [MarkLogic Dev General] element values in fragments

 

Hi Mike,

 

Using cts:uris() and cts:document-query() I was able to get
cts:element-values() to return values.   It would help me to understand why
a cts:and-query() does not work in this case.  

 

I was under the assumption that a cts:and-query() would return doc ids which
would be equivalent.  

 

Thanks,

gary

 

 

 

 

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Michael
Blakeley
Sent: Tuesday, June 21, 2011 1:04 PM
To: General MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] element values in fragments

 

If your current fragmentation strategy maps well to the way that your
application reads and updates documents, then it may make sense to copy some
information down into the sub-fragments.

 

Alternatively, you could use cts:uris() to get all the document uris that
match the top-level part of the query, then feed those uris into a
cts:document-query() that tests the sub-fragments.

 

-- Mike

 

On 21 Jun 2011, at 10:05 , Gary Larsen wrote:

 

> Hi Danny,

>  

> The original $cq was finding results, but removing the
document-fragment-query still returns an empty sequence.  If I change
cts:element-values to use an element in the document, but not in a fragment,
it correctly returns values.

>  

> I had to use fragments in order to load some large documents, but I
haven't figured out how this is effecting my query strategy.

>  

> Thanks,

> gary

>  

>  

> From: [email protected]
[mailto:[email protected]] On Behalf OfDanny Sokolsky

> Sent: Tuesday, June 21, 2011 12:37 PM

> To: General MarkLogic Developer Discussion

> Subject: Re: [MarkLogic Dev General] element values in fragments

>  

> Hi Gary,

>  

> I think element-values will give you answers based on fragments, so I
don't think you need that document-fragment-query (which the way you have
written it I think causes that query to match nothing).  Something like:

>  

> xquery version "1.0-ml";

> declare default element
namespace'http://developer.envisn.com/xmlns/envisn/netvisn/'; 

> 

> let $modelKey := 'i627DE1CC4CF94F73ACAB3D27953C5D3C' 

> 

> let $cq :=

>   cts:and-query((

>     cts:directory-query("/db/netvisn/content/","infinity"),

>     cts:element-value-query(xs:QName("contentKey"), $modelKey, "exact)

>   ))

>               

> cts:element-values(xs:QName("column"),"", ("document"), $cq)          

> 

> Does that work?  What version of MarkLogic are you running?

>  

> -Danny

>  

> From: [email protected]
[mailto:[email protected]] On Behalf OfGary Larsen

> Sent: Tuesday, June 21, 2011 9:11 AM

> To: 'General MarkLogic Developer Discussion'

> Subject: [MarkLogic Dev General] element values in fragments

>  

> Hi,

>  

> I'm trying to create a query to return distinct element values.  I've done
this before but this time the element resides in a document fragment.  In
the query below the 'column' element is in a fragment so I included the
document-fragment-query in the constraining query.

>  

> Something is not correct as an empty sequence is being returned.

>  

> xquery version "1.0-ml";

> declare default element
namespace'http://developer.envisn.com/xmlns/envisn/netvisn/'; 

> 

> let $modelKey := 'i627DE1CC4CF94F73ACAB3D27953C5D3C' 

> 

> let $cq :=

>   cts:and-query((

>     cts:directory-query("/db/netvisn/content/","infinity"),

>     cts:element-value-query(xs:QName("contentKey"), $modelKey, "exact"),

>
cts:document-fragment-query(cts:element-value-match(xs:QName("column"),
"?"))

>   ))

>               

> let $columns := cts:element-values(xs:QName("column"),"", (), $cq)


> for $column in $columns return $column

> 

> This query does return values though:

>  

> return cts:search(doc(), $cq)//column

>  

> <column
xmlns="http://developer.envisn.com/xmlns/envisn/netvisn/";>CITY</column>

> <column
xmlns="http://developer.envisn.com/xmlns/envisn/netvisn/";>COMPANYNAME</colum
n>

> <column
xmlns="http://developer.envisn.com/xmlns/envisn/netvisn/";>COUNTRY</column>

> <column
xmlns="http://developer.envisn.com/xmlns/envisn/netvisn/";>REGIONID</column>

> <column
xmlns="http://developer.envisn.com/xmlns/envisn/netvisn/";>COUNTRY</column>

> <column
xmlns="http://developer.envisn.com/xmlns/envisn/netvisn/";>COUNTRY</column>

> <column
xmlns="http://developer.envisn.com/xmlns/envisn/netvisn/";>COUNTRY</column>

> <column
xmlns="http://developer.envisn.com/xmlns/envisn/netvisn/";>CITY</column>

> 

> Thanks for any assistance,

> gary

> _______________________________________________

> 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

Reply via email to