def __init__(self, storage, schema, segment, generation=None, codec=None): self.storage = storage self.schema = schema self.segment = segment self._gen = generation self.is_closed = False # Copy info from underlying segment self._has_deletions = segment.has_deletions() self._dc = segment.doc_count() self._dc_all = segment.doc_count_all() if hasattr(self.segment, "segment_id"): self.segid = str(self.segment.segment_id()) else: self.segid = Segment._random_id() # Get microreaders from codec if codec is None: from whoosh.codec.standard import StdCodec codec = StdCodec(self.storage) self._codec = codec self._terms = codec.terms_reader(self.segment) self._lengths = codec.lengths_reader(self.segment) self._stored = codec.stored_fields_reader(self.segment) self._vectors = None # Lazy open with self._open_vectors() self._dawg = None # Lazy open with self._open_dawg() self.set_caching_policy()