Users generate and access a large number of articles, such as emails, web pages, word processing documents, spreadsheet documents, instant messenger messages, and presentation documents, using a client device, such as a personal computer, personal digital assistant, or mobile phone. Some articles are stored on one or more storage devices coupled to, accessible by, or otherwise associated with the client device(s). Users sometimes wish to search the storage device(s) for articles.
Conventional client-device search applications may significantly degrade the performance of the client device. For example, certain conventional client-device search applications typically use batch processing to index all articles, which can result in noticeably slower performance of the client device during the batch processing. Additionally, batch processing occurs only periodically. Therefore, when a user performs a search, the most recent articles are sometimes not included in the results. Moreover, if the batch processing is scheduled for a time when the client device is not operational and is thus not performed for an extended period of time, the index of articles associated with the client device can become outdated. Conventional client-device search applications can also need to rebuild the index at each batch processing or build new partial indexes and perform a merge operation that can use a lot of client-device resources. Moreover, conventional client-device search applications cannot efficiently index articles generated or accessed on multiple client devices. Thus if a user creates articles on a work computer and on a home computer, existing client-device search applications cannot efficiently create an index to include all the articles created by the user. For example, conventional client-device search applications can copy over the entire index on one computer to another computer. This method uses a great deal of the client-device resources and can affect the user's experience. Additionally, copying over an entire index from a first computer to a second may not preserve information in the index of the second computer that is not in the index of the first.