When you absolutely need to get the search data to return fast, the way I've gotten around that is to write the data out to a custom record with only free form text fields. By referencing this new custom record the search is very efficient, instead of hitting the transaction table.