Address multi-valued fields in search response.

There was an issue where a document could have multiple values for a field. The original code would lose all but one of these values due to a 1:1 mapping. This changes the result to use a `Map<String, List<String>>` where the multiple values are preserved via the `List<String>` 

Fixes #464