class_docstr: Instead of marching the sub-matchers along in parallel, this
  matcher pre-reads the scores for EVERY MATCHING DOCUMENT, trading memory
  for speed.
  
  This is faster than the implementation using a binary tree of
  :class:`~whoosh.matching.binary.UnionMatcher` objects (possibly just
  because of less overhead), but it doesn't allow getting information about
  the "current" document other than the score, because there isn't really a
  current document, just an array of scores.
code: def __init__(self, submatchers, doccount, boost=1.0, scored=True):
      CombinationMatcher.__init__(self, submatchers, boost=boost)
  
      self._doccount = doccount
  
      a = array("d")
      active = [subm for subm in self._submatchers if subm.is_active()]
      if active:
          offset = self._docnum = min(m.id() for m in active)
          for m in active:
              while m.is_active():
                  if scored:
                      score = m.score() * boost
                  else:
                      score = boost
  
                  docnum = m.id()
                  place = docnum - offset
                  if len(a) <= place:
                      a.extend(0 for _ in xrange(place - len(a) + 1))
                  a[place] += score
                  m.next()
          self._a = a
          self._offset = offset
      else:
          self._docnum = 0
          self._offset = 0
      self._a = a
  
imports: from __future__ import division
  from array import array
  from whoosh.compat import xrange
  from whoosh.matching import mcore
label_desc: Use image node_id 1 to create a new PreloadedUnionMatcher object from inherited base classes: CombinationMatcher with example: obj = PreloadedUnionMatcher(submatchers, doccount, boost, scored)