Comment by orbital-decay
2 years ago
Reliable search is just generally hard to implement for OSM, as it's highly chaotic. There's no single schema forced upon everyone. The same feature can be tagged in multiple ways, which are dependent on the consensus between mappers, country/jurisdiction, culture, particular mapper preference etc. This is especially relevant for addresses and businesses.
Um, the wiki is the single schema forced upon everyone: https://wiki.openstreetmap.org
Searching the schema works just fine, it's just hard to find typos and support natural language queries. Google set the standard for searching, we need to remember that we're literally comparing a volunteer project against the world leader in search who also has the money to employ a hundred distributed servers for every query versus the offline on-your-phone search of something like OsmAnd.
Borders is one of the few things that need to be different between countries (county, municipality, city group (Kreisstadt), city region (Städteregion), etc.: every country has a different hierarchy of subdivisions which OSM translates to numeric admin_level values). Some countries use the abbreviated street names like St. John St., others have the convention to expand Saint John Street. Different road types have different rules (is a tractor allowed on rural motorways? In Uganda maybe yes). These handful of things which you'll need to set per country are defined on the wiki, but 99% is the same. Particularly for searching where the name and POI tags like shop=x are the most relevant: after normalising the street name abbreviations, you're pretty much good.
Well, to be fair, the search isn't working well even when you enter the exact string. I just last week searched for a specific address, entered exactly the correct street name and the app just did not show the street name in my target city as a result. When clicking on the right location (taken from memory) the address was shown correctly, just the search did not work at all.
Also, in the same city, route planning (by bus) did not work. Which was a bit funny to me, when I lived there 10 years ago the city refused to make the bus data available to Google Maps, so back then it was Google Maps that also could not do route planning there.
I like Organic Maps, with its offline functionality it provides a layer of reliability that Google Maps is missing - and my phone has no Gapps anyway. But it's a pity neither search nor navigation is close to what Google can offer.
OSM Wiki is not the mechanically enforced schema, it's just a collection of knowledge about the actual tagging practice. Which is entirely chaotic, and the collective consensus is dynamic - usually the most used tag wins, but there are less used alternatives here and there. There are many good proposals that failed to get traction due to too few people backing them up or for some other reason.
The addresses in particular are heavily dependent on the country and region. And of course OSM is a subject for controversies and stupid edit wars as well, just like Wikipedia.
I'm not criticizing OSM, mind you - just explaining why it's hard to implement a good search in it; you have to constantly adapt your application to what people actually use in the map in different countries/language communities.
See https://wiki.openstreetmap.org/wiki/Any_tags_you_like for confirmation of the first paragraph.
> The same feature can be tagged in multiple ways
That is not huge problem. You can support just the most common schema. Except some rare cases it will not have real bad consequences (note: as OSM mapper I put quite significant effort into getting rid of some pointless duplicates, but I do not consider it a blocker for data use).
The problem is that making search working well with descriptive, incomplete, typoed, confused input is really, really, really hard. Google Maps search is the most amazing Google project for me.