A record is a set of named fields where each field has a list of one or more values.
A value can be of any type, i.e. any Java Object. That is, a record is a
ArrayListMultimap. Note that a field can be multi-valued and that any two
records need not use common field names. This flexible data model corresponds exactly to the
characteristics of the Solr/Lucene data model (i.e. a record is a SolrInputDocument). A field
with zero values is removed from the record - it does not exist as such.