Exemple #1
0
    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()
Exemple #2
0
    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()
Exemple #3
0
    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 = self.segment.segment_id()
        else:
            self.segid = Segment._random_id()

        # self.files is a storage object from which to load the segment files.
        # This is different from the general storage (which will be used for
        # cahces) if the segment is in a compound file.
        if segment.is_compound():
            # Use an overlay here instead of just the compound storage because
            # in rare circumstances a segment file may be added after the
            # segment is written
            self.files = OverlayStorage(segment.open_compound_file(storage),
                                        self.storage)
        else:
            self.files = storage

        # Get microreaders from codec
        if codec is None:
            from whoosh.codec import default_codec
            codec = default_codec()
        self._codec = codec
        self._terms = codec.terms_reader(self.files, self.segment)
        self._lengths = codec.lengths_reader(self.files, self.segment)
        self._stored = codec.stored_fields_reader(self.files, self.segment)
        self._vectors = None  # Lazy open with self._open_vectors()
        self._graph = None  # Lazy open with self._open_dawg()

        self.set_caching_policy()