fastix®: Test der Suchfunktion

Beitrag lesen

Moin!

Ich persönlich ziehe Formulare wie deines zur persönlichen Kontaktaufnahme vor, wohingegen ich klassische Formulare mit mehreren Feldern für Automatismen favorisiere. Folglich fände ich bei dir die klassische Variante angebrachter.
MfG, at

Ja. Danke für die Aussage. Ich habe die Ausführung mal so vorgenommen, weil ich immer denke, daß bei den klassischen Formularen viele Angst bekommen und schließlich gibt es bei einer recht umfassenden Suchmöglichkeit viele Formularfelder- also auch viele Fehlermöglichkeiten... Deshalb gehe ich ein klein wenig von der Annahme aus, daß doch einige (und die sind vielleicht nicht die Zielgruppe dieses Forums) Formulare mit vielen Eingabemöglichkeiten nicht so recht mögen. Zudem (und das will ich nicht verschweigen) halte ich diese Art der Eingabe für eine schöne "Spielmöglichkeit"- vielleicht wird die eine oder andere sich gerade deshalb diese Seite merken und ggf. wiederkommen und eventuell sogar eine Buchungsanfrage über die Seite stellen. Es ist also auch Marketing...

Einfacher wäre das klassische Formular gewesen, mit Ort,Umkreis, Thema, Preis, von- bis. Aber gerade diese klassische Abfrageform führt dann wieder zu sehr scharfen Ergebnissen und dem Interessenten entgehen jene, die ihn womöglich auch interessieren (-> deshalb der spekulative Charakter). Beispiel hierfür:

Es wird ein Excel-VBA- Seminar in Gießen gesucht. (Das auch kurze Wörter wie VBA, PHP berücksichtigt werden muss ich noch proggen... generell sollen die außen vor bleiben.) Das Ergebnis einer scharfen Suche würde nur Excel-VBA- Seminare in Gießen finden, nicht aber in Kassel oder Frankfurt- die der Suchende womöglich aus terminlichen Gründen auch akzeptieren würde. Meine Funktion findet die, wichtet sie aber niedriger als ggf. ein in Gießen stattfindendes- In der Tabelle stehen die also weiter unten und können noch mit gewählt werden. Je mehr zutrifft um so höher ist ganz einfach die Position des Seminars. Die Tabelle habe ich übrigens momentan auf jene 20 Treffer mit den meisten Wichtungs- Punkten begrenzt (Es stehen noch gar keine 20 Seminare drin... aber was solls).

Ich beschreibe mal grob, wie das gegenwärtig funktioniert- vielleicht interessiert sich ja jemand für den Ansatz:

  • die Anfrage wird zuerst bereinigt und zwar um böse Zeichen ( ´`'",.:; usw.).
  • am Leerzeichen gesplittet
  • Alle Elemente mit weniger als 4 Zeichen gelöscht (ToDo siehe oben)
  • leere Elemente aus dem Array entfernt
  • Doppelungen aus allen Array entfernen
  • auf Monatsnamen untersucht -> anderes Array, Element löschen
  • Zahlen (Preise, Entfernungen, Seminartage, Postleitzahlen) -> je ein anderes Array, Element löschen
  • Das Array zur Vermeidung von Attacken auf die Datenbank auf die ersten 20 Elemente zusammenstreichen - bei dem, was ich als "normale" Eingabe vermute ist das mehr als ausreichend, man bedenke, was schon alles weg ist.
  • auf deutsche Ortsnamen (aus geodb) untersucht ->  anderes Array, Element löschen

sql Abfrage, die jedes verbliebene Element des Array in OR- Clausel für Titel oder Thema abfragt -> temporäre Tabelle mit eindeutigem Name, jeweils Wichtung 0
sql Abfrage die jetzt die nur den Seminartitel abfragt -> Wichtung erhöhen;
sql je ... Preise, Orte,PLZ,Entfernungen zu den Orten,PLZ (ToDo), Seminartage, Monate -> Wichtung erhöhen
Ausgabe der temporären Tabelle order by Wichtung DESC limit 20,
Löschen der temporären Tabelle.

Was jetzt die Trefferquote betrifft: es werden sich doch eine Reihe von Schulen beteiligen (bisher 4 Interessenten, die sozusagen von selbst gefragt haben) die ihr Seminarprogrammm da auch einpflegen werden. Wenn ich viele Treffer habe, dann fallen die unzutreffenderen ja auch unten raus -> Die Schärfe erhöht sich mit der Anzahl der Seminare, die in der Datenbank stehen.

Sollten sich spätere weitere Möglichkeiten der Abfrage als notwendig erweisen dann kann ich ja, dank der recht flexiblen Methode, noch Erkennungsmethoden und Abfragen hinzufügen. Natürlich kann ich auch ein "scharfes" Suchformular noch als weitere Möglichkeit einbauen....

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.