def terms(self, filter, *readers): "Generate field cache terms from docs which match filter from all segments." for reader in readers: array, docset = self.array(reader), filter.getDocIdSet(reader.context, reader.liveDocs) docsetit = docset.iterator() if docset else search.DocIdSetIterator.empty() for id in iter(docsetit.nextDoc, search.DocIdSetIterator.NO_MORE_DOCS): yield array[id]
def apply(self, filter, op, readers): for reader in readers: with suppress(store.AlreadyClosedException): bitset = util.FixedBitSet.cast_(self.getDocIdSet(reader.context, None)) docset = filter.getDocIdSet(reader.context, None) if docset: getattr(bitset, op)(docset.iterator())