Advanced Search Interfaces

FileMaker Pro’s built in Find Mode is great for those of us who know FileMaker well and understand the data structure of our databases well enough to know which fields to search in. But a more elegant, user friendly search mechanism is often needed.

A single, global field can be used to make searching faster and more user friendly.

There are a number of techniques that I recommend for making user friendly search interfaces. These techniques are detailed in the following articles:

  • Google-like Search: These articles explain a technique to provide a search-engine-like, single-field search interface that does not require the user to enter find mode or to know which fields to search.
    • Simple, Phrase Search: This article explains a method using a simple script that will find records that contain a field with the word or words entered in the search field.
    • Non-Contiguous Word Search: This article explains a more complex method using a script that searches for records containing one or more fields containing the word  or words entered in the search field.
  • Google-like Relationship Filtering: This article explains a technique for using dynamic relationships and portals to search values in a related table using a single global field. The interface is similar to the Google-like Search above, but filters related records which can be quite useful in portal views. Additionally, it requires no scripting.
  • Live, As-You-Type Search: This article explains a slick technique to create “as-you-type” search functionality similar to that found in iTunes and Mac OS X Spotlight where the list of results updates dynamically as the user types.
  • Search Optimization: This article to be posted soon will explain techniques for speeding up slow searches. There are circumstances where it is necessary to search data which can not be indexed using FileMaker’s built-in indexing leaving the user staring at a dialog with a progress bar that’s barely moving. This article will describe methods of creating and maintaining indexed fields to search any data quickly.