How does the geocoding service in graphhopper work?

Hi everyone, I’d like to replace Google Maps with a free stack I can host myself. The idea is to have a dedicated server to provide APIs (and tiles) to be able to perform geocoding (sometimes from autocomplete input fields), reverse geocoding and routing queries. Of course, I want the stack to be as simple as possible, so avoid multiple storage like having both postgis and elastic search for example, and the minimum of different projects.

GraphHopper is said to provide a Geocoding API though photon is mentioned. How does those project interact? Also, there is several “providers”: “default”, “nominatim”, but also “gisgraphy”. I’m a bit lost here, what do I need to install? Gisgraphy provides autocomplete, like photon does. So why is photon needed?

There is a difference between our open source projects:

https://www.graphhopper.com/open-source/

and our commercial offering the GraphHopper Directions API.

The latter is based on these open source projects but also uses other projects like photon or even other software like gisgraphy hosted elsewhere but provided through the same API and without the need to create yet another contract. Also Geocoding is a delicate topic when using open data and open source and so we provide alternatives.

So can you please tell me if the open source projects have geocoding capabilities, and how that works?

Our open source routing engine comes without geocoding, just routing. But as already mentioned there are several open source geocoders: nominatim, photon, pelias, gisgraphy, …