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:
Go to Manage > Discovery > Locations
Click New Location
Select Databases (Advanced)
Enter a Name for the new location
Select ArcGIS Online from the Connections drop-down list
Click Add
Click Save
NOTE: It's highly recommended to save a location before editing it
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:
Go to Manage > Discovery > Locations
On the Locations page, select the Tables tab from Add Locations
In the Tables tab, select ArcGIS Server from the Connections drop-down list
Edit the configuration (sample configurations are below)
{
"fields": {"include": ["*"]},
"tables": [
{
"name": "*",
"action": "INCLUDE"
},
{
"name": "*",
"map": {"NAME": "name"}
}
],
"service_connection": {
"server_url": "http://odn.voyagersearch.com",
"service_type": "Feature Service",
"service_name": "SampleWorldCities",
"folder_name": "public",
"user_name": "voyager",
"password": "****",
"generate_token": "false",
"token": ""
}
}