def writer(self, procs=1, **kwargs): if procs > 1: from whoosh.multiproc import MpWriter return MpWriter(self, procs=procs, **kwargs) else: from whoosh.writing import SegmentWriter return SegmentWriter(self, **kwargs)
def test_finish_segment(): check_multi() from whoosh.multiproc import MpWriter schema = fields.Schema(a=fields.KEYWORD(stored=True)) with TempIndex(schema) as ix: w = MpWriter(ix, procs=2, batchsize=1, multisegment=False, limitmb=0.00001) for i in range(9): w.add_document(a=u(chr(65 + i) * 50)) w.commit()
def test_no_score_no_store(): check_multi() from whoosh.multiproc import MpWriter schema = fields.Schema(a=fields.ID, b=fields.KEYWORD) domain = {} keys = list(u("abcdefghijklmnopqrstuvwx")) random.shuffle(keys) words = u("alfa bravo charlie delta").split() for i, key in enumerate(keys): domain[key] = words[i % len(words)] with TempIndex(schema) as ix: with MpWriter(ix, procs=3) as w: for key, value in domain.items(): w.add_document(a=key, b=value) with ix.searcher() as s: for word in words: r = s.search(query.Term("b", word)) assert len(r) == 6