Incremental find
Encyclopedia
- See also Incremental heuristic searchIncremental heuristic searchIncremental heuristic search algorithms combine both incremental and heuristic search to speed up searches of sequences of similar search problems, which is important in domains that are only incompletely known or change dynamically. Incremental search has been studied at least since the late 1960s...
, a class of search techniques in artificial intelligence and robotics
In computing
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...
, incremental search, incremental find or real-time suggestions is a user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
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
Modal window
In user interface design, a modal window is a child window that requires users to interact with it before they can return to operating the parent application, thus preventing the workflow on the application main window...
, such as a dialog box
Dialog box
In a graphical user interface of computers, a dialog box is a type of window used to enable reciprocal communication or "dialog" between a computer and its user. It may communicate information to the user, prompt the user for a response, or both...
, to enter searches. For some applications, a separate user interface mode
Mode (computer interface)
In user interface design, a mode is a distinct setting within a computer program or any physical machine interface, in which the same user input will produce perceived different results than it would in other settings....
may be used instead of a dialog box.
History
The first documented use of incremental search was in EMACSEmacs
Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...
on ITS
Incompatible Timesharing System
ITS, the Incompatible Timesharing System , was an early, revolutionary, and influential time-sharing operating system from MIT; it was developed principally by the Artificial Intelligence Laboratory at MIT, with some help from Project MAC.In addition to being technically influential ITS, the...
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
Canon Cat
The Canon Cat was a task-dedicated, desktop computer released by Canon Inc. in 1987 at a price of $1495 USD. On the surface it was not unlike the dedicated word processors popular in the late 1970s to early 1980s, but it was far more powerful and incorporated many unique ideas for data...
.. These early implementations offered single line feedback, not lists of suggestions.
The first mainstream appearance may have been in the Speller for WordPerfect
WordPerfect
WordPerfect is a word processing application, now owned by Corel.Bruce Bastian, a Brigham Young University graduate student, and BYU computer science professor Dr. Alan Ashton joined forces to design a word processing system for the city of Orem's Data General Corp. minicomputer system in 1979...
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
Novell GroupWise
GroupWise is a messaging and collaborative software platform from Novell that supports email, calendaring, personal information management, instant messaging, and document management. The platform consists of the client software, which is available for Windows, Mac OS X, and Linux, and the server...
.
Variants
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.Some common keyboard shortcut
Keyboard shortcut
In computing, a keyboard shortcut is a finite set of one or more keys that invoke a software or operating system operation when triggered by the user. A meaning of term "keyboard shortcut" can vary depending on software manufacturer...
s for incremental find are Ctrl/Cmd-F (like for traditional find), the GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
-style /
Slash (punctuation)
The slash is a sign used as a punctuation mark and for various other purposes. It is now often called a forward slash , and many other alternative names.-History:...
(also applicable to Vim
Vim (text editor)
Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface...
), or Emacs
Emacs
Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...
-style C-s.
Searches for files and media
This user interface method is also employed in varying contexts. For example, a user may encounter this feature while searching for files whose names match a string in an operating system's file explorer shell. The feature may also be used during searches for songs whose name or artist match a string in a media player.Searches for user interface elements
Another variation is to filter through long lists of options or menu items that may appear within the user interface itself. Examples of this variation can be found in the about:config interface section of Mozilla Firefox version 2.0.0.14 and later versions; and in the bundle editor section of TextMateTextMate
TextMate is a general-purpose GUI text editor for Mac OS X created by Allan Odgaard. Popular with programmers, some notable features include declarative customizations, tabs for open documents, recordable macros, folding sections and snippets, shell integration, and an extensible bundle...
1.5.7. This feature is also employed in application launchers such as Quicksilver
Quicksilver (software)
Quicksilver is a computer utility software program for Mac OS X, originally developed by Blacktree Software and distributed freely. It is essentially a graphical shell for the Mac OS X operating system, allowing users to use the keyboard to rapidly perform tasks such as launching...
1.0.
Typically a list of matches is generated as the search query is typed, and the list is progressively narrowed to match the filter text.
Web search
In September 2010, Google introduced Google Instant, an incremental search feature for Google Search.An implementation of incremental find in the area of web search, using Google AJAX APIs
Google AJAX APIs
Google AJAX APIs is a JavaScript library to integrate rich, multimedia, search, or feed-based Internet content into web applications/pages, organized by Google. They can be used by third parties to place rich Ajax content on web pages.-External links:*...
, is EasySearch and keyboardr.com.
Resource consumption
Incremental search on a non-local server, as in Web search, uses more network bandwidth and server processing than non-incremental search.Reception
Interface expert Jef RaskinJef Raskin
Jef Raskin was an American human-computer interface expert best known for starting the Macintosh project for Apple in the late 1970s.-Early years and education:...
has been a strong advocate of incremental search. In his 2000 book The Humane Interface
The Humane Interface
The Humane Interface: New Directions for Designing Interactive Systems is a book about user interface design written by Jef Raskin and published in 2000. It covers ergonomics, quantification, evaluation, and navigation.-Contents:...
, he wrote, "From the point of view of interface engineering, the advantages of incremental searching are so numerous and the advantages of delimited search
Delimited search
In computing, delimited search refers to a simple search user interface allowing search in three steps:* First a user types a query string,* second the system computes the query on the whole body of searchable content,...
es so few that I can see almost no occasions when a delimited search
Delimited search
In computing, delimited search refers to a simple search user interface allowing search in three steps:* First a user types a query string,* second the system computes the query on the whole body of searchable content,...
would be preferred." This was followed by a footnote reading, "A search is either incremental or excremental."
Incremental search has been criticised for exhibiting low affordance
Affordance
An affordance is a quality of an object, or an environment, which allows an individual to perform an action. For example, a knob affords twisting, and perhaps pushing, while a cord affords pulling...
, as the text fields which provide it offer no visual indication of that fact until after the user begins typing.
Specific applications
Non-modal incremental find is found in:Modern web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
s:
- Firefox
- OperaOpera (web browser)Opera is a web browser and Internet suite developed by Opera Software with over 200 million users worldwide. The browser handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, chatting on IRC, downloading files via BitTorrent,...
- Opera MiniOpera MiniOpera Mini is a web browser designed primarily for mobile phones, smartphones and personal digital assistants. Until version 4 it used the Java ME platform, requiring the mobile device to run Java ME applications. From version 5 it is also available as a native application for Android, iOS, Symbian...
- SafariSafari (web browser)Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Safari is also the...
- ChromeGoogle ChromeGoogle Chrome is a web browser developed by Google that uses the WebKit layout engine. It was first released as a beta version for Microsoft Windows on September 2, 2008, and the public stable release was on December 11, 2008. The name is derived from the graphical user interface frame, or...
- Internet Explorer 8Internet Explorer 8Windows Internet Explorer 8 is a web browser developed by Microsoft in the Internet Explorer browser series. The browser was released on March 19, 2009 for Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, and Windows 7. Both 32-bit and 64-bit builds are available...
- KonquerorKonquerorNot to be confused with the Conqueror web browser.Konqueror is a web browser and file manager that provides file-viewer functionality for file systems such as local files, files on a remote ftp server and files in a disk image. It is a core part of the KDE desktop environment...
- MidoriMidori (browser)is a web browser that aims to be lightweight and fast. It uses the WebKit rendering engine and the GTK+ 2 interface. Midori is part of the Xfce desktop environment's Goodies component...
Instant messaging clients:
- AdiumAdiumAdium is a free and open source instant messaging client for Mac OS X that supports multiple IM networks, including Windows Live Messenger, Yahoo! Messenger, Google Talk, AIM, ICQ, and XMPP. It supports many protocols through the libraries libezv , MGTwitterEngine , and libpurple...
- Windows Live MessengerWindows Live MessengerWindows Live Messenger is an instant messaging client created by Microsoft that is currently designed to work with Windows XP , Windows Vista, Windows 7, Windows Mobile, Windows CE, Xbox 360, Blackberry OS, iOS, Java ME, S60 on Symbian OS 9.x and Zune HD...
Modern operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s:
- Apple Incorporated's Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
- SpotlightSpotlight (software)Spotlight is a system-wide desktop search feature of Apple's Mac OS X operating system. Spotlight is a selection-based search system, which creates a virtual index of all items and files on the system. It is designed to allow the user to quickly locate a wide variety of items on the computer,...
(which searches the entire computer) - Help menu (10.5 and newer)
- System PreferencesSystem PreferencesSystem Preferences is an application included with the Mac OS X operating system that allows users to modify various system settings which are divided into separate preference panes...
- MicrosoftMicrosoftMicrosoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
's Windows VistaWindows VistaWindows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
and 7
- Microsoft
- Start menuStart menuThe Start Menu and Start Button are user interface elements used in the later versions of the Microsoft Windows operating systems and in some X window managers...
- Control PanelControl Panel (Windows)The Control Panel is a part of the Microsoft Windows graphical user interface which allows users to view and manipulate basic system settings and controls via applets, such as adding hardware, adding and removing software, controlling user accounts, and changing accessibility options...
- LinuxLinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
's KDE 4 desktop environment uses this systematically
- Linux
- KWriteKWriteKWrite is a lightweight text editor for the KDE Software Compilation.- Features :* Export to HTML, PDF, PostScript* Block selection mode * Code folding* Bookmarks* Syntax highlighting* Encoding selection...
- RekonqRekonqrekonq is a lightweight, QtWebKit-based web browser developed inside the free software project KDE. It is the default web browser in Kubuntu 10.10 and Chakra GNU/Linux.rekonq has been officially included into KDE Extragear the 2010-05-25...
- BlackBerry OSBlackBerry OSBlackBerry OS is a proprietary mobile operating system, developed by Research In Motion for its BlackBerry line of smartphone handheld devices...
(version 6.0.0 and newer)
- BlackBerry OS
Editors and development environments:
- EclipseEclipse (software)Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
- EmacsEmacsEmacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...
- IntelliJ IDEAIntelliJ IDEAIntelliJ IDEA is a commercial Java IDE by JetBrains. It is often simply referred to as "IDEA" or "IntelliJ."-History:The first version of IntelliJ IDEA was released in January 2001, and at the time was the only available Java IDE with advanced code navigation and code refactoring capabilities...
- NetBeans IDENetBeansNetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...
- VimVim (text editor)Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface...
- Visual Studio
Other applications:
- Apple Incorporated's iTunesITunesiTunes is a media player computer program, used for playing, downloading, and organizing digital music and video files on desktop computers. It can also manage contents on iPod, iPhone, iPod Touch and iPad....
- Google Toolbar 5Google ToolbarGoogle Toolbar is an Internet browser toolbar only available for Internet Explorer and Firefox .-Google Toolbar 1.0 December 11, 2000:New features:*Direct access to the Google search functionality from any web page*Web Site search...
- lessLess (Unix)less is a terminal pager program on Unix, Windows, and Unix-like systems used to view the contents of a text file one screen at a time. It is similar to more, but has the extended capability of allowing both forward and backward navigation through the file...
- Windows Media PlayerWindows Media PlayerWindows Media Player is a media player and media library application developed by Microsoft that is used for playing audio, video and viewing images on personal computers running the Microsoft Windows operating system, as well as on Pocket PC and Windows Mobile-based devices...
- Quicksilver (software)Quicksilver (software)Quicksilver is a computer utility software program for Mac OS X, originally developed by Blacktree Software and distributed freely. It is essentially a graphical shell for the Mac OS X operating system, allowing users to use the keyboard to rapidly perform tasks such as launching...
- BlenderBlender (software)Blender is a free and open-source 3D computer graphics software product used for creating animated films, visual effects, interactive 3D applications or video games. The current release version is 2.60, and was released on October 19, 2011...
's search menu (version 2.5 and newer)
External links
- Plain text viewer - simultaneously highlighting several search strings — StrapUtils
- White-paper about problems solved by Exorbyte's commercial incremental search solution - AJAX
- Keyboard Feature: Find As You Type — Mozilla.
- Incremental Search — Emacs.
- Using Incremental Find — Eclipse.
- Find As You Type Add-on — Internet Explorer
- Inline Search Add-on — Internet Explorer
- Tip #13 - Incremental search — Vim