fmSearchResults was written by Matt Navarre after hundreds of hours of pondering search in FileMaker. After researching, testing, and refining, it was released. Each new version brought features, such as name substitution, data entry correction (for date fields) tooltips, QuickFind control, and more.
It boils down to this: FileMaker does some things very very fast. If you can take advantage of these, and do them serially with changes each time, you can get amazing results.
What is FileMaker really great at?
1. Searching an indexed field in the local table
a. Especially with a relatively small found set
b. Finding no matching records (which can be a good thing... read on)
2. Running complex script code quickly
3. Running scripts on the server (local access to data)
What is FileMaker bad at?
1. Intelligent single field search (think Google, or Bing. Or even Lycos)
2. Search in a related table of any kind (and your database is normalized, so this is important)
3. Searching unindexed fields
4. Displaying a list of results from more than one table (we aren't talking about a portal here)
5. Displaying a list of records with a large found set
6. The Quickfind feature (It's affected by all of the limitations above)
7. Knowing what you are looking for before you do a search
This knowledge implied one key idea:
Take advantage of what FileMaker does well and repeat it for different types of searches and in different tables.
How SearchResults works:
1. User enters a search string (into a global field)
2. Determines what type of data the user entered (person's name, date, phone, currenty, range of data, text, etc)
3. Looks only in the tables and fields where that type of data exists
4. If no results are found, it loosens the criteria and searches again, and repeats until either records are found, or they aren't likely to exist.
5. Continues through all the desired tables in your database
6. Displays the combined results on one page
In a database with millions of records and dozens of tables, it can do all of that in a fraction of a second.