You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Marcel Reutegger <ma...@gmx.net> on 2008/01/21 10:41:26 UTC
Re: QueryObjectModel: FulltextSearch on subnodes
Hi Benjamin,
the QueryObjectModel in jackrabbit is work in progress and not usable in it's
current state.
the equivalent JQOM to your query would be:
qf.createQuery(
qf.join(
qf.selector("nt:file", "f"),
qf.selector("nt:resource", "r"),
qf.JOIN_TYPE_INNER,
qf.sameNodeJoinCondition("r", "f", "jcr:content")),
qf.fullTextSearch("r", null, "Test"),
null,
new Column[] { qf.column("f", null, null) }));
regards
marcel
Benjamin Papez wrote:
> Hello,
>
> I am already testing with your JSR283 QueryObjectModel implementation and have a
> question regarding the proper usage.
>
> The XPATH query, which I try to implement with the JQOM is:
>
> //element(*,nt:file)[jcr:contains(jcr:content,'Test')]
>
> Internally it results in a Lucene query:
>
> +(_:PROPERTIES:3:primaryType?4:file _:PROPERTIES:3:primaryType?12:file
> _:PROPERTIES:3:primaryType?12:symLink) +ParentAxisQuery
>
> while the ParentAxisQuery is:
>
> +_:LABEL:3:content +_:FULLTEXT:test
>
> With this I get some results.
>
> Now I am trying to build this same query with the QueryObjectModel. What I do is:
>
> qf.createQuery(qf.selector("nt:file"), qf.fullTextSearch(*null*, 'Test'),
> *null*, *null*);
>
> The resulting query looks like this:
>
> +(_:PROPERTIES:3:primaryType?4:file _:PROPERTIES:3:primaryType?12:file
> _:PROPERTIES:3:primaryType?12:symLink) +_:FULLTEXT:test
>
> With this I get no results.
>
> The JSR-283 documentation says for FullTextSearch:
>> If *propertyName *is specified, the full-text search scope is the property of
>> that name on the *selectorName *node in the node-tuple; otherwise the
>> full-text search scope is all properties of the *selectorName *node (or, in
>> some implementations, all properties in the node subtree).
>
> It looks like in the current implementation Jackrabbit is not searching through
> the subtree nodes, but anyway this will be implementation specific.
>
> What is the proper way to create a query with the JQOM, which will run on all
> implementations and where the FullTextSearch will look in all the subtree nodes?
> I would also like to extend this query by looking in the filename, so I would
> always like to return nt:file nodes.
>
> Regards,
> Benjamin
Re: QueryObjectModel: FulltextSearch on subnodes
Posted by Marcel Reutegger <ma...@gmx.net>.
Benjamin Papez wrote:
> Hello Marcel,
>
> thank you very much for the solution. Do you have an idea, when joins
> will be supported in the JQOM2LuceneQueryBuilder ?
there's no exact date, but the latest when JSR 283 is final and public.
jackrabbit will again be the basis for the reference implementation.
regards
marcel
Re: QueryObjectModel: FulltextSearch on subnodes
Posted by Benjamin Papez <ja...@gmail.com>.
Hello Marcel,
thank you very much for the solution. Do you have an idea, when joins
will be supported in the JQOM2LuceneQueryBuilder ?
Regards,
Benjamin
On 21.01.2008 10:41 Marcel Reutegger wrote:
> Hi Benjamin,
>
> the QueryObjectModel in jackrabbit is work in progress and not usable in
> it's current state.
>
> the equivalent JQOM to your query would be:
>
> qf.createQuery(
> qf.join(
> qf.selector("nt:file", "f"),
> qf.selector("nt:resource", "r"),
> qf.JOIN_TYPE_INNER,
> qf.sameNodeJoinCondition("r", "f", "jcr:content")),
> qf.fullTextSearch("r", null, "Test"),
> null,
> new Column[] { qf.column("f", null, null) }));
>
> regards
> marcel
>
> Benjamin Papez wrote:
>> Hello,
>>
>> I am already testing with your JSR283 QueryObjectModel implementation
>> and have a question regarding the proper usage.
>>
>> The XPATH query, which I try to implement with the JQOM is:
>>
>> //element(*,nt:file)[jcr:contains(jcr:content,'Test')]
>>
>> Internally it results in a Lucene query:
>>
>> +(_:PROPERTIES:3:primaryType?4:file _:PROPERTIES:3:primaryType?12:file
>> _:PROPERTIES:3:primaryType?12:symLink) +ParentAxisQuery
>>
>> while the ParentAxisQuery is:
>>
>> +_:LABEL:3:content +_:FULLTEXT:test
>>
>> With this I get some results.
>>
>> Now I am trying to build this same query with the QueryObjectModel.
>> What I do is:
>>
>> qf.createQuery(qf.selector("nt:file"), qf.fullTextSearch(*null*,
>> 'Test'), *null*, *null*);
>>
>> The resulting query looks like this:
>>
>> +(_:PROPERTIES:3:primaryType?4:file _:PROPERTIES:3:primaryType?12:file
>> _:PROPERTIES:3:primaryType?12:symLink) +_:FULLTEXT:test
>>
>> With this I get no results.
>>
>> The JSR-283 documentation says for FullTextSearch:
>>> If *propertyName *is specified, the full-text search scope is the
>>> property of that name on the *selectorName *node in the node-tuple;
>>> otherwise the full-text search scope is all properties of the
>>> *selectorName *node (or, in some implementations, all properties in
>>> the node subtree).
>>
>> It looks like in the current implementation Jackrabbit is not
>> searching through the subtree nodes, but anyway this will be
>> implementation specific.
>>
>> What is the proper way to create a query with the JQOM, which will run
>> on all implementations and where the FullTextSearch will look in all
>> the subtree nodes? I would also like to extend this query by looking
>> in the filename, so I would always like to return nt:file nodes.
>>
>> Regards,
>> Benjamin
>
>