Instant Search

Instant Search creates and maintains an index of feature data for a map service. The Instant Search method is used to search the index when you enable both the Instant Search option for a map service and the Global Search option for the layers and fields in that map service.

If Instant Search is not enabled, Global Search uses the Layer Search method to send a search request to the map service.

Instant Search works with ArcGIS map services only. This includes ArcGIS Server, Portal for ArcGIS, and ArcGIS Online map services.

You can turn Global Search on or off at any time for layers and fields in an indexed map service, without rescanning the service.

See:

Types of Map Service that can be Searched

Instant Search can search ArcGIS Server map services and feature services in hosted ArcGIS Server installations, as well as ArcGIS Online and Portal for ArcGIS.

For each hosted ArcGIS Server map service and feature layer in a site, you have the choice of enabling Instant Search for the service or layer, or allowing searches to use ArcGIS Search. The following table lists the differences between how ArcGIS Search and Instant Search work.

Differences between Instant Search and ArcGIS Search

Instant Search

ArcGIS Search

The search is near instant—typically under 100 ms—often much faster.
Search times do not increase appreciably as the number of features grows.

Search time is proportional to the number of features being searched, typically several seconds.

Searches all fields, regardless of the data type.

Searches text fields only, except when searching a feature layer with the Search Non-Text Fields setting enabled.

Compensates for word order when searching.
For example, Lee Burton matches Burton, Lee.

Compensates for word order only if the Services Enhancement Proxy is enabled for this map service.

Does exact and partial matches.
For example, dr can match Dr, Drew or Dresden.

Does exact and partial matches.

Secured Map Services

You can use Instant Search with unsecured services, as well as the following secured services:

See also...

Access Secured Map Services

About the Instant Search Index

The Instant Search index includes all of the data on every layer in a map service. Before Instant Search can be used, you must scan that service to add its data to the index.

Instant Search does not use proxy page settings in the Map Service connection. Services that require a proxy page for access cannot be indexed with Instant Search.

Essentials might not use all the data in the index as Essentials only searches those layers and fields that have Global Search turned on. You can enable or disable Global Search for layers and fields without having to update the index. Similarly, you can disable and re-enable Instant Search for a map service without having to rescan the service.

Instant Search is designed to create the index in the background so it does not affect the server that hosts the map service. For example, when the LA County demo site was indexed, it took 7.5 hours to index 5,867,896 features. The resulting index was 19GB in size. Based on this:

Features per hour and features per gigabyte depend on the size of a feature.

We recommend that you index the map service before you enable Instant Search. See Configure Instant Search for instructions.

Multiple map services can be processed at the same time. Only three map services on the same server can be indexed simultaneously. If this limit is reached, the remainder of the map services are queued until a slot is available for indexing. Queuing prevents excessive traffic to a single server.

Index Updating

Instant Search keeps the index up to date by periodically scanning the services that are included in the index. The index is automatically updated once a week by default. When a scheduled process is halted manually, you have the option of restarting it manually or waiting until the next scheduled update.

When the data of a map service changes, for example, a parcel is sub-divided, there is a delay before Instant Search can find the updated features. For this reason, Instant Search is not suited to map services whose data changes frequently or if the data is used to generate reports based on search results.

To configure how frequently the Instant Search index is updated, see the Configure Instant Search Indexing Schedule knowledge base article.

Progress Bar and Status Indicators

You can track the status of a scan with the progress bar and status indicators on the Instant Search tab for the map service.

Current status and progress during a scan

The progress bar on the Instant Search tab indicates the percentage of features scanned and already in the database. It reaches 100% completion when all of a map service's features have been indexed.

States Associated with the Indexing Process

Each state is identified on the Instant Search tab. The status indicators include:

Error Messages

If a map service is not available, an error message displays on the Instant Search tab of the map service.

There are two main types of errors that occur when a map service is being indexed:

There are different error formats for different error levels. A typical error message for credential issues is:

HTTP Error - Unauthorized or Forbidden. Please check your credentials. Encountered at 9:50:10 AM for URL 'http://MyServer.com/arcgis/rest/services/Charlotte/MapServer?f=pjson'. Will retry on 9:55:09 AM.

A typical error message for a fatal error is:

HTTP Error – The service is unavailable. Encountered at 10:41:22 AM for URL ' http://MyServer.com/arcgis/rest/services/Charlotte/MapServer/0?f=pjson'. Attempted maximum number of retries; index may be incomplete.

After a fatal error message, no more retries take place and the error remains until it is re-indexed.

Common Error Messages

