[Talk-at] OSM Nominatim Adress Suche in Wien

Johann Haag johannhaag at hxg.at
Sat Feb 17 11:58:30 UTC 2018


Guter Vorschlag, am effizientesten wäre solches in Kombination mit einem schaltbaren basenap.at Layer, und Austria Street View. Das System könnte auch für dritte wie herold offen sein.

Grüsse Johann
OSM geocodec

Von meinem iPhone gesendet

> Am 17.02.2018 um 12:34 schrieb Friedrich Volkmann <bsd at volki.at>:
> 
>> On 17.02.2018 10:17, Rudolf Mayer wrote:
>> Aber ja, es gibt imho keine Gute website, die dir das Google Maps Webinterface ersetzt. Was dort vor allem gut ist - die Suche ist nicht auf exakte Treffer limitiert - es werden Tippfehler in richtige Lösungen korrigiert, und auch wenn die Schreibweise minimal anders ist als die Suche (z.b. kein "-" drinnen irgendwo) funktioniert es auf osm.org gleich mal nicht. Autocomplete/Suggestion gibt es sowieso nicht. Aber das ist kein Problem der *Daten* ...
> 
> Ja, es gibt einen dringenden Bedarf nach einer alternativen OSM-Suchmaschine, die nicht auf schnelle Aktualisierung, sondern auf Richtigkeit und Vollständigkeit der Ausgaben ausgelegt ist. Es ist schon komisch, dass das noch keiner gemacht hat. Es hat nicht jeder die Ressourcen für eine Auswertung über die weltweiten OSM-Daten, aber zumindest eine Suchmaschine für Österreich sollte machbar sein.
> 
> Ich denke dabei an ein zweistufiges System, bei dem die Daten in einem nächtlichen (oder wöchentlichen) Cronjob erst mal in eine suchbare Form gebracht werden, damit zur Laufzeit über Indexes auf die aufbereiteten Daten zugegriffen werden kann. Wie bei einem Data warehouse. Der erste Schritt ist sozusagen die Denormalisierung, da werden Eigenschaften (Adresse, access usw.) von Flächen auf Teilflächen und Nodes vererbt (kopiert) und von Relationen auf die members vererbt (z.B. Adressen) oder umgekehrt (Lage) oder die members zusammengehängt (type=route, type=multilinestring).
> 
> Dann werden Strichpunktwürste (alt_name="Roßauer Lände; Rossauerlände; Roßauerlände",  amenity="restaurant;cafe") werden aufgelöst.
> 
> Nun werden Indexes angelegt, die schon darauf ausgelegt sind, bei der Suche auch abweichende Schreibweisen zu ermöglichen. In Oracle gibt es so sachen wie function-based indexes, eine soundex() Funktion für phonetische Suche und eine regexp_like() Funktion; keine Ahnung, wie das in anderen Datenbanken geht oder wie Google das macht ?!?
> Am besten werden die Werte in den Suchfeldern schon alle in lauter Klein- oder lauter Großbuchstaben umgewandelt, Whitespace und Bindestriche entfernt, ß in ss umgewandelt usw., damit bei den Suchanfragen keine komplizierten regular expressions mehr nötig sind. Gleiches gilt für Abkürzungen (Straße=Strasse=Str.). Manche Werte von short_name oder alt_name (s.o.) gleichen sich dabei an und können gestrichen werden.
> 
> Zur Laufzeit der Abfragen sind in den den regular expressions dann nur noch jene Fälle nötig, die im ersten Schritt noch nicht aufgelöst werden konnten.
> 
> Wenn eine Anfrage kein Ergebnis liefert, könnte man zum Abfangen einfacher Rechtschreibfehler eine nach der anderen Möglichkeit durchgehen, in Reihenfolge der Wahrscheinlichkeit unter Berücksichtigung der Performanz der Abfragen.
> z.B. "stephanplatz" (s fehlt)
> 1) Buchstabe zuviel?
> -> street in (tephanplatz, sephanplatz, ...)
> 2) Buchstaben vertauscht?
> -> street in (tsephanplatz, setphanplatz, ...)
> 3) Buchstabe anders?
> -> street like _tephanplatz or street like s_ephanplatz or ...
> 4) Buchstabe fehlt
> -> street like _stephanplatz or street like s_thephanplatz or ... => bingo!
> 5) nach den ersten n-1, n-2... Zeichen suchen:
> -> street like stephanplat%
>   street like stephanpla%
>   ...
> 
> Ich hab leider keine Ressourcen (Hardware, Bandbreite, für einen Alleingang auch die Zeit) um so was zu implementieren, aber vielleicht wer von euch?
> 
> -- 
> Friedrich K. Volkmann       http://www.volki.at/
> Adr.: Davidgasse 76-80/14/10, 1100 Wien, Austria
> 
> _______________________________________________
> Talk-at mailing list
> Talk-at at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-at



More information about the Talk-at mailing list