Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-7109

rep:facet returns wrong results for complex queries

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.6.7
    • None
    • lucene

    Description

      Complex queries in that case are queries, which are passed to lucene not containing all original constraints. For example queries with multiple path restrictions like:

      select [rep:facet(simple/tags)] from [nt:base] as a where contains(a.[*], 'ipsum') and (isdescendantnode(a,'/content1') or isdescendantnode(a,'/content2'))
      

      In that particular case the index planer gives ":fulltext:ipsum" to lucene even though the index supports evaluating path constraints.

      As counting the facets happens on the raw result of lucene, the returned facets are incorrect. For example having the following content

      /content1/test/foo
       + text = lorem ipsum
       - simple/
        + tags = tag1, tag2
      /content2/test/bar
       + text = lorem ipsum
       - simple/
        + tags = tag1, tag2
      /content3/test/bar
       + text = lorem ipsum
       - simple/
         + tags = tag1, tag2
      

      the expected result for the dimensions of simple/tags and the query above is

      • tag1: 2
      • tag2: 2

      as the result set is 2 results long and all documents are equal. The actual result set is

      • tag1: 3
      • tag2: 3

      as the path constraint is not handled by lucene.

      To workaround that the only solution that came to my mind is building the disjunctive normal form of my complex query and executing a query for each of the disjunctive statements. As this is expanding exponentially its only a theoretical solution, nothing for production.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            diru Dirk Rudolph

            Dates

              Created:
              Updated:

              Slack

                Issue deployment