Ich habe eine Textspalte mit verschiedenen Wörtern, die in Abkürzungen abgekürzt wurden. Beispielsweise könnte die Spalte anstelle von "versichert" "insd" enthalten. Ich verstehe, dass ich eine Thesaurus-Datei verwenden kann , um eine Liste von Synonymen zu erstellen, sodass eine Suche nach "insd" effektiv Zeilen zurückgeben kann, die sowohl "versichert" als auch "insd" enthalten. Perfekt.
Einige der anderen Abkürzungen in der Spalte enthalten jedoch "Sonderzeichen" wie einen Schrägstrich oder ein kaufmännisches Und, wie z.
t / p - Dritter o / s - andere Seite p / p - pro Person i & o - innen und außen
Gibt es eine Möglichkeit , Fragen zu stellen CONTAINS
oder zu FREETEXT
verstehen, die diese Wörter enthalten? Zum Beispiel:
SELECT *
FROM dbo.MyTable
WHERE FREETEXT(MyColumn, 't/p');
Ich habe die Thesaurus-Datei tsenu.xml
am richtigen Speicherort für die Instanz erstellt:
<XML ID = "Microsoft Search Thesaurus"> <thesaurus xmlns = "x-schema: tsSchema.xml"> <diakritisch_empfindlich> 0 </ diakritisch_empfindlich> <Erweiterung> <sub> versichert </ sub> <sub> insd </ sub> </ Expansion> <Erweiterung> <sub> t / p </ sub> <sub> Dritter </ sub> </ Expansion> <Erweiterung> <sub> o / s </ sub> <sub> andere Seite </ sub> </ Expansion> <Erweiterung> <sub> p / p </ sub> <sub> pro Person </ sub> </ Expansion> </ thesaurus> </ XML>
Und geladen mit EXEC sys.sp_fulltext_load_thesaurus_file 1033;
, jedoch liefert die Abfrage unvorhersehbare Ergebnisse.
LIKE
Operator zu verwenden: support.microsoft.com/en-us/help/200043/…