Added
- CHANGELOG.md
Fixed
m*rketforces a broadbody\0m...scan and decodes rejected terms before matching.PostingsEnumstruct copies no longer access freed pooled buffers after the original is disposed; a sharedDisposalGuardreference detects disposal across all copies. Additional struct fields markedreadonlyto prevent accidental mutation.IndexInputnow has a finaliser that releases the native memory-mapped view pointer whenDisposeis not called, preventing handle leaks.LiveDocs.Deserialisecatches onlyEndOfStreamExceptioninstead of a barecatch, and strips orphaned soft-delete timestamps and out-of-range deleted doc IDs from the bitmap for data integrity.SegmentReaderfield-lessGetNorm(int)andGetFieldLength(int)overloads removed; all callers already use the field-specific versions. The removed overloads were ambiguous for multi-field indexes.CommitData,SegmentInfo, andVectorFieldInfonow validate post-deserialisation invariants; called consistently fromIndexBackup,IndexFileInspector,IndexRecovery, andSegmentInfo.ReadFromto catch corrupted index files early.
Changed
- Wildcard term matching no longer decodes every rejected
body\0m...candidate into a string. FSTReadernow has a low-allocation offset path for wildcard search, uses ASCII byte matching for
ASCII patterns/terms, and only falls back to string decoding when needed to preserve existing non-ASCII?semantics.