News aus der Technik – Die Suche

Von jetzt an gibt es jeden Mittwoch ein Update aus der Technik zum Fortschritt auf der Webseite. Ich werde auch versuchen, mich kurz zu fassen…

Wir haben es letztens bei Facebook erwähnt, aber wer von meinen Füßen auf dem Bild abgelenkt war und den begleitenden Text nicht gelesen hat (oder es schon vergessen hat) (beides höchstverständlich), wir arbeiten grade fieberhaft an der Suchfunktion auf der Webseite.

Als Programmierer hat man eigentlich nur ein Problem in der heutigen Welt: Google. Google ist toll, Google ist großartig, alle lieben es. Aber sobald man eine Suche auf einer Webseite integriert, erwarten alle Nutzer automatisch und ohne drüber nachzudenken die selben Funktionen wie auf Google. Mit dem Unterschied das Google 20 Jahre Erfahrung mit der Suche hat, tausende Programmierer und noch mehr Server.

Jedenfalls.

Die Suche auf treffpunktfamilie.de wird zwei unterschiedliche Funktionen haben. Zum einen kann man natürlich „Spielplätze“ in „Schleswig-Holstein“ suchen, oder gerne auch den „Regenwasser-Spielplatz Biberland“ direkt als Begriff eingeben und finden (oder „nwasse“, wenn dich das glücklich macht, wir verurteilen hier niemanden). Unsere Ausflugsziele werden auf treffpunktfamilie.de in Kategorien und Bundesländer eingeordnet, und wenn die Suchbegriffe mit Kategorien oder Ländern übereinstimmen, dann wird man direkt zur passenden Übersichtsseite weitergeleitet. Das Gleiche, wenn der Begriff ein eindeutiges Ergebnis liefert, der Nutzer kommt dann direkt auf die Detailseite des Ausflugsziels.

Punkt Zwei unserer Suche ist die Umkreissuche. Hier gibt man einen beliebigen Ort in Deutschland und einen Umkreis ein, und eventuell auch eine Kategorie. So weit, so bekannt. Spannend ist hier das Back-End. Und jetzt wirds nerdig: Ich spreche über Daten!

Grundlage für eine Umkreissuche ist eine Datenbank mit allen Orten in Deutschland und ihren Koordinaten. Die Koordinaten zeigen meistens auf die Mitte des Ortes, was bei Dörfern und Kleinstädten ausreichend ist, aber bei Städten wie Berlin kann das schnell falsche Ergebnisse liefern. Im 10 km Umkreis von Berlin ist man nämlich laut Koordinaten immer noch in Berlin. Alternativ könnte man den Nutzer um Erlaubnis bitten, auf seinen Standort zuzugreifen. Aber wenn du so bist wie ich, klickst du bei diesen Pop-Ups auch immer ganz schnell auf „nein“. Es wird also nie perfekt.

Weiter. Der Nutzer stellt also „Berlin“ ein und wählt einen Umkreis von 20 km. Woher wissen wir jetzt, dass der „Spargel- und Erlebnishof Klaistow“ in diesem Umkreis liegt? Bin ich froh, dass du diese Frage stellst. Der Trigonomieexperte weiß es natürlich, aber für alle Anderen ist das die Formel:

Entfernung in km = 6378.388 * acos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 – lon1))

Allen Spaß beiseite, müsste man das für einen bekannten Ausgangspunkt (Berlin) für alle möglichen Endpunkte (Ausflugsziele) berechnen und dann die Ergebnisse eingrenzen, dauert das zu lange. Wir reden hier von Sekunden, aber niemand hat im Internet die Geduld länger als 2 Sekunden auf ein Ergebnis zu warten. Ich musste also eine Methode finden, die in Frage kommenden Ausflugsziele schon vorher einzugrenzen. Ich teilte dafür Deutschland in winzig kleine Quadrate ein und berücksichtige nur Ergebnisse in Quadraten, die dem Standort des Nutzers angrenzen. Soweit bin ich sehr zufrieden mit der Geschwindigkeit.

Umkreissuche ist ein spannendes Thema und ist nur möglich mit einem sehr guten Grunddatensatz. Diesen Datensatz zu erstellen, dauert leider eine Weile  und das ist, woran ich in den letzten Tagen gearbeitet habe. Allerdings machen wir hier gute Fortschritte und ich bin zuversichtlich für die Zukunft.

1 Gedanke zu „News aus der Technik – Die Suche“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.