class_docstr: Stores token position and character start and end information for each
  posting.
  
  Supports: frequency, weight, positions, position_boosts (always reports
  position boost = 1.0), characters.
class_docstr_tok: ["Stores","token","position","and","character","start","and","end","information","for","each","posting",".","Supports",":","frequency",",","weight",",","positions",",","position_boosts","(","always","reports","position","boost","=","1.0",")",",","characters","."]
code: def combine(self, vs):
      s = {}
      for v in vs:
          for pos, sc, ec in self.decode_characters(v):
              if pos in s:
                  old_sc, old_ec = pos[s]
                  s[pos] = (min(sc, old_sc), max(ec, old_ec))
              else:
                  s[pos] = (sc, ec)
      poses = [(pos, s[pos][0], s[pos][1]) for pos in sorted(s.keys())]
      return self.encode(poses)
  
imports: from collections import defaultdict
  from whoosh.analysis import unstopped, entoken
  from whoosh.compat import iteritems, dumps, loads, b
  from whoosh.system import emptybytes
  from whoosh.system import _INT_SIZE, _FLOAT_SIZE
  from whoosh.system import pack_uint, unpack_uint, pack_float, unpack_float
label_desc: Use image node_id 5 for calling the Characters obj's underlying member method code with example usage: obj.combine(vs) and returns: self