You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Davide Giannella (JIRA)" <ji...@apache.org> on 2016/02/05 16:39:39 UTC
[jira] [Updated] (OAK-3991) Incorrect resultset from XPATH,
multiple ORs and Lucene full-text
[ https://issues.apache.org/jira/browse/OAK-3991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Davide Giannella updated OAK-3991:
----------------------------------
Description:
In case of more complex xpath queries with a mix of ORs, ANDs and
full-text the returned resultset is wrong. Some of the conditions are
lost during the query execution. Most probably during the Filter
creation.
The query is:
{noformat}
/jcr:root/test//element(*, nt:unstructured)[
(
jcr:contains(., 'cinema')
or @tags = 'architecture-keywords:building/cinema'
or @tags = '/tags/architecture-keywords/building/cinema'
)
and @status = 'amber'
and (
not(@id)
and ( not(@types)
or (
not(@types = 'published')
and not(@types = 'page')
and not(@types = 'asset')
)
)
)]
{noformat}
In this case if you replace the @tags conditions with a
{{jcr:contains}} rather than {{=}} it will make the query works. Which
suggests the same root cause of OAK-2660.
OAK-2660 was indirectly addressed by OAK-1617 but the OR->UNION
conversion is not applied to subqueries of a UNION set.
See attached patch for a reproducing test case.
was:to be written
> Incorrect resultset from XPATH, multiple ORs and Lucene full-text
> -----------------------------------------------------------------
>
> Key: OAK-3991
> URL: https://issues.apache.org/jira/browse/OAK-3991
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: lucene, query
> Affects Versions: 1.2.10, 1.3.15
> Reporter: Davide Giannella
> Assignee: Davide Giannella
> Fix For: 1.6
>
>
> In case of more complex xpath queries with a mix of ORs, ANDs and
> full-text the returned resultset is wrong. Some of the conditions are
> lost during the query execution. Most probably during the Filter
> creation.
> The query is:
> {noformat}
> /jcr:root/test//element(*, nt:unstructured)[
> (
> jcr:contains(., 'cinema')
> or @tags = 'architecture-keywords:building/cinema'
> or @tags = '/tags/architecture-keywords/building/cinema'
> )
> and @status = 'amber'
> and (
> not(@id)
> and ( not(@types)
> or (
> not(@types = 'published')
> and not(@types = 'page')
> and not(@types = 'asset')
> )
> )
> )]
> {noformat}
> In this case if you replace the @tags conditions with a
> {{jcr:contains}} rather than {{=}} it will make the query works. Which
> suggests the same root cause of OAK-2660.
> OAK-2660 was indirectly addressed by OAK-1617 but the OR->UNION
> conversion is not applied to subqueries of a UNION set.
> See attached patch for a reproducing test case.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)