In computing, incremental search, incremental find or real-time suggestions is a user interface interaction method to progressively search for and filter through text. As the user types text, one or more possible matches for the text are found and immediately presented to the user. This immediate feedback often allows the user to stop short of typing the entire word or phrase they were looking for. The user may also choose a closely related option from the presented list.
The method of incremental search is sometimes distinguished from user interfaces that employ a modal window, such as a dialog box, to enter searches. For some applications, a separate user interface mode may be used instead of a dialog box.
The first documented use of incremental search was in EMACS on ITS in the late 1970s. This was one of the many essential Emacs features Richard Stallman included in his reimplementation, GNU Emacs. Other noteworthy programs containing this functionality in the 1980s include bash and Canon Cat. These early implementations offered single line feedback, not lists of suggestions.
The first mainstream appearance may have been in the Speller for WordPerfect 5.2 for Windows, released 30 November 1992. As programmer Robert John Stevens, now CEO of WriteExpress, watched users at the WordPerfect Usability Lab in Orem, Utah use the 5.1 Speller that he and Steven M. Cannon ported to Windows, he noticed that when a word was not found in the dictionary and no alternative words were presented, users seemed lost, moved the mouse cursor around the page and even exited the Speller. Dumbstruck by the anomaly, he went home, sat on the couch and discussed his observations with his wife. Stevens coded the solution: as a user typed in the edit box, Speller would suggest words beginning with the letters entered.
Stevens' Spell Check program was also used in Novell GroupWise.
This feature, or variations thereof, has also been referred to as , search as you type, filter/find as you type (FAYT), incremental search, typeahead search, inline search, instant search, word wheeling, and other names as well.