def test_arrayunion(): l1 = matching.ListMatcher([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]) l2 = matching.ListMatcher([100, 200, 300, 400, 500, 600]) aum = matching.ArrayUnionMatcher([l1, l2], 600, partsize=5) assert aum.id() == 10 aum.skip_to(45) assert aum.id() == 50 aum.skip_to(550) assert aum.id() == 600
def test_arrayunion2(): l1 = matching.ListMatcher([1, 2]) l2 = matching.ListMatcher([1, 2, 10, 20]) l3 = matching.ListMatcher([1, 5, 10, 50]) aum = matching.ArrayUnionMatcher([l1, l2, l3], 51, partsize=2) assert aum.id() == 1 assert not l1.is_active() aum.skip_to(50) assert aum.id() == 50
def _matcher(self, subs, searcher, context): if context: scored = context.weighting is not None else: scored = True ms = [sub.matcher(searcher, context) for sub in subs] doccount = searcher.doc_count_all() am = matching.ArrayUnionMatcher(ms, doccount, boost=self.boost, scored=scored) return am