Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-7497

Cannot use boolean SHOULD queries with block join?

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Invalid
    • Affects Version/s: None
    • Fix Version/s: master (7.0), 6.3
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      I'm in the process of upgrading http://jirasearch.mikemccandless.com (based on 4.10.x in production today!) to Lucene 6.x, but hit this tricky bug.

      When I run the new test case, I hit this:

      1) testBQShouldJoinedChild(org.apache.lucene.search.join.TestBlockJoin)
      java.lang.UnsupportedOperationException
      	at __randomizedtesting.SeedInfo.seed([4D5C76211B3E41E1:48F4B8C556F02AB0]:0)
      	at org.apache.lucene.search.FakeScorer.getChildren(FakeScorer.java:60)
      	at org.apache.lucene.search.join.ToParentBlockJoinCollector$1.setScorer(ToParentBlockJoinCollector.java:190)
      	at org.apache.lucene.search.FilterLeafCollector.setScorer(FilterLeafCollector.java:38)
      	at org.apache.lucene.search.AssertingLeafCollector.setScorer(AssertingLeafCollector.java:43)
      	at org.apache.lucene.search.FilterLeafCollector.setScorer(FilterLeafCollector.java:38)
      	at org.apache.lucene.search.AssertingLeafCollector.setScorer(AssertingLeafCollector.java:43)
      	at org.apache.lucene.search.BooleanScorer.score(BooleanScorer.java:319)
      	at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:39)
      	at org.apache.lucene.search.AssertingBulkScorer.score(AssertingBulkScorer.java:69)
      	at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:669)
      	at org.apache.lucene.search.AssertingIndexSearcher.search(AssertingIndexSearcher.java:91)
      	at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:473)
      	at org.apache.lucene.search.join.TestBlockJoin.testBQShouldJoinedChild(TestBlockJoin.java:233)
      

      Not sure how to fix it ... it happens because jirasearch runs SHOULD queries against the child docs (one child doc per jira comment) and parent docs text fields (one child doc per jira issue).

      1. LUCENE-7497.patch
        4 kB
        Michael McCandless

        Issue Links

          Activity

          Hide
          mikemccand Michael McCandless added a comment -

          Patch w/ new failing test case.

          Show
          mikemccand Michael McCandless added a comment - Patch w/ new failing test case.
          Hide
          jpountz Adrien Grand added a comment -

          This collector needs access to Scorer.getChildren() that BS1 does not expose. Fixing BS1 to expose sub scorers would be fairly costly, so we added a note to ToParentBlockJoinCollector to recommend using ToParentBlockJoinIndexSearcher, an IndexSearcher which disables bulk scoring:

           *  <p>This collector MUST be used with {@link ToParentBlockJoinIndexSearcher},
           *  in order to work correctly.
          

          See also LUCENE-6959.

          Show
          jpountz Adrien Grand added a comment - This collector needs access to Scorer.getChildren() that BS1 does not expose. Fixing BS1 to expose sub scorers would be fairly costly, so we added a note to ToParentBlockJoinCollector to recommend using ToParentBlockJoinIndexSearcher , an IndexSearcher which disables bulk scoring: * <p>This collector MUST be used with {@link ToParentBlockJoinIndexSearcher}, * in order to work correctly. See also LUCENE-6959 .
          Hide
          mikemccand Michael McCandless added a comment -

          Ahhhh that's right!! I forgot about this Thank you for the refresher. I'll fix my test case to use ToParentBlockJoinIndexSearcher and confirm it passes and push.

          Show
          mikemccand Michael McCandless added a comment - Ahhhh that's right!! I forgot about this Thank you for the refresher. I'll fix my test case to use ToParentBlockJoinIndexSearcher and confirm it passes and push.
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit abbbdc866dd16c34714d48ee7bc4e754423e6039 in lucene-solr's branch refs/heads/branch_6x from Mike McCandless
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=abbbdc8 ]

          LUCENE-7497: add test case

          Show
          jira-bot ASF subversion and git services added a comment - Commit abbbdc866dd16c34714d48ee7bc4e754423e6039 in lucene-solr's branch refs/heads/branch_6x from Mike McCandless [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=abbbdc8 ] LUCENE-7497 : add test case
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit b78f2219f45ca64c6a4b7261a87fae89477ec26f in lucene-solr's branch refs/heads/master from Mike McCandless
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=b78f221 ]

          LUCENE-7497: add test case

          Show
          jira-bot ASF subversion and git services added a comment - Commit b78f2219f45ca64c6a4b7261a87fae89477ec26f in lucene-solr's branch refs/heads/master from Mike McCandless [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=b78f221 ] LUCENE-7497 : add test case
          Hide
          shalinmangar Shalin Shekhar Mangar added a comment -

          Closing after 6.3.0 release.

          Show
          shalinmangar Shalin Shekhar Mangar added a comment - Closing after 6.3.0 release.

            People

            • Assignee:
              Unassigned
              Reporter:
              mikemccand Michael McCandless
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development