tballison opened a new pull request, #16511: URL: https://github.com/apache/lucene/pull/16511
Adds a differential oracle: the optimized bulk-scoring path must produce the same match set as doc-by-doc Scorer iteration (ScorerIndexSearcher), for random queries over random indexes. Three tests: 1. testBulkEqualsScorer — the fuzzer: random index shapes (doc counts derived from WINDOW_SIZE boundaries, three value layouts, skip-indexed DV fields, per-field density incl. fully-populated and constant fields, deletes/updates, RandomIndexWriter) and random query trees biased toward pure-FILTER conjunctions (DenseConjunctionBulkScorer) and wide flat disjunctions (BooleanScorer). 1. `testHarnessDetectsBrokenBulkScorer` — self-test: a bulk scorer that collects without confirming matches is visibly flagged, guarding against vacuous passing. 1. `testDVOrdinalSetFalsePositive` — deterministic end-to-end regression pin for https://github.com/apache/lucene/pull/16450 (the fix added iterator-level tests only; this pins the layer the bug actually escaped at). Confirmed manually that the regression tests fails at the pre-fix commit (c93628f669, on branch_10x). On current main: zero disagreements in 100 fuzzer iterations (~6,000 query comparisons). Compares match sets only, not scores. Field kinds and query shapes are scoped to the GH#16450 neighborhood (DV skip-index paths); the FieldSpec/FieldKind structure is built for incremental extension (multi-valued fields, phrases, index sorting are natural follow-ups). 🤖 assisted -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
