What we ended up building instead of a global search is a very advance UI giving end users the ability to do deep searches of data in specific fields. We then kept a “global search” that is simple but not as powerful for finding data from the most common fields.
For instance instead of using the “global search” to search contacts by address->city/state we put this specific option in the filter builder and reserve the “global search” for the common fields like firstName, lastName, orgName. Users can build these custom filters save them and then toggle multiple custom filters on and off together. An idea I want to take this even further is the ability to add modifiers to saved filters like placeholders, so a user creates a saved filter for a specific string across multiple fields joined with different logic can then use a unique search string for each use of that custom filter instead of needing to duplicate the filter and change the value in every field.