Deutsche SQL Server Konferenz  minimieren 

Deutsche SQL Server Konferenz


SQL Server, Volltextsuche

Dez 26

Written by:
26.12.2007  RssIcon

Die Volltextsuche des SQL Servers ermöglicht es Texte oder Dokumente zu durchsuchen, die im SQL Server abgelegt sind. Die Architektur ist hier beschrieben, z. B: http://technet.microsoft.com/en-us/library/ms345119.aspx Bei der Nutzung der Volltextsuche sind eine paar "Kleinigkeiten" zu bedenken.

1. Die Volltextsuche ist keine Suche mit Zeichenvergleich

Die Volltextsuche basiert nicht auf einem Zeichenvergleich (wie LIKE), sondern auf Wörtern einer Sprache. Es gibt einen Wortbreaker, der die Zeichenfolge in Wörter aufteilt, diese Wörter werden indiziert und dieser Index wird bei Suche genutzt.

Der Volltextindex wird z. B. abgefragt mit

                WHERE CONTAINS( Spalte, ' "Atom*" ' )

Beim der Zeichenvergleichssuche werden die Zeichen einfach miteinander verglichen.

                WHERE Spalte LIKE '%Atom%'

Wenn man das Suchergebnis vergleicht, wird man feststellen, dass z. B. "atom", "atomar", "atomistisch", "Atomspaltung" mittels CONTAINS () gefunden werden. Jedoch z. B. "Fremdatom", "Störatom" werden nicht gefunden. Dies kann nur der Zeichenvergleich mit LIKE leisten. (Voraussetzung ist die entsprechende COLLATION, keine Unterscheidung zwischen Groß- und Kleinbuchstaben, Die Volltextsuche unterscheidet nicht zwischen Groß- und Kleinbuchstaben).

Man erhält per Volltextsuche kein Ergebnis , wenn ein führender "*" als Suchbegriff verwendet wird.

Beschrieben ist dies in BOL: http:/msdn2.microsoft.com/de-de/library/ms187787.aspx unter . (Es ist einfach nur das eine Verfahren beschrieben, '*' am Ende des Suchbegriffs.).

2. Bestimmte Wörter werden nicht gefunden

Bestimmte Wörter werden von der Volltextindizierung ausgeschlossen, da sie in der Regel nichts zur Suche beitragen. Solche Wörter werden als Füllwörter bezeichnet. Je nach Sprache gibt es unterschiedliche Dateien mit Füllwörtern, diese können an die Anforderungen angepasst werden, siehe http://msdn2.microsoft.com/de-de/library/ms142551.aspx.

Wenn man nun das Wort "IT" per Volltextsuche finden möchte und man erhält kein Ergebnis, dann sollte man an die o. g. Füllwortdateien denken und dort einmal eine Blick hinein werfen. "it" ist ein Füllwort im Englischen und im Neutralen.

3. Links

Der Artikel ist zwar schon älter, aber gilt grundsätzlich immer noch. Textsuche in Datenbankdaten mit Microsoft SQL Server 7.0 http://www.microsoft.com/germany/msdn/library/servers/sqlserver/TextsucheInDatenbankdatenMitMicrosoftSQLServer70.mspx?mfr=true

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

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

Tags:
Categories:
Location: Blogs Parent Separator OPI's SQL Blog
Unser Newsletter  minimieren 

Unseren aktuellen Newsletter im PDF-Format gibt es hier zum Download:

 Das Newsletterarchiv ist im Mitgliedsbereich zugänglich.

 


 


Suche  minimieren