Modern Information Retrieval Chapter 10: User Interfaces and Visualization |
![]() Contents |
interface design!string matching string matching, interfaces for
A common simple search need is that of the `find' operation,
typically run over the contents of a document that is currently being
viewed. Usually this function does not produce ranked output, nor
allow Boolean combinations of terms; the main operation is a simple
string match (without regular expression capabilities). Typically a
special purpose search window is created, containing a few simple
controls (e.g., case-sensitivity, search forward or backward). The
user types the query string into an entry form and string matches are
highlighted in the target document (see Figure ).
interface design!find function find function, interfaces for sticky queries
The next degree of complexity is the `find' function for searching
across small collections, such as the files on a personal computer's
hard disk, or the history list of a Web browser. This type of
function is also usually implemented as a simple string match. Again,
the controls and parameter settings are shown at the top of a
special purpose search window and the various options are set via
checkboxes and entry forms. The difference from the previous example
is that a results list is shown within the search interface itself
(see Figure ).
A common problem arises even in these very simple interfaces. An ambiguous state occurs in which the results for an earlier search are shown while the user is entering a new query or modifying the previous one. If the user types in new terms and but then does not activate the search, the interface takes on a potentially misleading state, since a user could erroneously assume that the old search hits shown correspond to the newly typed-in query. One solution for this problem is to clear the results list as soon as the user begins to type in a new query.
However, the user may want to refer to terms shown in the search results to help reformulate the query, or may decide not to issue the new query and instead continue with the previous results. These goals would be hampered by erasing the current result set as soon as the new query is typed. Another solution is to bring up a new window for every new query. However, this requires the user to execute an additional command and can lead to a proliferation of windows. A third, probably more workable solution, is to automatically `stack' the queries and results lists in a compact format and allow the user to move back and forth among the stacked up prior searches.
Simple interfaces like these can be augmented with functionality that can greatly aid initial query formulation. Spelling errors are a major cause of void result sets. A spell-checking function that suggests alternatives for query terms that have low frequency in the collection might be useful at this stage. Another option is to suggest thesaurus terms associated with the query terms at the time the query terms are entered. Usually these kinds of information are shown after the query is entered and documents have been retrieved, but an alternative is to provide this information as the user enters the query, in a form of query preview.