[MarkLogic Dev General] max function alternatives UPDATED

Patrick Force patrickf at arc90.com
Thu Jan 11 11:40:34 PST 2007


Thanks Mike.  Attempted the query you suggested and some variations  
but it didn't improve performance.  I think I need to continue along  
the path to get the index set up correctly.  The problem, I believe,  
has something to do in the index setting.  It appears that I've set  
it up correctly (even sent a screenshot to Ajay to confirm), but my  
query continues to return an error that suggests that the attribute  
index doesn't exist.  Ajay recommended that I contact support in  
order to assess any issues that might exist with the install/software  
etc.  I'd obviously like to figure it out before going that route,  
but it might be necessary.

Danny, I do have the reindexer enabled.  We did not reload data after  
setting the attribute index.  We are currently using version  
3.1-3.1.  I didn't even realize that we don't have the most current  
version running.  Is there a known attribute index bug that was fixed  
between 3.1-3.1 and 3.1-4?  Also, we currently have about 30,000  
documents in the directory in question, and that is a bulk of the  
data in the system as of now.  Overall we have a database of 38,061  
documents at 1,616 MB.

Thank you all for the quick responses, and let me know about the  
above or if you have any other feedback for me.  I will keep you  
updated otherwise on the progress.

Patrick

Have you tried:
(for $i in /RootElement
         order by xs:int($i/@index) descending)[ 1 ]/@index
?

If you aren't using namespaces at all (sounds like) just leave those
fields blank.

If you get the index set up that query should be OK - we solved exactly
this problem yesterday in this way.

Of course it'd be nice if the database had a sequence construct or an
autoincrement property like every SQL database in the universe, but it's
not impossible to make one yourself given a range index and  
transactions.

-Mike

Patrick Force wrote:
 > I'm attempting to find some alternatives in MarkLogic for improving
 > the speed of a max XQuery call we currently have in place.  I believe
 > the solution exists, for my case, in setting an attribute index, but
 > I've been unsuccessful in my attempts so far.  The help docs for the
 > administration interface don't seem to explain the meaning and exact
 > use of the namespace uri values of a range index.  I believe I might
 > be mixing XPath concepts into the namespace values erroneously.  A
 > more detailed explanation of the scenario:
 >
 > 1) We have multiple documents that exist at the uri like:
 > /c/database/documents
 > 2) Each document contains a root element like: <RootElement
 > id="HPX_9876" index="9876">...etc.
 > 3) Our current XQuery call in question: max(/RootElement/@index)
 > 4) I've attempted to set up an attribute index via the administration
 > console:
 >     a) scalar type: string
 >     b) parent namespace uri: ??? I've attempted a uri-type value like
 > /c/database/documents/RootElement but I haven't found a good
 > explanation of what this value should be
 >     c) parent localname: RootElement
 >     d) namespace uri: ??? again, not sure how to set this one but  
have
 > tried uri-type value of /c/database/documents/RootElement/@index
 >     e) localname: index
 > 5) Set the above attribute index in efforts to make the following
 > XQuery perform a faster max call:
 >     max(for $i in
 > cts:element-attribute-values(xs:QName(“InsurancePolicy”),xs:QName 
(“id”))
 >         return xs:int($i))
 >
 > Any ideas/suggestions would be greatly appreciated.
 >
 > Patrick_______________________________________________
 > General mailing list
 > General at developer.marklogic.com
 > http://xqzone.com/mailman/listinfo/general

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://xqzone.marklogic.com/pipermail/general/attachments/20070111/f8030c53/attachment.html


More information about the General mailing list