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.
Search services are supported on Windows operating systems only.
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 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. If you look in the ArcGIS Server Administrator Directory, you'll also see two additional services that help with indexing. These are listed as IndexGenerator and IndexingLauncher.
The index is stored in a directory on the server. When you install ArcGIS for Server, a directory is created for you by default at C:\arcgisserver\directories\arcgissystem\arcgisindex. If you install ArcGIS for Server across multiple machines, you need to edit this directory so that it uses a shared network path to a location all the machines in your site can access.
A search service can have only one index directory on the server.
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 ArcGIS Server 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.
Databases and enterprise, workgroup, and desktop geodatabases can be included in the index by placing the database connection file (.sde) in a folder in the shared network location that you will index. Be sure both ArcGIS for Server and ArcGIS for Desktop have the required database client installed and that the user name and password are saved in the database connection file if you are using database authentication to connect.
Providing adequate information about your data items
ArcGIS for 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
When you install ArcGIS for Server, one search service (and its accompanying _indexer service) is already created for you in the Utilities folder. Its name is Search and it is stopped by default. You can start the service in ArcGIS Server Manager or ArcGIS for Desktop. For full instructions, see the following topics:
After you start your search service, you can fine-tune the service by adjusting the location of the search index, the frequency at which new items should be indexed, the frequency at which the index should be rebuilt from scratch, the date and time at which the index should be rebuilt from scratch, and the folders and database connections that should be included in the index. You can adjust these parameters in ArcGIS Server Manager or ArcGIS for Desktop. For instructions, see the following topics:
Additionally, you can have multiple search services participating in your ArcGIS server site. To create additional search services, you must use the ArcGIS Server Administrator Directory. For full instructions, see Creating a search service.
How search services are used
You use a search service to power the Search window of ArcGIS for Desktop.
First, you need to tell ArcGIS for Desktop which search service it should use. Do this by clicking the Index/Search Options button, then the Advanced tab, then Add. To obtain the Service URL, click the Open button and navigate to the service on your GIS Server connection. This will populate the Register Search Service the URL to your service, a name, and a description.
Before performing a search in the Search window, click the drop-down list in the Search toolbar and choose Enterprise. This uses the search service instead of performing a search just on your local machine or ArcGIS Online.
Requests to the search service can be spatially constrained. This means you can choose the Search window option to search Within Current Extent, and your search will return only results that fall within the current map extent. Search services also support the Enable Scale Based Spatial Filter option on the Search window.
Search service security
Search services are designed for use on an internal network only. If you have a server instance that exposes some services to the Internet, consider creating a separate instance of ArcGIS for Server specifically for internal use by your search services.
If you have data of varying levels of sensitivity, you can use ArcGIS for 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 for Server.
Registering folders for indexing
A new search service does not crawl your entire enterprise looking for GIS data. For performance reasons, it only indexes folders that you explicitly register with the search service.
The easiest way to register folders is when editing the service in ArcGIS Server Manager. You can register shared network folders and database connection files.
See Registering data folders with the search service for instructions.
Search service performance
Only one instance of a search service 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 processes in Task Manager working on the indexing. If you have allocated a maximum of two instances, you will see only two processes working on the index, even if you have three folders listed. One of the folders must wait to be indexed until a 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.