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 "Thomas Mueller (JIRA)" <ji...@apache.org> on 2013/09/10 11:42:52 UTC
[jira] [Comment Edited] (OAK-828) Full-text support for index
aggregates
[ https://issues.apache.org/jira/browse/OAK-828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13762892#comment-13762892 ]
Thomas Mueller edited comment on OAK-828 at 9/10/13 9:41 AM:
-------------------------------------------------------------
I think one case that is not solved yet is if there are multiple constraints combined with "and" or "or", for example:
{code}
contains([text], 'hello') or contains([text], 'world')
{code}
Both "hello" and "world" could be in different nodes. I will write a test case.
With relative properties, I think I understand now what the problem is. Currently, the query
{code}
contains([node1/text], 'hello')
{code}
ignores the relative path in the {{LuceneIndex}} and returns {{/testroot/node1, /testroot/node3}} instead of just {{/testroot}}, which would be the correct result.
Now if relative properties are supported in {{LuceneIndex}} (as it used to be), this will break index aggregation for the following case: if the data is in fact stored in {{/testroot/node1/jcr:content}}, the {{LuceneIndex}} would incorrectly not return the data because it's not {{/node1}}.
Possibly the easiest solution to support this is that the AggregateIndex takes care of relative properties: it "flattens" the condition for the {{LuceneIndex}}, and filters the result (return {{/testroot}} instead of {{/testroot/node1}}. This should solve the problem, but I'm not quite sure how to implement it yet :-)
was (Author: tmueller):
I think one case that is not solved yet is if there are multiple constraints combined with "and" or "or", for example:
{code}
contains([text], 'hello') or contains([text], 'world')
{code}
Both "hello" and "world" could be in different sub-trees. I will write a test case.
With relative properties, I think I understand now what the problem is. Currently, the query
{code}
contains([node1/text], 'hello')
{code}
ignores the relative path in the {{LuceneIndex}} and returns {{/testroot/node1, /testroot/node3}} instead of just {{/testroot}}, which would be the correct result.
Now if relative properties are supported in {{LuceneIndex}} (as it used to be), this will break index aggregation for the following case: if the data is in fact stored in {{/testroot/node1/jcr:content}}, the {{LuceneIndex}} would incorrectly not return the data because it's not {{/node1}}.
Possibly the easiest solution to support this is that the AggregateIndex takes care of relative properties: it "flattens" the condition for the {{LuceneIndex}}, and filters the result (return {{/testroot}} instead of {{/testroot/node1}}. This should solve the problem, but I'm not quite sure how to implement it yet :-)
> Full-text support for index aggregates
> --------------------------------------
>
> Key: OAK-828
> URL: https://issues.apache.org/jira/browse/OAK-828
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: oak-lucene, query
> Reporter: Alex Parvulescu
> Assignee: Alex Parvulescu
> Attachments: aggregates.patch
>
>
> There's no support for indexing aggregates in Oak [0]
> I'd like to start slowly rolling some basic support in, so that at least assumptions like fulltext search on files work properly.
> [0] http://wiki.apache.org/jackrabbit/IndexingConfiguration
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira