nick-boss-tech commented on PR #5293:
URL: https://github.com/apache/solr/pull/5293#issuecomment-6650656181

   🤖 *AI text below* 🤖 *(reviewed by Nick Shanin)*
   
   @HoustonPutman I have a Solr regression-test branch and a separate Lucene 
repair for two missing-value cases exposed by this PR:
   
   - With numeric `sortMissingFirst`, a sibling excluded by the child filter 
affects parent ordering as though it were a matching child with a missing value.
   - String `sortMissingFirst` with descending sorting throws during collection 
because a missing-value marker is treated as a real term ordinal in `lookupOrd`.
   
   This PR starts passing the schema's missing-value setting to Lucene as 
`childMissingValue`, exposing these problems in `ToParentDocValues`. The Solr 
tests preserve your choice to keep the default parent missing-value setting.
   
   A comparison using the same test patch with Lucene 10.4 passes the 
filtered-child test, confirming a regression after the upgrade. The string 
missing-first test returns the wrong order with 10.4 and throws with 10.6. The 
numeric missing-value test improves from failing on 10.4 to passing on 10.6; 
string missing-last passes on both.
   
   The [Solr test 
diff](https://github.com/nick-boss-tech/solr/compare/978e2b1e352c7c39a68f7b952e6ab12eabf80890...769ca6e177d77acd3f1993a4a24bd3257ae243c0)
 adds four tests using the existing test setup. On Linux/JDK 21, seed 
`18622C0DE`, your original suite passes 11/11; two added tests pass and the two 
cases above fail. The branch still reproduces those failures and needs one 
formatting-only correction. Broader Solr checks were not run. To take the exact 
tested commit:
   
   ```bash
   git switch SOLR-18622-lucene-10.6
   git fetch https://github.com/nick-boss-tech/solr.git 
pr-5293-solr-18622-child-sort-missing
   git merge --ff-only 769ca6e177d77acd3f1993a4a24bd3257ae243c0
   ```
   
   The [Lucene repair 
diff](https://github.com/nick-boss-tech/lucene/compare/aa366ae209ae8296dd70d2835c6d47f8fc201972...55c3174bd154b5cc987d9b24e1c77043e23fe71e)
 checks only matching children when deciding whether a value is missing. When a 
missing string wins selection, it reports no value so the comparator can apply 
the parent's missing-value setting. It changes one production file and two 
existing test files, including tests for paging and multi-valued numeric fields.
   
   At that exact Lucene commit, on Windows/JDK 25 with seed `18622C0DE`, both 
focused suites pass (10 tests); the full join module passes 104 tests with 3 
existing nightly tests skipped. Four regression tests each fail at runtime with 
the original production source and pass with the repair. `:lucene:join:tidy` 
and root `check -x test` pass. Runtime tests for the rest of the repository 
were not run; Error Prone was disabled by the default local configuration and 
eclint was not configured.
   
   In a separate Lucene checkout, the exact repair is available with:
   
   ```bash
   git fetch https://github.com/nick-boss-tech/lucene.git 
fix-block-join-missing-values
   git switch -c review-block-join-missing-values 
55c3174bd154b5cc987d9b24e1c77043e23fe71e
   ```
   
   This repair targets Lucene main. No Lucene PR has been opened, and a 10.6 
maintenance backport or Solr run with patched Lucene has not been verified. 
Would you like to take the Lucene repair upstream and keep the Solr tests here 
as integration coverage once the dependency is repaired?
   


-- 
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]

Reply via email to