Geocoding Principles and Architecture

Sourcing attempts to automatically assign coordinates to all locations. This process uses several processes and databases including the following:

The image shows the process of geocoding using several layers, databases and processes.

PlaceFinder

  • Provides a list of locations when a user starts to type

  • Contains a database of all locations and their coordinates sourced from NavTeq and Geonames.org

  • Can be configured to show cities in specified countries

  • Displays locations in the users language

eLocation Server

  • Provides coordinates for the locations during the geocoding process

  • Contains a database of all locations and their coordinates sourced from NavTeq and Geonames.org

  • Requires a city, state/region and country as input

Solr

  • Solr is a keyword search engine. This means that you can give this engine a piece of text such as, "Father went to the grocery store" and it will be able to find this text as it searches for, "groceries." Geosearch relies on four Solr cores:

Location Exception Core

  • Stores additional or customized locations coordinates not covered by the eLocation server

  1. Job Load

    First, jobs are loaded into Sourcing from Recruiting via the API. During this loading process, we identify new job locations and try to assign them coordinates.

  2. Geocoding

    We look for a coordinate in the Location Exception Core. This core stores all locations that are not found in our third-party vendor's database. It also contains fixes and modifications to incorrect data by our vendors. We send the triplet country, state and city to the Oracle eLocation Geocoder to get the coordinates. If a coordinate is not found, an Administrator will need to manually assign coordinates to this location.

  3. Index Jobs

    After the job locations are geocoded, the Solr Job Core pulls all the jobs from the database into itself. It then indexes all the text from the title, description, qualifications, company, category, and of course, the coordinates.

  4. Search

  5. The jobs are now ready to be searched. When a job search is performed, Sourcing constructs a Solr query and sends it to Solr using their REST API.