Hi Patrick,
In looking again at what you are trying to do, I think perhaps you have
set up the index on the wrong element/attribute conbination. I may not
have this correct, but based on what it says below, here is what I see.
Below, you say you have an index on the following:
element QName: RootElement
attribute QName: index
But the query you are trying to perform is this:
cts:element-attribute-values(xs:QName("InsurancePolicy"),xs:QName("id"))
This query requires the range index on:
element QName: InsurancePolicy
attribute QName: id
So I guess the thing to verify is exactly what index do you have
created, and exactly what query are you trying to perform.
-Danny
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Patrick
Force
Sent: Thursday, January 11, 2007 11:41 AM
To: [email protected]
Subject: [MarkLogic Dev General] max function alternatives UPDATED
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
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general