PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kontextsuche


raGgeD
11.12.2006, 00:38
Moin zusammen,

also erstmal hoffe ich das es das richtige Forum für solch eine frage ist.

Ich Programmiere gerade an einer Reparaturverwaltungssoftware und dort soll halt für die Kundenauswahl eine Kontextsuche implementiert werden, bisher hatte ich nur über ein Textfeld die eingabe überprüft und geschaut ob es einer Kundennummer entspricht oder dem Namen, dies soll erweitert werden, das mehrere Stichworte eingegeben werden können um so zB kunden die mit G anfangen und aus dem PLZ bereich 323 kommen rauszufiltern.
An und für sich wäre es ja denke ich nicht alll zu komplex das zu machen, wenn ne klare struktur der eingabe da wäre, aber wie man es so kennt, geben menschen immer das ein was ihnen gerade einfällt, in irgendeiner reihenfolge.
Es soll halt möglichst wenig aufwand für die Lagerverwalter entstehen, so das das Programm alles rausfiltern muss und aus den eingaben schlau werden soll.

Kennt ihr da irgendwelche Texte zu, oder habt ihr mit solch etwas schon erfahrungen gesammelt die ihr mir mitteilen könntet, find bei google und so effektiv mal keinen vernünftigen hinweis um das zu realisieren. und ir persöhnlich brüht der schädel wenn ich dadran denke...

Ich hoffe es ist verständlich gewesen was ich meine und hoffe ihr könnt mir da behilflich sein.

mfg raGgeD


DarkTom
11.12.2006, 01:35
Ich weiss nicht, ob ich ganz verstanden habe, wo dein Problem liegt.

Wenn ich mich nicht irre, sollte das ganze durch eine neue Suchmaske mit einzelnen Feldern für (Teil)Name, PLZ und was auch immer noch schon gelöst sein. Mehr als eine handvoll Kriterien werden da eh nicht zusammen kommen. Das lässt sich prima übersichtlich auf einem Bildschirm anordnen.

raGgeD
11.12.2006, 02:31
Ich weiss nicht, ob ich ganz verstanden habe, wo dein Problem liegt.

Wenn ich mich nicht irre, sollte das ganze durch eine neue Suchmaske mit einzelnen Feldern für (Teil)Name, PLZ und was auch immer noch schon gelöst sein. Mehr als eine handvoll Kriterien werden da eh nicht zusammen kommen. Das lässt sich prima übersichtlich auf einem Bildschirm anordnen.

naja problem:
a) kein platz für riesen suchmaske
b) "fensterchaos" sollte vermieden werden, also zusätzlicher dialog
c) wenn möglich suche nur über ein textfeld.

ansonsten würde das ja alles kein problem darstellen

Firefall
11.12.2006, 13:40
Nunja, warum musst du auf die Eingaben speziell eingehen? Wie warscheinlich ist es, dass im Text eine PLZ vorkommt, die keine ist? Wie kann deine Suchmaschine im Text unterscheiden, was PLZ ist und was nicht? Ich würde einfach nach allen Wörtern suchen lassen. Gegebenenfalls könnte RegExp zum Einsatz kommen, aber das ist nur das (ein mögliches) Mittel. Die Logik musst du selbst haben ;) Ausserdem könntest du auch einfach eine kleine Syntax für die Suche entwerfen. Gibt's ja bei Google auch, mit "-" kann man z.B. Begriffe ausschliessen - bei dir könnte das dann PLZs bezeichnen ;)

raGgeD
11.12.2006, 14:30
hmm wär ja ne überlegung wert, wobei der auftraggeber immer recht skeptisch zwangseingaben gegenüber steht ^^ hmm müsste ich mich wohl mal ransetzen ^^ danke schonmal, und regExp is da ne gute lösung? hab mich damit bisher noch nicht auseinander gesetzt.

Firefall
11.12.2006, 14:36
hmm wär ja ne überlegung wert, wobei der auftraggeber immer recht skeptisch zwangseingaben gegenüber steht ^^ hmm müsste ich mich wohl mal ransetzen ^^ danke schonmal, und regExp is da ne gute lösung? hab mich damit bisher noch nicht auseinander gesetzt.

RegExp kann ganz nützlich sein für Fälle wie "Der Name beginnt mit G" und so. Mit hilfe von regulären Ausdrücken kann man ein Wort in seinem Aussehen quasi definieren und dann danach suchen. Beispiel:
G[a-z]{1,5}zFindet alle Namen, die mit G beginnen, dann 1 bis 5 Kleinbuchstaben enthalten, und mit einem z enden ;) Kann ganz nützlich sein.

eViL_oNe
11.12.2006, 19:04
wie technisch darf die Suchanfrage sein? Man kann sich etwa einiges von Mumpitzsoftware wie Access dazu angucken, da gibts so was wie einen Query-Builder, in dem man beliebig viele Kriterien mit Vergleichsoperation, erwartetem Wert (je nach Kriteriumtyp unterschiedlich), logischen Verknüpfungen wie NOT, OR, AND und Klammerausdrücken machen darf. Noch technischer wird es, wenn man das ganze gleich als Syntaxbaum abliefert.

Für weniger technikaffine Benutzer würde ich 2 Metadatenstrukturen zu den unterschiedlichen Kriterien aufbauen. Die erste regelt die Verknüpfung zur Datenquelle (etwa welche Datenbank, welche SELECT FROM-Anweisung, welches Statement im WHERE-Teil der Abfrage, welcher Datentyp, mögliche Werte, Feldlänge, eingeschränkter Wertebereich). Die zweite behandelt die Visualisierung und sollte als Modell eines Expertensystems verstanden werden (etwa Hierarchie von Kriterien nach Abfrageszenario, wenn-dann Regeln, die bestimmte Kriterien verbieten / erlauben, wenn andere Kriterien entsprechend gesetzt sind). Beides würde ich dann konfigurierbar machen

Soviel zur Theorie, ich stehe vor einem ähnlichen Entwurf, wie es in der Praxis aussieht, vermag ich noch nicht zu beurteilen *g*

raGgeD
11.12.2006, 20:57
was verstehst du da jetzt unter konfigurierbar machen?

eViL_oNe
11.12.2006, 21:14
dass die Metadaten (oder Modellwissen, wie man es nennen will) nicht hart codiert sind, sondern in einer "leicht" änderbaren Struktur liegen -- ob das jetzt ne Datenbank, RDF, OWL, XML, CSV etc sein mag, ist eigentlich nebensächlich -- nur dass es eben nicht hart codiert ist und (prinzipiell) von Leuten ohne Programmierkenntnisse angepasst werden kann *g*