Message

Cause/Fix

HTTP Error – Error performing query operation.

An ArcGIS Server-related problem. The service may be temporarily unavailable, or a common issue is that the result set from the query may exceed the specified maximum. For more information see: Esri Knowledge Base: Error Performing Query Operation

HTTP Error - Unauthorized or Forbidden. Please check your credentials.

The credentials supplied to Instant Search are not valid. Please change the user credentials in Essentials Manager and manually resume indexing on this service.

HTTP Error – The service is unavailable.

The ArcGIS server is offline or temporarily unavailable.

Configure Instant Search

Configuring Instant Search for each map service you want indexed includes:

  1. Turning on Global Search.

  2. Building the Instant Search index.

  3. Enabling Instant Search.

  4. If necessary, modifying the Instant Search settings for individual viewers.

Complete the following steps to configure Instant Search.

Step1: Turn on Global Search

See Enable Global Search for instructions to turn on Global Search for the layers and fields that you want to be searchable.

You can turn Global Search on or off at any time for layers and fields in an indexed map service, without having to rescan the service to update the index.

Step 2: Build the Instant Search Index

  1. In Manager, edit the map service that you want to configure.

  2. Click the Instant Search tab.

  3. Click the icon (Start or resume scanning this service) above the Features progress bar.

    If the service is secured, a prompt appears for you to confirm that you want the secure credentials passed to Core.

    The Scan icon changes to a Pause icon. Instant Search is now scanning the map service and adding its data to the search index.

    You can pause and resume scanning.

  4. Continue editing and scanning map services in this site until you are scanning each service that you want to include in the index. You can scan multiple map services simultaneously.

    Keep a record of the map services that you include in the Instant Search index. When the index is built, you will need to Enable Instant Search for each service.

  5. Continue editing sites and scanning map services until you are scanning each service that you want to include in the index.

    If a particular map service appears in more than one site, you only need to start scanning in one site—the sites will share the index.

    You must now wait for scanning to complete. Instant Search is designed to create the index slowly so it does not affect the servers that host the map services. Each map service has a progress bar on the map service's Instant Search tab.

    Progress bar for a map service that is being scanned

    Indexing can take a long time—sometimes overnight and there may be extended periods of time where you may not see any visible progress.

Step 3: Enable Instant Search

  1. In Manager, edit the map service that you want to configure.

  2. Click the Instant Search tab.

  3. If the Search Index progress bar indicates that scanning is 100% complete, select the Instant Search checkbox.

    Progress bar when scanning is complete

  4. Click Apply Settings.

  5. Continue enabling Instant Search for map services in this site until you have enabled it for every service that you want to use Instant Search.

  6. Click Save Site.

Step 4: Modify Instant Search Settings for Individual Viewers

To modify the Instant Search settings for individual viewers, see Instant Search in the HTML5 Viewer Administrator Help.

Disable Instant Search for a Map Service

If you want to return to using the default search method for a particular map service, you can disable Instant Search for that service.

If a particular map service appears in more than one site, you can use the default method for one instance of the service and Instant Search for another instance. They do not require the same search method.

To disable Instant Search for a map service:

  1. In Manager, edit the map service that you want to configure.

  2. Go to the Instant Search tab.

  3. Clear the Instant Search checkbox.

  4. Click Apply Settings and Save Site.

Global searches will now be performed using the default method, instead of Instant Search. You can re-enable Instant Search at any time by selecting the Instant Search checkbox.

Delete a Map Service from the Index

If you no longer want to use Instant Search for a map service, you can delete the map service from the index.

If you delete a map service from the index, and then you want to start using Instant Search again for that map service, you must re-scan the service to add it back to the index. By default, it may be more than a week before your features are available again in Instant Search.

Instant Search indexes are shared between sites. If you delete the index for a map service from one site, the index is removed from all other sites that use that service.

To delete a map service from the Instant Search index:

  1. In Manager, edit the map service that you want to configure.

  2. Go to the Instant Search tab.

  3. Click Delete beside Current Status.

    If there is no Delete button beside the progress bar, the map service is not in the index.

  4. Click Delete Index when prompted.

  5. Click Apply Settings and Save Site.

    The map service is deleted from the existing index and the Delete icon disappears. Instant Search will no longer scan this service when updating the index.

Optimize Instant Search

Instant Search is I/O bound. When serving search requests, Instant Search accesses both system memory (RAM) and the storage drive. You can improve the performance of Instant Search by increasing RAM and upgrading the storage drive.

