Indexing Esri Map and Feature Services

Overview

Voyager can index Esri ArcGIS Geodatabase tables and feature classes using Python. This makes it possible to create custom locations that allow indexing of multiple layers and table views at the same time. Each record in each layer or table view becomes an item in Voyager's index.

Dependencies

To index Esri Map and Feature Services items, ArcGIS and Python are required.

NOTE: If ArcGIS is installed, the correct version of Python is likely to already be installed. However, if Python is not installed, it will be required to install the correct version of Python that is supported by ArcGIS:

  • ArcGIS 10.0 requires Python 2.6

  • ArcGIS 10.1 and 10.2 require Python 2.7

Indexing Data

To create a custom location to index Esri ArcGIS services:

  1. Go to Manage Voyager > Discovery > Locations

  2. Click New Location

  3. SelectDatabases (Advanced)

     

  4. Enter a Name for the new location

  5. Select ArcGIS Online from the Connections drop-down list

  6. Click Add

  7. Click Save (it's a good idea to save a location before editing it)

  8. Once you have saved the new location, click the Edit icon next to its name in the Locations list to edit the configuration (sample configurations are below)

Configuration Examples

Example 1

This configuration indexes all the layers and table views in an Esri Feature Service. It includes all the fields and maps only one field.

{ "fields": {"include": ["*"]}, "tables": [ { "name": "*", "action": "INCLUDE" }, { "name": "*", "map": {"eqid": "id"} } ], "service_connection": { "portal_url": "http://sampleserver3.arcgisonline.com", "service_type": "Feature Service", "service_name": "EarthquakesFromLastSevenDays", "folder_name": "Earthquakes", "user_name": "", "password": "", "generate_token": "false", "token": "", "referer": "" } }

Example 2

This configuration shows how to index all the layers and table views in an Esri Map service and maps fields for the Incidents layer.

{ "fields": {"include": ["*"]}, "tables": [ { "name": "*", "action": "INCLUDE" }, { "name": "Incidents", "map": {"sf_311_serviceoid": "id"} } ], "service_connection": { "portal_url": "http://sampleserver3.arcgisonline.com", "service_type": "Map Service", "service_name": "311Incidents", "folder_name": "SanFrancisco", "user_name": "", "password": "", "generate_token": "false", "token": "", "referer": "" } }

Example 3

This configuration shows how to index all the layers and table views in an Esri Feature service which requires token authentication.

{ "fields": {"include": ["*"]}, "tables": [ { "name": "*", "action": "INCLUDE" }, { "name": "*", "map": {"CITY_NAME": "name"} } ], "service_connection": { "portal_url": "https://voyager.maps.arcgis.com", "service_type": "Feature Service", "service_name": "USCities", "folder_name": "", "user_name": "voyager", "password": "*****", "generate_token": "true", "token": "", "referer": "" } }

Example 4

This configuration shows how to index all the layers and table views in an Esri Feature service published to ArcGIS for Server. To add this configuration:

  1. Go to Manage Voyager > Discovery > Locations

  2. On the Locations page, select the Tables tab from Add Locations

  3. In the Tables tab, select ArcGIS Server from the Connections drop-down list

  4. Edit the configuration (sample configurations are below)