@Rob,
I've tried that suggestion, but won't that just search the paths below
/doc/classifications/classification ? If you look at the structure of
the document you can see that the keywords don't exist under the
classification branch. I've got an attribute range index on
keyword/@value.
On Wed, Nov 12, 2008 at 2:47 PM, Whitby, Rob, CMG
<[EMAIL PROTECTED]> wrote:
> If you put an attribute range index on keyword/@value you can do
> something like this:
>
> cts:search(
> /doc/classifications/classification,
> cts:element-attribute-value-query(xs:Qname("keyword",
> xs:Qname("value"), "something")
> )
>
> (untested!)
>
> Rob
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Steve
> Sent: 12 November 2008 14:41
> To: James Clippinger
> Cc: General Mark Logic Developer Discussion
> Subject: Re: [MarkLogic Dev General] Improving XPath Performance
> onSearchResults
>
> I should probably add that I'm trying to extract all classification
> values for the documents that have a specific keyword value.
>
> On Wed, Nov 12, 2008 at 2:40 PM, Steve <[EMAIL PROTECTED]>
> wrote:
>> Thanks for your response.
>>
>> I've tried your suggestion and it doesn't really help. Looking at the
>> profiling document, I can see that it's clearly the XPath on the
>> document results that is slowing the who thing down. Is there any
>> other ways that I can improve this. I've included a sample document
>> (small), so you can see what I'm trying to achieve.
>>
>> <doc>
>> <classifications>
>> <classification value="123" />
>> <classification value="324" />
>> </classifications>
>> <keywords>
>> <keyword value="word1" />
>> <keyword value="word2" />
>>
>> </keywords>
>> </doc>
>>
>>
>>
>> On Wed, Nov 12, 2008 at 2:24 PM, James Clippinger
>> <[EMAIL PROTECTED]> wrote:
>>> Steve, your query is doing some heavyweight filtering for the XPath
>>> because it is doing two steps:
>>>
>>> 1) Execute the cts:search(): generate a list of all documents
>>> matching the query in relevance order.
>>>
>>> 2) Execute the XPath: reorder the documents into document order and
>>> find only those with /doc/classifications/classification elements,
>>> returning those classification elements.
>>>
>>> Since you are using XPath and thus returning results in document
>>> order, you probably want to use cts:contains() in an XPath predicate
>>> rather than cts:search(). cts:contains() in a rooted XPath
>>> expression will use the search indexes when appropriate, so it's as
>>> fast as the equivalent
>>> cts:search() expression. Try this:
>>>
>>> let $search := cts:element-attribute-word-query(fn:QName("",
>>> "keyword"), fn:QName("", "value"), "something") return
>>> fn:collection()/doc[cts:contains(.,
>>> $search)/classifications/classification
>>>
>>> James
>>>
>>>> -----Original Message-----
>>>> From: [EMAIL PROTECTED]
>>>> [mailto:[EMAIL PROTECTED] On Behalf Of Steve
>>>> Sent: Wednesday, November 12, 2008 8:54 AM
>>>> To: [email protected]
>>>> Subject: [MarkLogic Dev General] Improving XPath Performance on
>>>> SearchResults
>>>>
>>>> I've written a query which I use to search my data set and I am able
>
>>>> to get the results back very quickly. However the results that I get
>
>>>> back show the complete document that the search matched, where as I
>>>> want a particular node returned.
>>>> At the moment I'm doing this:
>>>>
>>>> let $search := cts:element-attribute-word-query(fn:QName("",
>>>> "keyword"), fn:QName("", "value"), "something") let $results :=
>>>> cts:search(fn:collection(),
>>>> $search)/doc/classifications/classification
>>>> return $results
>>>>
>>>> I've tried profiling this query and I've found that there is a big
>>>> lag filtering the $results of the search using XPath.
>>>> Is there any way, either through using a different query or search
>>>> notation, or by indexes etc that I can speed this up.
>>>>
>>>> Thanks in advance...
>>>> _______________________________________________
>>>> 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