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

To-parent block joins should implement two-phase iteration

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 7.0, 6.5
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      To-parent block joins are a good fit for two-phase iteration. Currently the iterator implementation visits all child matches before returning a parent match. Instead, an approximation would only need to find one child match in order to return a potential parent match. This would make to-parent block joins more efficient when used in conjunctions.

      1. LUCENE-7654.patch
        28 kB
        Adrien Grand

        Issue Links

          Activity

          Hide
          jpountz Adrien Grand added a comment -

          Here is a patch that implements both scorerSupplier and twoPhaseIterator for to-parent block joins. It cannot be committed right now because it would cause bugs with ToParentBlockJoinCollector. The latter currently relies on the fact that if a sub scorer returns the current doc with the docId() method, then it means that it matches, which is not true with two-phase iteration.

          Show
          jpountz Adrien Grand added a comment - Here is a patch that implements both scorerSupplier and twoPhaseIterator for to-parent block joins. It cannot be committed right now because it would cause bugs with ToParentBlockJoinCollector . The latter currently relies on the fact that if a sub scorer returns the current doc with the docId() method, then it means that it matches, which is not true with two-phase iteration.
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit b6b44d44d8277c533c7df975e05dd1c313cf3f23 in lucene-solr's branch refs/heads/branch_6x from Adrien Grand
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=b6b44d4 ]

          LUCENE-7654: To-parent block joins should implement two-phase iteration.

          Show
          jira-bot ASF subversion and git services added a comment - Commit b6b44d44d8277c533c7df975e05dd1c313cf3f23 in lucene-solr's branch refs/heads/branch_6x from Adrien Grand [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=b6b44d4 ] LUCENE-7654 : To-parent block joins should implement two-phase iteration.
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 9d5dc0cf573cf8fc75dd7799844db2cb0fa52da8 in lucene-solr's branch refs/heads/master from Adrien Grand
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=9d5dc0c ]

          LUCENE-7654: To-parent block joins should implement two-phase iteration.

          Show
          jira-bot ASF subversion and git services added a comment - Commit 9d5dc0cf573cf8fc75dd7799844db2cb0fa52da8 in lucene-solr's branch refs/heads/master from Adrien Grand [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=9d5dc0c ] LUCENE-7654 : To-parent block joins should implement two-phase iteration.

            People

            • Assignee:
              Unassigned
              Reporter:
              jpountz Adrien Grand
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development