In previous installments of this series, I discussed the virtues of a clean Vista install, some useful User Account Control workarounds, top tools for troubleshooting, and the wisdom of shutting off Windows system services. Today’s fifth and final installment is a little different from its predecessors, in that it focuses not so much on fixing what might be broken, but rather on taking advantage of a feature in Windows Vista that has the potential to transform the way you work.
Through the years, I’ve tried just about every third-party desktop search utility for Windows. But I threw them all away after a few weeks of using Vista’s built-in Windows Search capability. In this post, I’ll explain how Windows Search works, how to monitor the SearchIndexer service to avoid potential performance problems, and how to speed up indexing operations on the fly.
First, an overview of how Windows Search works. By default, the Windows Search service runs on every Vista installation, maintaining an index of data files, music and pictures, e-mail messages and contact information (for supported programs), shortcuts to installed programs, and Internet favorites and your web-browsing history. The index is limited to the contents of specific folders and subfolders (you can customize this list), and the extent of indexing is controlled by file types. Virtually all files have their file properties (name, date, size, and so on) indexed; in addition, specific file types that have matching iFilters installed have their full contents included in the index.
You can use the index from just about anywhere:
- Click Start and begin typing in the Search box. A categorized subset of results appears in the Start menu, and you can click Search Everywhere to see a more complete list in a Windows Explorer window
- Press Windows logo key+F to open the Search dialog box and begin constructing an advanced search
- Enter some text in the Search box in the top right corner of any Windows Explorer window
- Enter some text in the Search box in the top right corner of any Vista common dialog box (not available in older applications)
- Open the Searches folder in your user profile (using the Favorite Links bar in Windows Explorer) and execute a saved search.
Search is especially useful in Control Panel, were you can find a direct link to any task using the search box. You can also search for e-mail messages and contacts directly from Windows Mail, Windows Live Mail, or Outlook 2007, all of which use the same index.
In Windows Explorer, the search results are returned almost instantaneously, after which you can sort, group, and filter them. You can also save a search so that you can perform the same search later without having to re-create its parameters.
In my experience, Windows Search works well on any system that runs Windows Vista. If you haven’t done so already, I strongly recommend that you download and install the Windows Search 4.0 update, which was released earlier this week. It’s available for all 32-bit and 64-bit versions of Windows Vista and Windows Server 2008 (you can also download updates for Windows XP, Windows Server 2003, and Windows Home Server).
I’ve been running a preview version of the Windows Search 4.0 update since its release in March and can attest to its reliability. The update improves indexing speed and also adds support for indexing encrypted files. My favorite feature, though, is its support for using indexes on networked computers. If you have a shared folder on a networked computer (XP, Vista, or a Windows Server product), you can run a search using the search box in Windows Explorer and the results will use the index on the remote computer to give you instant results.
Managing search performanceOccasionally, I read a complaint about the performance hit that Windows Search causes on Vista systems. Invariably, when I look further into these cases, I find the cause is elsewhere. (You can see for yourself by using the Disk section of Resource Monitor, as I describe in part 3 of this series.) The reality is that the indexing service is specifically designed to back off when you use your computer for other activities, switching to low-priority I/O and allowing foreground I/O tasks, such as opening the Start menu, to execute first. When Windows Vista first builds its index after installation, or if you copy a large number of files to the system at once, the indexing can take a long time, but you shouldn’t notice any impact on performance.
To monitor the current status of the index, open the Indexing Options dialog box (the most convenient way to do this is to click Start, click Control Panel, and type index in the search box in the upper right corner of the Control Panel window. The status message at the top of the page tells you what’s going on with the index in real time. On my current system, the index is up to date, so I see this message:
If the indexing service is currently working on some files, you’ll see this message instead:
That message indicates that the indexing service has backed off in response to your activity and is operating at a fraction of its normal speed. If the number of files to be indexed is big enough (if you copied a folder full of several hundred documents, for instance), you’ll see the indexing speed pick up dramatically if you keep your hands off the keyboard and mouse for a minute or so.
At any given time, the SearchIndexer service uses only a small percentage of available CPU resources. Using Task Manager or Process Explorer, you can see the status of the SearchIndexer process; if it’s actively engaged in indexing, you should see two additional child processes, SearchProtocolHost and SearchFilterHost. The indexing processes are used to create the index, but not to access it. Windows Explorer access the index directly, so even if the indexer is busy it shouldn’t affect the speed of a search operation. In normal operation, retrieving search results from even a very large index should take no more than a few seconds. If you see hang-ups in either Explorer or Outlook when performing a search, you’ll need to look at the operation of the program itself to find the problem. (Outlook 2007 add-ins, for example, can dramatically slow down the program, and because Outlook runs as a child process of Explorer.exe they can also affect Windows Explorer.)
If you’re impatient, you might want the search indexer to work at full speed after you copy or move a large number of files to an indexed location. There’s a group policy setting you can adjust to disable the “back off” logic, but it’s far easier in Vista to use the Windows Search Indexer gadget created by Microsoft developer Brandon Paddock. (The gadget works under the original version of Windows Search, but the Index Now feature requires Windows Search 4.0.)
As you can see, the small, lightweight gadget shows how many files are currently being indexed. If no indexing is in process, the message displays the text “Index up-to-date.”) The four buttons along the bottom of the gadget allow you to control how indexing works. The button at the right side opens the Indexing Options control Panel. The group of three buttons on the left allow you to pause, restart, or accelerate indexing. The third (Index Now) button disables the back-off logic and allows indexing to proceed as a foreground task, which comes in handy when you want to quickly rebuild the index or add a large number of new files.
Next week, I’m going to begin a new series of tips for Windows Vista. As part of that series, I’ll explain how to tweak Search settings to match the way you work, and how to use searches more effectively. Stay tuned!