Hi, Könnte schon sein, dass es sowas schon gibt, aber ich habe noch nicht danach gesucht und kenne deswegen nichts...
> ich würde gerne eine vernünftige Suchfunktion implementieren. > Da ich aber SQL Server Express nutze, fallen damit die An- > nehmlichkeiten der großen Varianten raus. > > Meine aktueller Stand ist folgender: > > Bereits beim Eintrag eines Postings (z.B.) in die Datenbank, > zerlege ich den Text in seine Bestandteile und speichere die > Wörter einzeln in einer Suchwort-Tabelle, mit Referenz zum > Posting-Datensatz in der Posting-Tabelle. > Darauf suche ich dann via SOUNDEX() und DIFFERENCE() sowie > http://blog.thomasbandt.de/PermaLink,guid,c2a812bd-7c4c-4abc-b > 2ed-c8f1ac2300 > 91.aspx Klingt nicht schlecht soweit. Am besten nimmt man da eine SP, die gleich checkt, ob das Wort schon existiert. Und vergiss nicht Listen mit stopwords, sonst läuft Dir die DB voll mit der/die/das/und etc... Weiterhin speicherst Du für jedes Wort gleich den soundex in einer eigenen Spalte, so musst du den relativ komplexen soundex-Algo nicht auf jede Zeile in der DB erneut anwenden, sondern nur auf das Suchwort. Die Wortspalte und soundexspalte sollte natürlich indexiert werden und du solltest mit like 'xxx%' suchen, nicht mit like '%xxx%', sonst bringt der Index nichts und Du machst trotzdem nen tablescan. Wenn Du es noch toller machen willst, solltest Du statt soundex mal DoubleMetaphone versuchen. Dieser Algorithmus liefert nicht nur für Englisch vernünftige Ergebnisse. Ich hab mal den Algo von PHP nach VBScript geportet, aber von PHP nach C# ist eh leichter als von VBScript aus, falls Du nicht sowieso einen C#-Port ergoogeln kannst... Dann kann man sich schliesslich noch überlegen, ob man das klüger in der DB ablegen kann bzw. ob man die Abfragen klüger als mit einem EXISTS pro Wort lösen kann... Denn da werden ORs ganz schön komplex... Grüsse, Claudius _______________________________________________ Coffeehouse Mailingliste, Postings senden an: [email protected] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/coffeehouse
