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

more tests of ToChildBlockJoinScorer.advance

    Details

    • Type: Test
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.4, 6.0
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      I recently helped diagnose some strange errors with ToChildBlockJoinQuery in an older version of Solr which lead me to realize that the problem seemed to have been fixed by LUCENE-6593 – however the tests Adrien added in that issue focused specifically the interaction of ToChildBlockJoinScorer with with the (fairly new) aproximations support in Scorers (evidently that was trigger that caused Adrien to investigate and make the fixes).

      However, in my initial diagnoses / testing, there were at least 2 (non aproximation based) situations where the old code was problematic:

      • ToChildBlockJoinScorer.advance didn't satisfy the "nextDoc equivilent behavior" contract in the special case where the first doc in a segment was a parent w/o any kids
      • in indexes that used multiple levels of hierarchy, a BooleanQuery that combined multiple ToChildBlockJoinQueries using different parent filters – ie: "find docs that are children of X and grandchildren of Y"

      As mentioned, Adrien's changes in LUCENE-6593 seemed to fix both of these problematic situations, but I'm opening this issue to track the addition of some new tests to explicitly cover these situations to protect us against future regression.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                hossman Hoss Man
                Reporter:
                hossman Hoss Man
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: