Grouping and indexing several fields in the Contacts Datastore requires some duplication, extra-processing and potential problems synchronizing data from the original datastore to the Contacts indexed one. The idea is to come up with alternatives, or at the very least minimize the amount of data that has to be duplicated.
In any case, we should minimize the amount of fields that are indexed to the essential ones. That is name-related, phone, etc. Fields that are likely to have many null values such as organization should not be indexed.
The idea here would be to take the fields we want to index and concatenate them in a string like "Sergi Mansilla Telenor +311234567"
or similar. The key of that string would be the same as the key of the original contact, so that we know what the origin is.