Aus einer aktuellen Diskussion mit einem Kunden, der auf seiner Website eine Umkreissuche implementieren möchte, sind die folgenden Gedanken entstanden.
Aktueller Stand
Aus den vorhandenen Filialadressen werden die Städte ermittelt und diese werden in einer Auswahlbox zur Verfügung gestellt.
Das Suchergebnis zeigt dann die Filialen an, die in ausgewählten Stadt ansässig sind.
Der Suchende muss bei dieser Lösung Vorwissen mitbringen und Mängel in diesem Vorwissen durch mehrfache, dann eher frustrierende Suchabläufe wett machen.
An der Beispielstadt Aachen ist ds leicht auszumachen. Der Ort "Eschweiler" liegt ca. 15 km von Aachen entfernt. "Düren" weitere 5 km.
Der Suchende, der eine Filiale in der Nähe von Düren sucht, durchsucht also die Auswahlbox erst einmal nach "Düren". Steht dieses nicht zur Auswahl, sucht er nach "Eschweiler".
Immer noch kein Treffer ? Dann obliegt es seiner persönlichen Präferenz ob er als nächstes "Aachen" oder vielleicht direkt "Köln" sucht.
Am Ende ein sehr unbefriedigender Ablauf einer trivialen Suche.
Die "Denkrichtung" geht hier nicht vom Suchenden, sondern von den zur Verfügung stehenden Adressen aus.
Umkreissuche
Die Erkenntnis, dass man den Suchenden etwas Entgegenkommen zeigen könnte führt zu einer Umkreissuche.
Die umständlichste Variante stellt sich dabei wie folgt dar:
Der Suchende gibt entweder eine Postleitzahl oder einen Städtenamen ein UND gibt ebenfalls einen Umkreis - vielleicht in Stufen von 1,5,10,25,50 km - an.
Gibt man nun z.B. "Frankfurt" ein, wird man zusätzlich noch gefragt, ob es sich um "Frankfurt am Main" oder "Frankfurt an der Oder" handelt (Es gibt auch die Variante, dass "Frankfurt an der Oder" einfach ignoriert wird).
Erst dann bekommt man die Suchergebnisse zu sehen.
Auch hier wird, wenn auch weniger, Wissen des Suchenden vorausgesetzt. Der will schnell eine Filiale in seiner Nähe finden. Es wird selten sein Anliegen sein, den Umkreis Kilometer für Kilometer zu erhöhen, um festzustellen, wie groß das Filialnetz des Anbieters ist. Die erfahrenen Sucher werden gleich einen größeren Suchradius einstellen, um garantiert Ergebnisse zu erzielen (was bei einem dichten Filialnetz wiederum zu einer unübersichtlichen Ergebnisdarstellung führen wird).
Hier ging die "Denkrichtung" wieder eher vom Filialbestand denn vom Anliegen des Suchenden aus.
Vereinfacht
in diesem Sinne und mit der richtigen Denkrichtung - die aus der Sicht des Suchenden - wäre folgender Ablauf:
1. Die Möglichkeit, den Standort des Benutzers zu bestimmen, wurde bisher völlig ignoriert. Mit teilweise erstaunlicher Genauigkeit kann ich den aktuellen Ort eines Benutzers anhand seiner IP-Adresse (eine Adresse im Internet, die seinem Computer zugeordnet ist) bestimmen. Diese Ortsbestimmung ermöglicht die Ausgabe von Suchergebnissen, ohne dass der Benutzer irgend etwas eingeben muss. Er klickt auf "Filialsuche" und erhält sofort ein paar Suchtreffer, wie in Folge beschrieben. Erst wenn der ermittelte Ort nicht seiner Adresse oder generell dem Ausgangsort seiner Suche entspricht, muss er, wie im Folgenden beschrieben aktiv werden.
2. Der Nutzer kann entweder einen Städtenamen oder eine Postleitzahl eingeben.
Bei PLZ werden nur diejenigen, die wirklich existieren zur Verfügung gestellt. Das Gleiche gilt für Städtenamen. Da es sich um eine Auswahlbox handelt, ist auch gleich der Zwischenschritt für die Auswahl "Frankfurt am Main" versus "Frankfurt an der Oder" eliminiert, da man sich eben nur für einen Ort entscheiden kann. Während man z.B. "Fran" tippt, wird dir Auswahl schon eingeschränkt und es erscheinen nur noch Städtenamen, die mit "Fran" beginnen. Hat man "Frankfurt" getippt, hat man nur noch zwei Städte zur Auswahl und selektiert diejenige, in deren Umgebung man suchen möchte. Die Denkrichtung ist hier ausgehend von allen möglichen PLZ und allen möglichen Städtenamen auf den Suchenden ausgerichtet.
3. Die Angabe eines Suchradius ist recht überflüssig.
Ausgehend von der ausgewählten Stadt bzw. einer Postleitzahl kann der Suchalgorithmus selbständig immer weitere Kreise ziehen, bis eine bestimmte Anzahl Treffer gefunden wurde.
Am Beispiel der Stadt Düren sei das erläutert. Die nächste erreichbare Filiale ist in Aachen ansässig. Der Algorithmus beginnt die Suche in Düren. Da hier keine Filialen zu finden sind, wird der Suchradius, ohne zutun des Suchenden, auf 5 km ausgeweitet. Damit wäre Eschweiler innerhalb des Suchbereiches. Da auch hier keine Filialen vorhanden sind, wird der Suchradius so lange vergrößert, bis die Filialen in Aachen entdeckt werden. Das ist in diesem Falle aber Aufgabe des Suchprogrammes. Der Suchende muss hier nichts unternehmen.
So hat man die optimale Lösung erreicht, bei der im Idealfall (die Lokalisierung anhand der IP-Adresse stimmt mit der Stadt überein, in der der Suchende nach einer Filiale sucht) überhaupt keine Eingaben des Nutzers notwendig sind und ansonsten dem Benutzer nur eine einzige Auswahl abverlangt wird. Er hat dann die Wahl, entweder eine Postleitzahl oder einen Städtenamen zu benennen. Die Gültigkeit und Eindeutigkeit wird dabei durch die Auswahl existierender PLZ und Städtenamen eingeschränkt.
Eine nette Ergänzung wäre die Möglichkeit, auch ein Autokennzeichen der Region einzugeben, in der man nach Filialen suchen möchte.
Posted via email from Roland's posterous