def test_update(): schema = fields.Schema(id=fields.ID(unique=True, stored=True), text=fields.ID(stored=True)) ix = RamIndex(schema) for word in u("alfa bravo charlie delta").split(): ix.update_document(id=word[0], text=word) for word in u("apple burrito cat dollhouse").split(): ix.update_document(id=word[0], text=word) assert ix.has_deletions() assert_equal(ix.deleted, set([0, 1, 2, 3])) assert_equal(ix.doc_count(), 4) assert ([(d["id"], d["text"]) for d in ix.all_stored_fields()] == [("a", "apple"), ("b", "burrito"), ("c", "cat"), ("d", "dollhouse")])
def test_update(): schema = fields.Schema(id=fields.ID(unique=True, stored=True), text=fields.ID(stored=True)) ix = RamIndex(schema) for word in u("alfa bravo charlie delta").split(): ix.update_document(id=word[0], text=word) for word in u("apple burrito cat dollhouse").split(): ix.update_document(id=word[0], text=word) assert ix.has_deletions() assert_equal(ix.deleted, set([0, 1, 2, 3])) assert_equal(ix.doc_count(), 4) assert_equal([(d["id"], d["text"]) for d in ix.all_stored_fields()], [("a", "apple"), ("b", "burrito"), ("c", "cat"), ("d", "dollhouse")])
def test_threaded(): from threading import Thread class TWriter(Thread): def __init__(self, ix): Thread.__init__(self) self.ix = ix def run(self): ix = self.ix for i in xrange(1000): ix.update_document(id=text_type(i), key=u("a")) class TReader(Thread): def __init__(self, ix): Thread.__init__(self) self.ix = ix self.go = True def run(self): s = self.ix.searcher() while self.go: r = s.search(query.Term("key", u("a"))) assert_equal(len(r), 1) schema = fields.Schema(id=fields.ID(stored=True), key=fields.ID(unique=True, stored=True)) ix = RamIndex(schema) tw = TWriter(ix) tr = TReader(ix) tw.start() tr.start() tw.join() tr.go = False tr.join() assert_equal(ix.doc_count(), 1) with ix.searcher() as s: assert_equal(len(list(s.documents(key="a"))), 1)
def test_threaded(): from threading import Thread class TWriter(Thread): def __init__(self, ix): Thread.__init__(self) self.ix = ix def run(self): ix = self.ix for i in xrange(1000): ix.update_document(id=text_type(i), key=u("a")) class TReader(Thread): def __init__(self, ix): Thread.__init__(self) self.ix = ix self.go = True def run(self): s = self.ix.searcher() while self.go: r = s.search(query.Term("key", u("a"))) assert_equal(len(r), 1) schema = fields.Schema(id=fields.ID(stored=True), key=fields.ID(unique=True, stored=True)) ix = RamIndex(schema) tw = TWriter(ix) tr = TReader(ix) tw.start() tr.start() tw.join() tr.go = False tr.join() assert_equal(ix.doc_count(), 1) with ix.searcher() as s: assert_equal(len(list(s.documents(key="a"))), 1)