class PlainFieldWriter(base.FieldWriter, LineWriter):
    def __init__(self, storage, segment):
        self._dbfile = storage.create_file(segment.make_filename(".trm"))
        self._print_line(0, "TERMS")

    @property
    def is_closed(self):
        return self._dbfile.is_closed

    def start_field(self, fieldname, fieldobj):
        self._fieldobj = fieldobj
        self._print_line(1, "TERMFIELD", fn=fieldname)

    def start_term(self, btext):
        self._terminfo = TermInfo()
        self._print_line(2, "BTEXT", t=btext)

    def add(self, docnum, weight, vbytes, length):
        self._terminfo.add_posting(docnum, weight, length)
        self._print_line(3, "POST", dn=docnum, w=weight, v=vbytes)

    def finish_term(self):
        ti = self._terminfo
        self._print_line(3, "TERMINFO",
                         df=ti.doc_frequency(), weight=ti.weight(),
                         minlength=ti.min_length(), maxlength=ti.max_length(),
                         maxweight=ti.max_weight(),
                         minid=ti.min_id(), maxid=ti.max_id())

    def add_spell_word(self, fieldname, text):
        self._print_line(2, "SPELL", fn=fieldname, t=text)

    def close(self):
        self._dbfile.close()
Exemplo n.º 2
0
 def __init__(self, *args, **kwargs):
     TermInfo.__init__(self, *args, **kwargs)
     self._offset = None
     self._length = None
     self._inlined = None
 def __init__(self, *args, **kwargs):
     TermInfo.__init__(self, *args, **kwargs)
     self._offset = None
     self._length = None
     self._inlined = None
Exemplo n.º 4
0
 def __init__(self, *args, **kwargs):
     self.postings = None
     if "postings" in kwargs:
         self.postings = kwargs["postings"]
         del kwargs["postings"]
     TermInfo.__init__(self, *args, **kwargs)
Exemplo n.º 5
0
 def _find_terminfo(self):
     c = self._find_line(3, "TERMINFO")
     return TermInfo(**c)
Exemplo n.º 6
0
 def start_term(self, btext):
     self._terminfo = TermInfo()
     self._print_line(2, "BTEXT", t=btext)
 def start_term(self, btext):
     self._terminfo = TermInfo()
     self._print_line(2, "BTEXT", t=btext)