Problem SQL Volltextsuche mit Punkten

08/10/2007 - 10:16 von Patrick | Report spam
Hallo

Ich habe eine Tabelle mit Künstlernamen. Wenn ich eine Volltextsuche nach
Künstlern mit einem Punkt mache, dann finde ich nichts. Also z.b. Wenn ich
nach "r.e.m" suche, kriege ich keine resultate: query:


select * from artists where contains(artistname,'r.e.m')

suche ich hingegegen

select * from artists where artistname='r.e.m'

kriege ich die resultate zurück. Habe einige Zeit gesucht, aber nichts
wirklich schlaues gefunden. Habe gesehen, dass einige eine neue Spalte
hinzufügen, und dort dann den artistname als "rDOTeDOTm" speichern. Bei der
suche werden dann die Punkt mit "DOT" ersetzt. Mir gefàllt diese Lösung nur
so halb, weil man dann viel mehr Daten indizieren muss. Frage, kennt jemand
eine andere, "saubere" Lösung?


Danke
Patrick
 

Lesen sie die antworten

#1 Olaf Pietsch
08/10/2007 - 21:10 | Warnen spam
Hallo Patrick,

"Patrick" schrieb im Newsbeitrag
news:%
Ich habe eine Tabelle mit Künstlernamen. Wenn ich eine Volltextsuche nach
Künstlern mit einem Punkt mache, dann finde ich nichts. Also z.b. Wenn ich
nach "r.e.m" suche, kriege ich keine resultate: query:



Die Volltextsuche arbeitet nicht nach dem Zeichenvergleich wie LIKE bzw.
'='!

Die zu durchsuchenden Zeichenfolgen werden in Wörter aufgeteilt, und jedes
Wort wird im Prinzip in den Index aufgenommen. "Noise words" = Sperrwörter
sind hiervon ausgenommen, z.B alle Worte mit einem Zeichen. In Deinem Fall
sind das die Wörter 'r', 'e.', 'm'. Der Punkt wird jeweils als Worttrenner
verstanden. Insofern dürfte bei nicht verànderten Sperrwortdateien nichts zu
finden sein, da nichts im Index vorhanden ist.

Also, wenn Du Wörter mit nur einem Buchstaben per Volltextsuche finden
möchtest, dann musst Du wohl die Sperrwortdateien anpassen.

Noise Words
http://msdn2.microsoft.com/en-us/li...42551.aspx

SQL Server 2005 Full-Text Search: Internals and Enhancements
http://msdn2.microsoft.com/en-us/li...45119.aspx

International Features in Microsoft SQL Server 2005
http://msdn2.microsoft.com/en-us/li...30962.aspx

Bitte achte auch darauf, welche Sprache Du beim Volltextindex verwendest.

Gruß Olaf
Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)
Regionalgruppe Köln/Bonn/Düsseldorf
(http://www.sqlpass.de/Regionalgrupp...fault.aspx)

Ähnliche fragen