ColumnReader
One shredded column, read at one snapshot, with every sidecar it may consult pinned.
Where an IndexReader answers "which documents carry this value", a column answers "what value do these documents carry" — and answers it without opening a document, which is the whole reason a column exists next to an inverted index. It also answers ranges, which an inverted index cannot: its terms are ordered for lookup rather than by value.
The same three-part coverage rule applies, from the same place: a segment is usable when it carries this column and its largest sequence is at or below the snapshot's. See SegmentSelection.
Close it. On Windows a mapped file cannot be deleted, so a reader left open blocks reclamation of everything it touched.
Properties
Covered, stale and total, at this snapshot.
Whether the store held documents outside a segment when this reader pinned.
The index this reads.
Whether the column alone is a superset of the answer.
The path shredded.
Live segments this reader cannot answer for, which the caller must scan.
Segments this reader can answer for, ascending. The domain of every accessor below.
Functions
Whether this segment's column can give values back exactly as the documents wrote them.
The physical types the usable segments chose, for diagnostics. One column may differ per segment.
The segment's live-document universe: ordinals whose newest version there is a document.
Evaluates predicate against one segment's column, opening no document.
Whether key appears in exactly one usable segment.
The ordinals of segmentNumber whose keys lie in [from, to], both bounds inclusive.
Ordinals carrying at least one value at path, whether or not the column stored it.