What happened: someone incorrectly merged two contacts. A host of related objects had lookups populated to these two contacts. When the contacts merged, all those objects were updated to all point to the same single contact.
When we restored the deleted contact, the lookup values on the related objects did not update their former values. So a bunch of records that should be pointing to the recently restored contact, are still pointing to the 'merged' contact.
The problem: we don't know all the objects/records that had their contact lookup updated due to the merge.
The goal: Would like to identify all records that have a lookup field to the contact object, which have a value in that lookup of the 'merged' contact. This way we can review these records to see which should be updated to point to the restored contact instead.
SOSL seemed like a great way to solution this... but it appears there are significant limitations on querying values in lookup fields with SOSL. Is there a way to use SOSL to get these results? Is there an alternative solution?