'Search all' nearly ready
I have a viable 'search all' system working now. It relies on a separate table that consists of a record id (the person's ID) and another field that is a concatenation of many of the other fields. It will need to get regenerated every time the materialized view is rebuilt.
The resulting search is very fast on my VM. The only feature missing for this is the ability to add constraints to the result. So, if you search for 'electrician calgary' it will work very well, but if you add an explicit regimental number constraint to the search, it will fail. This isn't hard to overcome, but it will require a fair bit of fiddling with the main SQL constructor as the structure is quite different from the way other queries are built (sub-query that produces a sequence of IDs gets passed to the parent query for eval.).