jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robbert Uittenbroek <r.m.uittenbr...@rug.nl>
Subject Re: Finetuning (JCR) Search
Date Tue, 02 Feb 2010 10:29:30 GMT
Hi Ard,

Thanks for your feedback.

We use the jcr:like because we want to make sure the virtual path starts
with the specified path/keyword, rather than containing it.

As for searching jcr:data explicitly, I did some more Google searching
and it seems to me it is not quite possible.

On this site
http://wiki.exoplatform.org/xwiki/bin/view/JCR/Fulltext+Search , there
is a section stating:
"For example. We have property jcr:data (it' BINARY). Its stored well.
But you will never find any string with query like:
SELECT * FROM nt:resource WHERE CONTAINS(jcr:data, 'some string')
Because,  BINARY is not searchable by full text search on exact property."

You said:
jcr:contains(.,'foo') is node scope level (.)
jcr:contains(jcr:data, 'foo') search in jcr:data property

which seems logical and is also what we have tried, where the first
works, but using jcr:data as property returns no results.

As for my original question, I guess it is not possible to search in the
jcr:data property only for certain keywords, which I would find most
weird as in this case it is the contents (and contents only) of a
document we want to search in.. which are stored in jcr:data.. hmm.



Ard Schrijvers schreef:
> Hello Robbert,
> On Tue, Feb 2, 2010 at 9:24 AM, Robbert Uittenbroek
> <r.m.uittenbroek@rug.nl> wrote:
>> Hello,
>> I have a question regarding searching (in) the jcr:data property.
>> We store the contents of our documents in the jcr:content/jcr:data
>> property. We also have added many custom properties to the jcr:content
>> node, like creator, modifier, storageStatus and paths.
>> In most search-cases, we want to search the jcr:data contents only. It
>> now seems all properties are indexed by Lucene, and when we search we
>> find files which have the keywords in other properties than jcr:data.
>> While we do need to be able to search those properties in certain cases,
>> we also want to be able to search in 'contents only', hence the jcr:data
>> property. Can this be done, and if so, how? We use the xpath search
>> expression, and eventhough I've seen the SQL use jcr:data (I believe) as
>> field to search on, I can't seem to do this with the xpath expression.
>> Example of the used xpath expression:
> First of all, I really doubt whether you want to use jcr:like. It is
> really not scaling at all, let alone searching in binaries. Why aren't
> you using jcr:contains?
> Futhermore, searching in a single property is as simple as defining
> which property to search in the jcr:contains:
> thus:
> jcr:contains(.,'foo') is node scope level (.)
> jcr:contains(jcr:data, 'foo') search in jcr:data property
> Regards Ard
>> /jcr:root/webplatform/www.rug.nl//element(*,
>> nt:file)/jcr:content[jcr:like(@cms:virtualPathLC, '/corporate/%') and
>> @cms:type and not(@cms:type='link') and not(@cms:type='folder') and
>> not(@cms:type='function') and not(@cms:type='metadata') and
>> jcr:contains(., 'zernike')]/(rep:excerpt()|@cms:type) order by
>> jcr:score() descending
>> Any help on this matter would be appreciated.
>> Kinds Regards,
>> Robbert Uittenbroek

Robbert M. Uittenbroek
Rijksuniversiteit Groningen
Donald Smits Centrum voor Informatie Technologie

Nettelbosje 1
9747 AJ Groningen
Tel. 050 363 9298

View raw message