Configuring and implementing Indexing Service 3.0

\[Author's Note: Each month, this column discusses various aspects of the advanced administration of e-business sites. This month, I examine the setup, configuration, and implementation of Windows 2000 Indexing Service 3.0.\]

Win2K's Indexing Service is a base service that extracts content from files to produce an index catalog file. Historically, Microsoft Index Server on Windows NT 4.0 was limited to indexing content solely on Web servers. Indexing Service, in conjunction with the index catalog file, facilitates efficient searching and provides content indexing of the Web site and the file system. Indexing Service can extract text and property information from files on the local host and on remote, networked hosts. This distinction is important and one of the great new Indexing Service features.

The service uses a concept called filtering to extract the content. These filter components understand a file's format, which can include multilanguage features such as international languages and local dialects. Win2K supplies filters for Microsoft Office files, .html files, .asp files, MIME messages, and plaintext files. However, third-party software companies such as Adobe Systems provide filters for other file formats (e.g., .pdf files).

Indexing Service requires Win2K Professional, Win2K Server, Win2K Advanced Server, or Win2K Datacenter Server. For the examples I provide here, I assume that you have access to Win2K Server, Win2K AS, or Datacenter and have performed a default installation, which includes installation of IIS 5.0 and Indexing Service 3.0.

Configuring Indexing Service to Run Automatically
In a default installation, Win2K doesn't automatically run Indexing Service. To configure Indexing Service to run automatically, you first need to start it. Make sure that you're authenticated on a Win2K Pro, Win2K AS, or Datacenter machine, with sufficient permissions to configure a service (e.g., Administrator). Run the Computer Management tool by selecting Start, Programs, Administrative Tools, Computer Management. Navigate to the Services folder, which Figure 1 shows. You can quickly and easily start Indexing Service by right-clicking Indexing Service and selecting Start or by clicking Start on the toolbar. (You can also start Indexing Service by clicking Start on the General tab in the service's Properties dialog box.)

Most likely, you'll want Indexing Service to start automatically when your server starts. To configure the service, right-click Indexing Service, then select Properties. Click the General tab, and select Automatic from the Startup type drop-down list, as Figure 2, page 8, shows. Start Indexing Service. You might notice a flurry of disk activity as Indexing Service builds or updates the default index catalogs.

Before you leave the Indexing Service Properties dialog box, pay special attention to the Path to executable field. This field's value will be similar, if not identical, to the path C:\winnt\system32\cisvc.exe. You can monitor Indexing Service by its Image Name on the Processes tab of Windows Task Manager. Locate the Image Name by the cisvc.exe name and its associated daemon, cidaemon.exe, as Figure 3 shows. Monitoring Indexing Service is important for your implementation. As I discuss later, full builds of large Indexing Service catalogs can be burdensome on your Win2K machine. You don't want to perform full builds of massive index catalogs on megabytes or terabytes of data; such builds can bring your server to its knees in production during peak hours.

Putting Indexing Service into Action
Win2K includes a Microsoft Management Console (MMC) snap-in for querying the Indexing Service catalog and for managing Indexing Service's state and properties. With the Indexing Service snap-in, you can use the Indexing Service catalog to search for files or folders. You can also use the snap-in to start, stop, and pause Indexing Service and to administer many of its properties, such as those defining the construction of its catalogs.

From the Computer Management tool, navigate to \services and applications\indexing service. (If you haven't started Indexing Service, start it now.) Notice that by default, Indexing Service sets up and configures two index catalogs, as Figure 4 shows. The first catalog is a file-system catalog called System. The second catalog is a Web site catalog called Web.

When you drill into the Directories folder within each index catalog, you can view the folders that the Indexing Service catalog includes and excludes. Adding entries to include or exclude folders in your Indexing Service catalog is as easy as right-clicking the Directories folder and selecting New, Directory. The dialog box that Figure 5 shows prompts you to navigate to the folder you want to include in the index catalog. From within this dialog box, you can choose

  • the path or Uniform Naming Convention (UNC) path you want to include in the index catalog. If the directory you're adding is on a machine other than the local computer, you can type the UNC path to that computer. Use the format \\computername\sharename. The directory path that you type in the Path field is returned to the client, which executes a query on this directory.
  • to include or exclude the content of the folder in the index catalog.
  • the account that has permissions to perform an Indexing Service crawl on a file system located on a machine other than the local computer on which Indexing Service and the index catalog are running and built.

As Figure 5 shows, in my index catalog, I included a folder that exists on a different Microsoft Active Directory (AD) domain. I applied security credentials to the domain so that Indexing Service has sufficient permissions to crawl the remote file-system resource. After adding the directory to the index catalog, I performed a full rescan of the resource by right-clicking the directory and selecting All Tasks, Rescan (Full). However, by default, Indexing Service is configured to perform its work when the server is most available. To change the tuning parameters for Indexing Service, I first stopped the service by right-clicking Indexing Service in the Computer Management tool and selecting Stop. Then, I right-clicked Indexing Service and selected All Tasks, Tune Performance.

To force the new build of my Indexing Service catalog, I chose the Customize option in the dialog box that Figure 6 shows and clicked Customize. (Most likely, you won't want to force a new build in production scenarios because of the burden it places on your server.) I then changed the Indexing to Instant by dragging the slider all the way to the right. After clicking OK twice, I restarted Indexing Service. After a good hour, my server finally completed the build of the new Indexing Service catalog. I monitored the build closely through the Docs to Index and Total Docs columns of the Indexing Service snap-in and through the Indexing Service process (i.e., cisvc.exe and cidaemon.exe). At times, the cisvc.exe process consumed more than 80 percent of the CPU resource on the machine. When the Docs to Index and Total Docs columns reverted to zeros, the process was complete.

To test my custom Indexing Service catalog, I clicked the Query the Catalog link within the Web folder of the Indexing Service snap in. Figure 7 shows the HTML search form that appeared. I chose to search on the words platform sdk because that was the name of the folder on the remote server that I included in my Indexing Service catalog. After clicking Search, the first (most relevant) link that Indexing Service returned in the search was, in fact, a resource from the remote server.

Next Month
The Win2K Indexing Service is a powerful tool that you can use to quickly and easily provide a search utility for your intranet, extranet, or Internet applications. If you have history with earlier versions of Index Server, you'll notice that this search feature has dramatically improved since its predecessor in NT 4.0, which was little more than Office Fast Find on steroids.

Reader feedback generated the idea for this article. A few readers had expressed frustration at not being able to find information about Index Server. Searching the Web (or the Microsoft site) for Index Server will only produce frustration. You must search on Indexing Service. One great resource for Indexing Service is http://msdn.microsoft.com/library/psdk/indexsrv/indexingservicestartpage_6td1.htm.

Next month, I'll go into more advanced detail about Indexing Service. Also, I'll show you how to use custom search pages to create Web applications.