AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Abfrage über mehrere Felder optimieren
Thema durchsuchen
Ansicht
Themen-Optionen

Abfrage über mehrere Felder optimieren

Ein Thema von SvB · begonnen am 18. Aug 2015 · letzter Beitrag vom 10. Sep 2015
Antwort Antwort
Seite 3 von 3     123   
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#21

AW: Abfrage über mehrere Felder optimieren

  Alt 19. Aug 2015, 21:41
So so. Du willst mir also Dämlichkeit unterstellen. Nun denn, wäre nicht das erste Mal.
Ja, wann akzeptierst Du das endlich!? Wie oft soll ich es noch versuchen?


Es ging mir darum, dass die beiden Bereiche nicht so ohne weiteres vergleichbar sind. Und zur Usability gehört halt (für mich) auch Geschwindigkeit, die der TE aber nicht liefert, was seine Kunden zu Recht bemängeln.
Was mich an dem Vergleich stört, auch bei der Kölner Phonetik ist die Unschärfe. Ich will am liebsten einen(!) Volltreffer sehen bei meiner Suche und nichts anderes. Der Begriff des Rankings hilft da schon etwas weiter, ist in Stefans Vorschlag aber erstmal nicht drin. Eine unscharfe Suche ohne Ranking wäre m.E. für die Tonne.

Es gab mal sone Pirelli Werbung (nein nicht die, die andere, im Fernsehn), die endet mit den Worten, Power is nothing without control.
Also ich persönlich bevorzuge differenzierte Suchmöglichkeiten vor der Rundumschlagmethode mit (zweifelhaftem) Ranking(algorithmus).
Gruß, Jo
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#22

AW: Abfrage über mehrere Felder optimieren

  Alt 19. Aug 2015, 22:17
@jobo
Naja, bei der Kölner Phonetik gibt es kein Ranking oder eine Gewichtung.
Du sagst natürlich zu Recht: Wenn ich Müller suche, will ich Müller finden, wenn ich Maier suche, will ich Maier finden und nicht auch noch/oder Mayer und Meier und Meyer oder gar noch Mair und Meir...

Prinzipiell ziehe ich die genaue Suche einer Suche ala: "Schaun wer mal, was es da sonst in der Richtung noch so geben könnte" vor. Das stört mich auch bei den Suchmaschinen, wenn ich nach "Delphi Source Kölner Phonetik" suche, will ich genau das finden, wo diese vier Wörter vorkommen, aber als Suchergebnis erhalte ich ca. 16.000 Treffer, aus denen ich mir dann das Passende raussuchen muss. Weniger könnte hier also durchaus mehr sein.

Aber eine Sucheanforderung, wie sie hier vom TE dargestellt wurde, kann man für eine genaue Suche nicht wirklich nutzen. Die Anforderung scheint doch eher dergestalt zu sein: "Suchen Sie mir alles was ich in einem Feld eingegeben habe überall in der Datenbank". Von einer genauen Suche ist das doch eher sehr weit entfernt.

Die Suche mit "%LIKE%" bedeutet für mich eine unscharfe Suche und bei der hier vorliegenden Aufgabenstellung dachte ich mir, mach einen Vorschlag, der halt etwas schneller unscharf ist. Natürlich weiß ich für den konkreten Fall nicht, ob's tatsächlich eine sinnvolle Alterantive ist, aber so als Denkanstoß eventuell brauchbar sein könnte.

Den von mir gemachten Suchvorschlag könnte man ja durchaus ohne Kölner Phonetik umsetzen, in dem man eine entsprechende Wortliste und die zugehörige Referenztabelle pflegt. Auch das würde die Geschwindigkeit der Suche schon deutlich beschleunigen.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#23

AW: Abfrage über mehrere Felder optimieren

  Alt 20. Aug 2015, 04:30
@Nahpets
Ich kann Deine Begeisterung für "Köln" verstehen, Ich hab damit auch schon DB-intern Abgleiche durchgeführt.
Aber ich habe den Eindruck, daß wir uns etwas von der Ausgangsfrage entfernen. Was zunächst einmal zu klären wäre, was wird als Antwort auf "Mair" erwartet. 42 wahrscheinlich nicht.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#24

AW: Abfrage über mehrere Felder optimieren

  Alt 20. Aug 2015, 09:45
@Nahpets
Ich kann Deine Begeisterung für "Köln" verstehen ..
was wird als Antwort auf "Mair" erwartet. 42 wahrscheinlich nicht.
42 könnte tatsächlich ein Ergebnis sein und zwar das Ranking oder eine Komponente davon. Die Levenshtein-Distanz als Ranking könnte man ja tatsächlich mit den unscharfen Ergebnissen aus Köln kombinieren. Natürlich angewendet auf Suchwort und Echtdaten in den Treffern, nicht auf die Codierung.
In meiner Lieblingsdatenbank gibt es die Levenshtein-Distanz bereits als Funktion, kann also direkt ins SQL eingebaut werden, sehr praktisch.
42 wäre natürlich ziemlich mies als Distanz.
Gruß, Jo
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#25

AW: Abfrage über mehrere Felder optimieren

  Alt 20. Aug 2015, 09:58
42 wäre natürlich ziemlich mies als Distanz.
Zumal Deep Thought 7.5 Millionen Jahre gebraucht hat, um es zu errechnen
Ralph
  Mit Zitat antworten Zitat
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#26

AW: Abfrage über mehrere Felder optimieren

  Alt 10. Sep 2015, 13:26
Ich wollte noch mal eine Rückmeldung geben, wie ich jetzt die Suchmaske angepasst habe. Es ist daraus jetzt ein Zwitter geworden.

Ich habe eine Combobox in die Maske hinzugefügt, die den Eintrag <Alle Felder> und jeweils die Felder einzeln enthält, die in der Suchmaske angezeigt werden.
Wenn der Benutzer <Alle Felder> ausgewählt hat, dann läuft die Suche wie bisher in allen Felden wie in meinem Beispiel mit LIKE ''%BÄCKEREI%''. (Also ohne Index und langsam)
Wenn der Benutzer ein spezielles Feld wie z.B. die Kundennummer auswählt, dann wird "SELECT FROM <Tabelle> WHERE Kundennummer = <Eingabe>" ausgeführt. Hierbei wird dann der Index verwendet und das geht rasend schnell.
Somit kann der Benutzer jetzt selbst wählen wie er sucht. Entweder wie bisher und kann eventuell Däumchen drehen bis was kommt oder er überlegt sich vorher genau was er suchen will und macht es dann auch so.

Dann habe ich noch das Grid durch das DevExpress Grid ausgetauscht und dort alle Filtermöglichkeiten freigeschaltet. Damit hat der Benutzer zusätzlich die Möglichkeit in den zuvor gesuchten Daten zu filtern.
Wenn sich jetzt noch einer beschwert, dann weiß ich im Moment auch nichts mehr.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz