The search service makes available, on the local network, a searchable index of your organization's GIS content. Search services are most useful in large enterprise deployments where GIS data is spread throughout multiple databases and file shares. Instead of browsing through these data sources, GIS analysts can enter the URL to a search service and type in some search terms to find data. ArcMap provides an interface for users to search for data in this way and drag and drop resulting datasets into the map.
How search services work
Search services rely on an index of your GIS content that is built and maintained by the server. When a search request is made, the service searches the index for matches and returns the results.
It takes some time to initially build the index. After the index is initially built, new items are periodically added to the index (once every hour by default). To detect deleted items or edits to existing items, the index must be rebuilt from scratch. This happens once per day by default.
The index is maintained by a companion geoprocessing service that is created whenever you create a search service. The geoprocessing service has the same name as your search service, postfixed with _indexer.
The index is stored in a server index directory. If you install ArcGIS Server on just one machine, an index directory is created for you by default at C:\arcgisserver\arcgisindex. You can configure server index directories in other locations; in fact, if you install ArcGIS Server across multiple machines, you need to configure a server index directory in a shared location accessible to all the machines in your deployment.
A search service can have only one server index directory.
How to prepare your data for use by a search service
You can prepare your data for use with a search service by sharing the data on the network and providing adequate information about your data items.
Sharing the data on the network
Before you create a search service, you must share on the network all folders that you want to index and ensure that the SOC account has read access to the data. Additionally, any users that will potentially add the data through a search result must have permissions to access the data.
ArcSDE databases can be included in the index by placing the SDE connection file in a shared location on the network.
Providing adequate information about your data items
ArcGIS Desktop allows you to enter information about your data items, such as a summary, credits, and tags. It is this basic information on the data item's card that gets added to the index. The full metadata for the item is not added to the index.
How search services are created
You create a search service using the Add New Service wizard in ArcCatalog or the Catalog window in ArcMap.
In addition to the common parameters required by all service types (for example, number of instances and time-out values), you need to provide the following:
- The location of the search index. This is one of your server index directories.
- The frequency at which new items should be indexed.
- The frequency at which the index should be rebuilt from scratch.
- The folders and server connections that should be included in the index.
You cannot use the Publish GIS Resource wizard to create a search service.
Search service security
Search services are designed for use on an internal network only. If you have an instance of ArcGIS Server that exposes some services to the Internet, consider creating a separate instance of ArcGIS Server specifically for internal use by your search services.
If you have data of varying levels of sensitivity, you can use ArcGIS Server users and roles to configure more fine-grained access to your search services. For example, you can configure a search service for use by everybody and a separate high-security search service only visible to users within a high-security role that you have configured using ArcGIS Server.
Search service performance
Only one instance of a search service (represented by one ArcSOC.exe process) can index a folder at any one time. For example, if you have allocated a maximum of three instances and you have listed three folders to index, you should observe three ArcSOC.exe processes working on the indexing. If you have only allocated a maximum of two instances, you will only see two ArcSOC.exe processes working on the index, even if you have three folders listed. One of the folders must wait to be indexed until an ArcSOC.exe process is available.
You can improve performance by listing several low-level folders to index instead of one high-level folder. For example, you might configure your server to index C:\Data\Canada, C:\Data\USA, and C:\Data\Mexico as three separate folders instead of just indexing C:\Data as one folder. This allows you to distribute the indexing work among multiple simultaneous processes.
You are not required to list each subfolder you want to index, but listing a few lower-level folders may yield better performance than listing one high-level folder.