Thanks for the quick response!

I am now able to retrieve excerpts in one query for both content and properties. According to http://issues.apache.org/jira/browse/JCR-920 it looks like it should work for properties (and it sort of does!)

The only thing I have to figure out is how to only show the highlighted bit and the content around it for that specific property.
This will probably need a custom excerpt provider.

Thanks for the help!

Simon


On 27 Nov 2009, at 16:03, Alexander Klimetschek wrote:

On Sat, Nov 28, 2009 at 00:00, Simon Gaeremynck <[email protected]> wrote:
I am trying to do a basic search query on the entire repository that returns
any node that has a  sling:resourceType property and that has a
property/content that matches a search string.
If there is a match I need to get all the properties of that node and an
excerpt of the matched string.

I have the following xpath query who returns the correct nodes:
//*...@sling:resourceType and (jcr:contains(jcr:content,'*test*') or
jcr:contains(.,'*test*'))]

This query gives me the parent of the jcr:content node and all the
properties on it, which is exactly what I want.

Now, I thought I could get the excerpts out of the results by appending
/rep:excerpt(.) like so:
//*...@sling:resourceType and (jcr:contains(jcr:content,'*test*') or
jcr:contains(.,'*test*'))]/rep:excerpt(.)

But this doesn't give my a usable excerpt.

I guess the excerpt is only useful when done on the jcr:content node.
So I think this query should do the trick:

//*...@sling:resourceType and (jcr:contains(jcr:content,'test') or
jcr:contains(.,'test'))]/rep:excerpt()

and then you'd call the rep:excerpt() with the jcr:content as parameter:

Row row = ...
Value excerpt = row.getValue("rep:excerpt(jcr:content)");

In this case you could also switch between the excerpt from a
jcr:content subnode or the node itself, depending on what exists.

Note that I also changed "*test*" to "test" as that should give the
same results. jcr:contains does a full text search, not an exact
comparison, hence word stemming etc. all take place.

Another problem I'm facing with excerpts is when I try to get an excerpt out
of a property/jcr:content with no (or almost none) content around the
highlighted word/phrase.
It seems to fill up the space by taking other property values of the node.

You can have a custom excerpt provider:
http://wiki.apache.org/jackrabbit/ExcerptProvider

Regards,
Alex

--
Alexander Klimetschek
[email protected]

Reply via email to