In this topic
- How search services work
- How search services are created
- How to prepare your data for use by a search service
- How to edit search service properties
- How search services are used
- Search service security
- Search service performance
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.
Any GIS data that can be viewed in the Catalog window in ArcMap can be indexed for search.
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 size of the index on disc will vary depending on how many items you have and how much content is in each item description.
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 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:
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 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, providing adequate information about your data items, and registering the folder or geodatabase that contains the data with the search service.
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 who 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.
Registering folders and geodatabases for indexing
A new search service does not crawl your entire enterprise looking for GIS data. For performance reasons, it only indexes folders and geodatabases that you explicitly register with the search service.
You should place your file-based data (such as shapefiles), geodatabases, and database connection files in the folders you shared on the network and to which you granted the ArcGIS Server account access. Then you can register the shared folders by editing the search service properties. Although you can register geodatabases and database connection files directly, they still must be stored in a network folder to which your users and the ArcGIS Server account have access.
For instructions on registering folders in ArcGIS Server Manager, see Registering data folders and geodatabases with the search service.
How to edit search service properties
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:
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. To do this, click the Index/Search Options button, the Advanced tab, and then Add. To obtain the Service URL, click the Open button and browse to the service on your GIS Server connection. This will populate the Register Search Service with the URL of 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.
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.