Using Microsoft Indexing Service to search for files in Network

This article describes how to build a network document searching system based on Microsoft Indexing Service. This system can be recommended as a low cost document management solution for small companies and company departments.

Features provided by traditional document management systems such as document profiles, checkin-checkout, versioning, etc. brings benefits in cases of a huge amount of documents or an intensive collaborative document development. These systems are expensive and require a complicated administration. So they are not suitable for small companies. They also are not quite convenient to manage inner documents of company departments.

In most cases small companies or company departments use a network shared folder (lets call it the Document Folder) on a dedicated computer to store shared documents. However it would be useful to have an instrument to find documents in this folder.

Windows 2000/XP/2003 includes the powerful Microsoft Indexing Service. Moreover Microsoft Indexing Service gives the possibility to include network shared folders into its catalogs scope. If we add the Document Folder to an indexing catalog scope on each client computer it will allow all clients to search the Document Folder using Indexing Service.

This is the simplest network document searching system. A similar network searching functionality was recently implemented in Google Desktop Search. But this kind of systems has some disadvantages: Indexing Service of each client computer periodically scans the Document Folder and consumes resources of client and server computers. Duplicated Indexes of the same documents are stored on each client computer. So it is not a good solution if you have more than 2-3 client computers.

Fortunately Microsoft Indexing Service components give an opportunity to query Indexing Service on a remote computer. Moreover Microsoft Indexing Service respects Windows security for remote connections. These features allow to build a true client-server system to search for shared documents.

The only software we need on the server side is Microsoft Indexing Service. On the client side we should run an Indexing Service search utility that permits to specify a requested indexing catalog. I recommend using AimAtFile Fast File Search as a client application.

How to configure Indexing Service on a server computer? Indexing Service can be configured using the Computer Management console (Control Panel->Administrative Tools->Computer Management). I am not going to describe this procedure click-by-click. If you are not familiar with the Indexing Service administration press the F1 key in the Computer Management console to open its help system then choose the Indexing Service part.

We can use the built-in System catalog on a server computer for our purposes but I suggest creating a separate catalog. We will further refer it as the Document Catalog. Then we should add the Document Folder to the Documents Catalog scope. It is important to specify the Alias for Document Folder, it must be its UNC name.

For example: We store documents in the folder C:\DocStore. Its share name is DocStore and the name of the server is DOCSERVER. Create new catalog and name it Documents for example. Then add a new directory to this catalog with the path C:\DocStore and the alias \\DOCSERVER\DocStore. That's all.

Configuring an Indexing Service catalog

How to query the Document Catalog? To specify a catalog on a remote computer Indexing Service interface components use a special URL protocol - Query Protocol. The format of this protocol is: query://[host name]/[catalog name]. If we use AimAtFile as a client application we must specify an appropriate query URL in the Catalog field. The UNC name of the Document Folder can be entered in the Folder field but it is not required if we use the catalog dedicated only for our Document Folder.

For example (based on the previous one): Run AimAtFile on a client machine. Enter a content query in the Query field. Enter \\DOCSERVER\DocStore in the Folder field and enter query://DOCSERVER/Documents in the Catalog field. Click Search and you will receive a list of shared documents matching your content query.

Specifying a remote catalog

I would like to emphasize an important feature of this system - Indexing Service respects the Windows security. A user does not see in a result list files that he has no rights to read.

Indexing Service has performance tuning options. If we use a dedicated document server we can give more computer resources to the service. In this case I recommend setting the maximum performance of Indexing Service and it will index new and changed files immediately.

Now you see how simple is to build a document searching system for a small company or company department based on the Microsoft Indexing Service. It is a true client-server system where only the server side Indexing Service scans the Document Folder and stores an index. The system is extremely low cost, easy to use and administration and provides a very fast document search.

 

Boris Goussakov
Author is an expert in the design and development of Windows applications and systems.
The article is written especially for the www.aimingtech.com site.

Copyright © 2003-2006, All rights reserved
You have permission to publish this article electronically or in print, free of charge, as long as the bylines are included.
 

Copyright © 2001-2006 AimingTech Company, All rights reserved. Terms and Conditions.
All trademarks referred on this page are the properties of their respective owners.