SQL Server (jede Version) betrachtet jedes nicht alphanumerische Zeichen als potenziellen Wortunterbrecher. Dies bedeutet, dass es Situationen gibt, in denen Zeichen, von denen erwartet wird, dass sie Wörter brechen, vom Server auf andere Weise (direkt oder erweitert) behandelt werden.
Ein typischer Wortbrecher ist der Punkt ('.')
Dies sind einige Variationen der Punktbehandlung (AICI).
select display_term from sys.dm_fts_parser('"The great .NET."', 1033, 0, 0);
gibt "the", "great" und ".net" zurück
select display_term from sys.dm_fts_parser('"The great ASP.NET."', 1033, 0, 0);
gibt "the", "great", "asp.net", "asp" und "net" zurück
select display_term from sys.dm_fts_parser('"G.I.S."', 1033, 0, 0);
gibt "gis" und "gis" zurück
select display_term from sys.dm_fts_parser('"3.14"', 1033, 0, 0);
gibt "3.14" und "nn3d14" zurück
Und es ist nicht nur der Punkt.
Wählen Sie display_term aus sys.dm_fts_parser ("datengesteuerte Apps", 1033, 0, 0).
gibt "datengesteuert", "Daten", "gesteuert" und "Apps" zurück
select display_term from sys.dm_fts_parser('"1-0"', 1033, 0, 0);
gibt "1-0", "1", "nn1", "0" und "nn0" zurück
select display_term from sys.dm_fts_parser('"c# j# f# a#"', 1033, 0, 0);
gibt "c #", "j #", "f" und "a" zurück (f # fehlt in der Regel)
select display_term, * from sys.dm_fts_parser('"c c+ c++"', 1033, 0, 0);
gibt "c", "c" und "c ++" zurück
Die Liste der (potenziellen) Wortbrecher (Stuart zeigt den Weg, um sie in seiner Antwort zu erhalten) ist der einfache Teil. Der schwierige Teil besteht darin, die Liste der verwendeten internen Regeln zu erhalten. Sie werden in MSWB7 * .dll, NaturalLanguage6.dll und NL7 * .dll unter DRIVE: \ Programme \ Microsoft SQL Server \ INSTANCENAME \ MSSQL \ Binn behandelt / enthalten