I would like to implement a search-backend which returns a location-aware search results of all Wikipedia / OSM place names, while recognising place names in all languages.
Thus, if you search for "Vienna" or "Wien" from Europe it returns the location of Vienna, Austria, but if you do the same search from within the US, next to one of the many cities called "Vienna", that smaller city might appear above the EU one.
So far, I believe it needs to do the following:
-
Be geo-aware, thus for each search result it should return it's distance from a query point.
-
Handle the dozens of alternative-names of places in a smart way. For example "isafjo" should match "Ísafjörður" in an autocomplete.
-
Cache/index in a way that search results can be provided near real-time, thus allowing an autocomplete experience on the client side.
Would that be a possible / recommended / straightforward application of ElasticSearch? The database would be almost totally read-only, with write operations maybe only once a month.