Thesauruskonfiguration
In SQL Server kann bei Volltextabfragen ein Thesaurus verwendet werden, um nach Synonymen der vom Benutzer angegebenen Begriffe zu suchen. Ein SQL Server-Thesaurus definiert Synonyme für eine bestimmte Sprache. Systemadministratoren können zwei Formen von Synonymen definieren: Erweiterungssätze und Ersetzungssätze. Indem Sie einen Thesaurus entwickeln, der genau auf Ihre Volltextdaten abgestimmt ist, können Sie den Bereich der Volltextabfragen für diese Daten effektiv erweitern. Der Thesaurusvergleich erfolgt nur für CONTAINS- und CONTAINSTABLE-Abfragen, in denen die FORMSOF THESAURUS-Klausel angegeben ist, sowie für FREETEXT- und FREETEXTABLE-Abfragen.
Bevor bei Volltextsuchabfragen auf der Serverinstanz nach Synonymen in einer bestimmten Sprache gesucht werden kann, müssen Sie Thesauruszuordnungen (Synonyme) für diese Sprache definieren. Jeder Thesaurus muss manuell konfiguriert werden, um Folgendes zu definieren:
Einstellung für diakritische Zeichen
Bei einem Thesaurus werden bei allen Suchmustern diakritische Zeichen, beispielsweise Tilde (~), Akut-Akzentzeichen (´) oder Umlaut (¨), entweder berücksichtigt oder nicht berücksichtigt (d. h., es erfolgt eine Unterscheidung nach Akzent, oder es erfolgt keine Unterscheidung nach Akzent). Angenommen Sie haben in einer Volltextsuchabfrage angegeben, dass das Suchmuster "café" durch ein anderes Muster ersetzt werden soll. Wenn im Thesaurus nicht nach Akzent unterschieden wird, ersetzt die Volltextsuche die Muster "café" und "cafe". Wenn im Thesaurus nach Akzent unterschieden wird, ersetzt die Volltextsuche nur das Muster "café". Standardmäßig wird bei einem Thesaurus nicht nach Akzent unterschieden.
Hinweis Informationen zu diakritischen Zeichen finden Sie unter Diakritisches Zeichen in der MSN Encarta-Enzyklopädie (möglicherweise in englischer Sprache).
Erweiterungssatz
Ein Erweiterungssatz enthält eine Gruppe von Synonymen wie "writer", "author" und "journalist", die bei einer Volltextabfrage ausgetauscht werden. Abfragen, die eine Übereinstimmung für ein beliebiges Synonym in einem Erweiterungssatz enthalten, werden erweitert, um jedes andere Synonym im Erweiterungssatz einzubeziehen.
Weitere Informationen finden Sie unter "XML-Struktur eines Erweiterungssatzes" weiter unten in diesem Thema.
Ersetzungssatz
Ein Ersetzungssatz enthält ein durch einen Substitutionssatz zu ersetzendes Textmuster. Ein Beispiel dafür finden Sie im Abschnitt "XML-Struktur eines Ersetzungssatzes" weiter unten in diesem Thema.
Hinweis |
---|
Einschränkungen und Empfehlungen für Thesaurusdateien finden Sie unter Vorgehensweise: Bearbeiten einer Thesaurusdatei (Volltextsuche). |
SQL Server stellt einen Satz von XML-Thesaurusdateien bereit, und zwar eine für jede unterstützte Sprache. Diese Dateien sind im Wesentlichen leer. Sie enthalten nur die XML-Hauptstruktur, die alle SQL Server-Thesaurusdateien aufweisen, sowie einen auskommentierten Beispielthesaurus.
Dieses Thema enthält die folgenden hilfreichen Informationen zum Konfigurieren eines Thesaurus:
Ursprünglicher Inhalt der Thesaurusdateien
Speicherort der Thesaurusdateien
Wie Thesaurusdateien in Abfragen verwendet werden
Grundlegendes zur Struktur einer Thesaurusdatei
Arbeiten mit Thesaurusdateien
Ursprünglicher Inhalt der Thesaurusdateien
Alle im Lieferumfang von SQL Server 2008 enthaltenen Thesaurusdateien enthalten folgenden XML-Code:
<XML ID="Microsoft Search Thesaurus">
<!-- Commented out
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
<expansion>
<sub>Internet Explorer</sub>
<sub>IE</sub>
<sub>IE5</sub>
</expansion>
<replacement>
<pat>NT5</pat>
<pat>W2K</pat>
<sub>Windows 2000</sub>
</replacement>
<expansion>
<sub>run</sub>
<sub>jog</sub>
</expansion>
</thesaurus>
-->
</XML>
[Nach oben]
Speicherort der Thesaurusdateien
Der Standardspeicherort der Thesaurusdateien lautet folgendermaßen:
SQL_Server_install_path\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FTDATA\
Dieser Standardspeicherort enthält die folgenden Dateien:
Sprachspezifische Thesaurusdateien
Beim Setup werden am oben genannten Speicherort leere Thesaurusdateien installiert. Für jede unterstützte Sprache wird eine separate Datei bereitgestellt. Ein Systemadministrator kann diese Dateien anpassen.
Die Standarddateinamen der Thesaurusdateien haben das folgende Format:
'ts’ + <dreistelliger Sprachcode> + '.xml'
Der Name der Thesaurusdatei für eine bestimmte Sprache ist in der Registrierung im folgenden Wert angegeben: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instanzname>\MSSearch\<Sprachcode>.
Die globale Thesaurusdatei
Eine leere globale Thesaurusdatei mit dem Namen tsGlobal.xml.
Sie können den Speicherort und den Namen einer Thesaurusdatei ändern, indem Sie den zugehörigen Registrierungsschlüssel ändern. Der Speicherort der Thesaurusdatei für jede einzelne Sprache ist im folgenden Wert in der Registrierung angegeben:
HKLM/SOFTWARE/Microsoft/Microsoft SQL Server/<Instanzname>/MSSearch/Language/<Sprachcode>/TsaurusFile
Die globale Thesaurusdatei entspricht der neutralen Sprache mit LCID 0. Dieser Wert kann nur von Administratoren geändert werden.
[Nach oben]
Wie Thesaurusdateien in Abfragen verwendet werden
Für jede Thesaurusabfrage wird zuerst ein sprachspezifischer Thesaurus und dann der globale Thesaurus verwendet. Zuerst wird die sprachspezifische Datei gesucht und (falls erforderlich) zur Verarbeitung geladen. Die Abfrage wird um die durch die Erweiterungssatz- und Ersetzungssatz-Regeln in der Thesaurusdatei angegebenen Synonyme erweitert. Anschließend werden diese Schritte für den globalen Thesaurus wiederholt. Wenn für einen Begriff in der sprachspezifischen Thesaurusdatei bereits eine Übereinstimmung gefunden wurde, werden die globalen Synonyme des Begriffs ignoriert.
[Nach oben]
Grundlegendes zur Struktur einer Thesaurusdatei
Jede Thesaurusdatei definiert einen XML-Container, dessen ID Microsoft Search Thesaurus lautet, sowie einen Kommentar, <!-- … -->, der einen Beispielthesaurus enthält. Der Thesaurus wird in einem <thesaurus>-Element definiert, das Beispiele für die untergeordneten Elemente enthält, in denen die Einstellung für diakritische Zeichen, Erweiterungssätze und Ersetzungssätze definiert werden. Dies sieht folgendermaßen aus:
XML-Struktur der Einstellung für diakritische Zeichen
Die Einstellung eines Thesaurus für diakritische Zeichen wird in einem einzelnen <diacritics_sensitive>-Element angegeben. Dieses Element enthält einen ganzzahligen Wert, der die Unterscheidung nach Akzent wie folgt steuert:
Einstellung für diakritische Zeichen
Wert
XML
Keine Unterscheidung nach Akzent
0
<diacritics_sensitive>0</diacritics_sensitive>
Unterscheidung nach Akzent
1
<diacritics_sensitive>1</diacritics_sensitive>
Hinweis Diese Einstellung kann nur ein einziges Mal in der Datei vorgenommen werden und gilt für alle Suchmuster in der Datei. Diese Einstellung kann nicht für einzelne Muster angegeben werden.
XML-Struktur eines Erweiterungssatzes
Jeder Erweiterungssatz ist in ein <expansion>-Element eingeschlossen. Innerhalb dieses Elements geben Sie eine oder mehrere Substitutionen in einem <sub>-Element an. Im Erweiterungssatz können Sie eine Gruppe von Substitutionen angeben, die Synonyme zueinander sind.
Sie können z. B. den expansion-Abschnitt bearbeiten, um die Substitutionen "writer", "author" und "journalist" als Synonyme zu behandeln. Volltextsuchabfragen, die Übereinstimmungen in einer Substitution enthalten, werden erweitert, um alle weiteren im Erweiterungssatz angegebenen Substitutionen einzubeziehen. Wenn Sie daher im vorherigen Beispiel eine FORMS OF THESAURUS- oder eine FREETEXT-Abfrage nach dem Wort "author" ausführen, gibt die Volltextsuche auch Suchergebnisse zurück, die die Wörter "writer" und "journalist" enthalten.
Der Erweiterungssatzabschnitt für das oben genannte Beispiel würde wie folgt aussehen:
<expansion> <sub>writer</sub> <sub>author</sub> <sub>journalist</sub> </expansion>
XML-Struktur eines Ersetzungssatzes
Jeder Ersetzungssatz ist in ein <replacement>-Element eingeschlossen. Innerhalb dieses Elements können Sie ein oder mehrere Muster in einem <pat>-Element und keine oder beliebig viele Substitutionen in <sub>-Elementen (einem pro Synonym) angeben. Sie können ein durch einen Substitutionssatz zu ersetzendes Muster angeben. Muster und Substitutionen können ein Wort oder eine Wortfolge enthalten. Wenn für ein Muster keine Substitution angegeben wird, ist die Wirkung dieselbe, als würde das Muster aus der Benutzerabfrage entfernt.
Angenommen, Sie möchten, dass Abfragen nach "W2K" (das Muster) durch "Windows 2000" oder "XP" (die Substitutionen) ersetzt werden. Wenn Sie eine Volltextabfrage nach "W2K" ausführen, gibt die Volltextsuche nur Suchergebnisse zurück, die "Windows 2000" oder "XP" enthalten. Sie gibt keine Ergebnisse zurück, die "W2K" enthalten. Dies liegt daran, dass das Muster "W2K" durch die Muster "Windows 2000" und "XP" "ersetzt" wurde.
Der Ersetzungssatzabschnitt für das oben genannte Beispiel würde wie folgt aussehen:
<replacement> <pat>W2K</pat> <sub>Windows 2000</sub> <sub>XP</sub> </replacement>
Wenn zwei Ersetzungssätze mit ähnlichen Mustern für die Übereinstimmung verwendet werden, hat der längere der beiden Vorrang. Wenn Sie beispielsweise eine FORMS OF THESAURUS-Abfrage nach "Internet Explorer online community" ausführen und die folgenden Ersetzungssätze haben, hat der "Internet Explorer"-Ersetzungssatz Vorrang vor dem "Internet"-Ersetzungssatz. Die Abfrage wird demzufolge als "IE online community" oder "IE 5 online community" verarbeitet.
<replacement> <pat>Internet</pat> <sub>intranet</sub> </replacement>
und
<replacement> <pat>Internet Explorer</pat> <sub>IE</sub> <sub>IE 5</sub> </replacement>
[Nach oben]
Arbeiten mit Thesaurusdateien
So bearbeiten Sie eine Thesaurusdatei
So laden Sie eine aktualisierte Thesaurusdatei
So zeigen Sie das Tokenisierungsergebnis einer Kombination aus Wörtertrennung, Thesaurus und Stopplisten an
Siehe auch