Uses Apache Lucene, OpenNLP and geonames and extracts locations from text and geocodes them.
Java Shell
Switch branches/tags
Nothing to show
Clone or download
chrismattmann Merge pull request #26 from boegel/README_fix_typo
fix typo in README: gazetter -> gazetteer
Latest commit 82b201d Aug 25, 2017

Lucene Geo-Gazetteer

A command line gazetteer built around the dataset, that uses the Apache Lucene library to create a searchable gazetteer.


The dataset contains over 10,000,000 geographical names corresponding to over 7,500,000 unique features. Beyond names of places in various languages, data stored include latitude, longitude, elevation, population, administrative subdivision and postal codes. All coordinates use the World Geodetic System 1984 (WGS84).

  1. What we need here is to download the latest version of file from curl -O
  2. Unzip the GeoNames file: unzip
  3. Take the allCountries.txt and use it to create a geoIndex: java -cp target/lucene-geo-gazetteer-<version>-jar-with-dependencies.jar -i geoIndex -b allCountries.txt
  4. Then search the index (e.g., for Pasadena and Texas): java -cp target/lucene-geo-gazetteer-<version>-jar-with-dependencies.jar -i geoIndex -s Pasadena Texas
  5. The service mode:
        #Launch Server
        $ lucene-geo-gazetteer -server
        # Query
        $ curl "localhost:8765/api/search?s=Pasadena&s=Texas&c=2"

Questions, comments?

Send them to Chris A. Mattmann.


  • Thamme Gowda N., USC
  • Madhav Sharan, USC
  • Yun Li, USC
  • Chris A. Mattmann, JPL
  • Maziyar Boustani, JPL


This project began as the CSCI 572 project of Yun Li on the NSF Polar CyberInfrastructure project at USC under the supervision of Chris Mattmann. You can find Yun's original code base here.

This work was sponsored by the National Science Foundation under funded projects PLR-1348450 and PLR-144562.


Apache License, version 2