Mimirsbrunn is an independent geocoding and reverse-geocoding system written in Rust and built upon Elasticsearch. It can handle addresses, streets, points-of-interest (POI), administrative regions or public transport stops. In particular Navitia uses it as its global geocoding service. To use another datasource you have to write your own data importer. See for instance Fafnir, an external component to import POIs from another database.