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.

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.
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.
|