Working With the Windows Server 2003 Indexing Service
Of the services that are enabled by default, some of the services are more important than others. There are some services that Windows absolutely can’t run without, but there are other default services that can be safely disabled. In fact, Microsoft advises you to disable services that you aren’t actually using. I have seen plenty of lists that explain which services can be safely disabled in various environments, but rarely do such lists explain the benefits of keeping obscure system services running. Take for example the Indexing Service. The Indexing Service is enabled by default, but it always seems to be one of the first services that people want to disable. I personally think that part of the reason for this is because the service is poorly documented, and a lot of people don’t really understand what it is or how to use it.
What is the Indexing Service?
As I said earlier, the indexing service tends to be poorly documented. I’m not sure that there is a “Microsoft approved” definition for the indexing services. What I can tell you is that I tend to think of the Indexing Service as a poor man’s alternative to SharePoint. Like SharePoint, the Indexing Service can be used to make all of the content on your server searchable. Unlike SharePoint though, the Indexing Service lacks such features as a document library, version control, or a cool user interface.
So where would you use the Indexing Service? My own network is a classic example of a network that can benefit from the Indexing Service. If you are reading this article, then you have probably already figured out that I am a technical writer. The problem is that I have been writing for ten years and in that time I have published over 3,000 articles. As you might expect, it can be really tough to remember weather or not I have already written about a topic or not. This is where the Indexing Service comes into play. I can have Windows to compile a dynamic index of everything that I have ever written. That way, before I propose a topic to my editors, I could do a quick search to see if I have written about the topic in the past.
Configuring the Indexing Service
As I mentioned earlier, the Indexing Service is a default service, and its startup type is set to Automatic. Therefore, you don’t have to worry about installing anything. All you have to do if you want to use the Indexing Service is to configure it. The exception to that rule is that if you have installed Windows Server 2003 Service Pack 1, then the Indexing Service is disabled by default, so you will have to set the startup type to automatic and start the service.
The easiest way to access the Index Service’s configuration options is through the Computer Management console. If you are unfamiliar with the Computer Management console, it’s located on the server’s Administrative Tools menu. Once the Computer Management console opens, navigate through the console tree to Computer Management (Local) | Services and Applications | Indexing Service. When you arrive at this point, the first thing that you will probably notice is that there are two pre-existing catalogs by default. In case you are wondering, catalogs are Microsoft speak for indexes. One of the catalogs indexes the local system and the other catalog indexes the server’s default IIS Web site. I recommend deleting these default catalogs so that you can have a clean start. To get rid of them, simply right click on the catalog and select the Delete command from the resulting shortcut menu.
Creating an Index
Now that you have deleted the default catalogs, it’s time to create a catalog of your own. As you have probably already figured out, the Indexing Service gives you a choice of either indexing the server’s file system or a Web site that is being hosted by the server. For the purposes of this article, let’s focus on indexing the local file system.
To create a new catalog, right click on the Indexing Service container in the Computer Management console and select the New | Catalog commands from the resulting shortcut menus. When you do, you will see the Add a Catalog dialog box, shown in Figure A.
Figure A: The Add a Catalog prompts you for the catalog name and location
The Add a Catalog dialog box prompts you for the name of the new catalog and for the catalog’s location. The name can be anything that you want, so long as you don’t use any spaces. I recommend using a descriptive name. The location refers to the location that you are storing the catalog file in, not the location of the files that you are indexing.
Before you select a location, there are a couple of things that you need to know. First, you should never place a catalog file into a folder that’s being indexed. The reason is because Windows monitors indexed folders for changes. If you were to add a file to the folder, Windows would update the catalog. Windows would then see that the catalog has been updated, and reindex the folder again. It’s a pretty vicious cycle, so it’s best to just choose a non indexed location.
The other thing that you need to know is that if you are indexing Web content, you shouldn’t place the index in or beneath the wwwroot folder. Doing so slows down both the Indexing Service and IIS.
Now that you have created a catalog, you must tell the Indexing Service what content you want indexed. To do so, expand the indexing service container, and you will see a container for the catalog that you have created. For example, in Figure B, I have created a catalog named Articles. Beneath the catalog’s container is a container named Directories. Right click on the Directories container and select the New | Directory commands from the shortcut menu.
Figure B: The Indexing Service will create a container bearing the name of your catalog
At this point, you will see the Add Directory dialog box that’s shown in Figure C. This dialog box needs a little explaining though. The first thing that the dialog box asks you for is the path to the directory that you want to index. This would be something like C:\mystuff. Beneath that is a field for the path’s alias. You would use this field if the path that you entered points to a network drive.
Figure C: The Add Directory dialog box allows you to specify what content gets indexed
Imagine for example that you indexed the content on the network drive X:. Later, for some reason, you changed X: to map to a different location. Doing so would really mess up your index. However, if you enter a UNC path to the content that you are indexing, then the Indexing Service can still index the content even if the drive mapping changes.
Beneath the Path and Alias fields is a section where you can enter account information. The idea is that you must enter credentials for an account that has rights to read the content that’s being indexed, and to write to the location where you have decided to create the index.
The last thing on this dialog box is a set of radio buttons that ask you if you want to include the content in an index. At first, this seems like a ridiculous question since the dialog box’s whole purpose is to add a directory to the index. However, this option does have a legitimate purpose.
Imagine for a moment that you had a folder that you want to index, but beneath that folder was a sub folder that you didn’t want to index. You could add the primary folder to the index, and then specify the sub folder and instruct the Indexing Service not to index it.
You have now created your first index. If at any time, you need to rebuild the index, you can simply right click on the listing for the directory that is being indexed, and select the All Tasks | Rescan commands from the resulting shortcut menus.
Before I show you how to use the index, there is one last dialog box that I want to talk about. If you right click on the Indexing Service container and select the Properties command from the resulting shortcut menu, you will see the Indexing Service Properties sheet, shown in Figure D. If you look at the figure, you will see that the Generation check box contains two check boxes. The first check box asks you if you want to index files with unknown extensions. Unless you’ve got a good reason for doing so, you should never select this box. By default, the Indexing Service will index things like text files, Microsoft Office documents, and HTML files. If you select this check box, it will attempt to index everything in the directories that you have chosen to index. This includes things like EXE files and DLL files.
Figure D: I don’t recommend selecting either of these check boxes
The other check box is the Generate Abstract check box. If you select this check box, then the Indexing Service will attempt to create a summary of every document that it indexes. I say that it will attempt to do this because it doesn’t do a very good job.
Using the Index
Microsoft assumes that you will build your own interface to the index, but there is a way to use the index through the Computer Management console. If you select the Query the Catalog link, you will see a mini search engine that you can use to search the index, as shown in Figure E.
Figure E: The indexing service includes a mini search engine, but Microsoft assumes that you will build your own
In this article, I have explained how the Indexing Service can be used to index vast amounts of content on your network. I then went on to show you how to configure the Indexing Service.