Instant Search is not CPU bound. An upgrade to the server's CPU does not significantly improve the performance of Instant Search.

To improve Instant Search performance:

Increase the RAM that is Available to Instant Search

The more RAM that Instant Search has available to it, the faster it can serve search requests. By default, Geocortex Core dynamically allocates up to half the system RAM to Instant Search. This ensures adequate Instant Search performance and ensures that enough RAM is available for the other server processes. Allocating more than half of a system's RAM to Instant Search is not recommended.

To change the RAM allotment for Instant Search:

Step 1: Stop the Windows Service that Runs Geocortex Core

  1. Open the Windows Services panel.

    To open the Services panel in Windows Server 2012, open Server Manager and select Services in the Tools menu.

  2. Right-click the Geocortex Core service and select Stop.

Step 2: Modify the Memory Settings

  1. Run a text editor or XML editor as an administrator.

    You can use Notepad, a text editor included with Windows.

  2. Open the role.config file in the editor.

    For a typical Geocortex Core installation, you can find the role.config file at the following path:

    C:\Program Files\Latitude Geographics\Geocortex Core\NSRoot\Geocortex\Core\Roles\DocumentStore\3.x.x.xxxx\roles.config

    Where 3.x.x.xxxx is the version number of Core currently installed.

  3. Locate the MinMemory and MaxMemory keys.

    You should see the following lines in the roles.config file:

    <!-- The minimum amount of memory to allocate to the elasticsearch vm. Defaults to 256MB -->
        <StartupSetting Key="MinMemory" Value="auto" />
    <!-- The maximum amount of memory to allocate to the elasticsearch vm. Defaults to 1/2 system RAM -->
        <StartupSetting Key="MaxMemory" Value="auto" />
  4. Set the Value attributes to the minimum and maximum RAM that you want to allocate to Instant Search.

    By default, these attributes are set to Value="auto", where the minimum memory defaults to 256 MB and the maximum memory defaults to half of the system's RAM. If you want to explicitly set the minimum and maximum memory values, you can change the value attributes based on the amount of memory available on your server.

    For example, if your server has 8 GB of available memory when the Geocortex Core service is stopped, you could set MinMemory and MaxMemory each to 4 GB. This is represented as 4g in the role.config file:

    <StartupSetting Key="MinMemory" Value="4g" />
    <StartupSetting Key="MaxMemory" Value="4g" />

    By giving the MinMemory and MaxMemory the same value, Core no longer dynamically allocates memory to Instant Search. Instead, it reserves the minimum and maximum amount of memory specifically for Instant Search's use.

  5. Save the file.

Step 3: Restart the Windows Service that Runs Geocortex Core

  1. In the Windows Services panel, right-click the Geocortex Core service and select Start.

Step 4: Test that Instant Search is Working

  1. Type http://localhost:19201/ into your browser's address bar and press Enter.

    If Instant Search is running, the browser loads a JSON file with information about your Core instance. Depending on the browser you use, you may be required to save the JSON file before you can view the information.

    If the open or save message does not appear, verify that you made the configuration changes correctly. If you need to make corrections to the role.config file, repeat the steps starting at Step 1.

See also...

Instant Search in the HTML5 Administrator Help

Instant Search in a Viewer

Search Hints

Instant Search provides search hints as the user begins typing in the Global Search box.

For example, if a user types san in the Global Search box, search hints suggest feature details with "san" in their Instant Search-enabled layers and fields. The user can select a search hint to search for the suggested term.

Search hints shown in a viewer

Refine Search

Search hints include a Refine Search button . When the user selects the Refine Search button, the search hint is sent to the Global Search box as a new search term. The user can then continue to refine the search. Because search hints are usually more complex than the search term, search hints refine the search. By successively choosing Refine Search, the user can build a refined search term without having to input it manually.

Selecting a Refine Search button does not search for the term. To perform the search, the user must select the Search icon, or press the Enter key.

You can navigate between search hints by pressing the up arrow and down arrow keys.

Number Formats Recognized in Instant Search

Instant Search recognizes numbers in one of the following formats:

It only recognizes numbers formatted according to the rules of the locale configured in Essentials unless a locale uses white-space as a group separator. For example, a search for "123 456" always looks for features that have both 123 and 456. As a result, users need to use fixed-point notation in search terms, like "123456" or "123456.00".

See Format Number Fields for more information.

Currency and Accounting

In the case of currency and accounting formats, Instant Search only recognizes the application's configured currency. This is configured in the viewer’s configuration file by specifying an ISO-4217 currency code for the setting of the application. When not specified, it defaults to USD.