[OSM-Devserver] Hilfe bei DB-Abfrage

Mitja Kleider mitja at kleider.name
Sa Jun 19 16:04:09 CEST 2010


Am Freitag, den 18.06.2010, 18:58 +0200 schrieb Peter Körner:
> Am 18.06.2010 18:14, schrieb Alexander Matheisen:
> > Hallo,
> >
> > ich brauche mal eure Hilfe:
> >
> > wie kann ich mit einer Abfrage sämtliche Objekte, deren Key mit
> > "wikipedia" anfängt, abfragen? Konkret sollen nämlich auf meiner OLM
> > eben sowohl Objekte erscheinen, die nur ein "wikipedia" tragen, als auch
> > Objekte, deren Tag z.B. "wikipedia:fr" ist.
> Du kannst hstore's each funktion benutzen aber Vorsicht, das geht nicht 
> ohne einen SeqScan und dauert lange auf dem ganzen planet:
> 
> select osm_id
>    from (
>        select osm_id, (each(tags)).key
>          from planet_point
>    ) as t
>   where key like 'wikipedia%'
>   group by osm_id;
> 
> es ist vermutliche einfacher alls 270+ Sprachen in denen es eine 
> Wikipedia gibt aufzulisten.

Am einfachsten wäre es, wikipedia:xy=z gar nicht zu unterstützen und
stattdessen nur wikipedia=xy:z. Das kann man leicht abfragen und es ist
genauso eindeutig.

Ich plane zum Beispiel entsprechende Tags beim Import umzuwandeln. Dafür
musste ich mich natürlich erst dazu entscheiden, die Daten im Vergleich
zur Original-API zu verändern.


Mitja