Section navigation

Added

  • CHANGELOG.md

Fixed

  • m*rket forces a broad body\0m... scan and decodes rejected terms before matching.
  • PostingsEnum struct copies no longer access freed pooled buffers after the original is disposed; a shared DisposalGuard reference detects disposal across all copies. Additional struct fields marked readonly to prevent accidental mutation.
  • IndexInput now has a finaliser that releases the native memory-mapped view pointer when Dispose is not called, preventing handle leaks.
  • LiveDocs.Deserialise catches only EndOfStreamException instead of a bare catch, and strips orphaned soft-delete timestamps and out-of-range deleted doc IDs from the bitmap for data integrity.
  • SegmentReader field-less GetNorm(int) and GetFieldLength(int) overloads removed; all callers already use the field-specific versions. The removed overloads were ambiguous for multi-field indexes.
  • CommitDataSegmentInfo, and VectorFieldInfo now validate post-deserialisation invariants; called consistently from IndexBackupIndexFileInspectorIndexRecovery, and SegmentInfo.ReadFrom to catch corrupted index files early.

Changed

  • Wildcard term matching no longer decodes every rejected body\0m... candidate into a string.
  • FSTReader now 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.