Ich kann finden , was DLL englische Wortbrecher unter Verwendung unterstützt , sp_help_fulltext_system_components
aber ich habe keine Zeichen für Englisch in der Lage eine aktuelle Liste des Wortes finden brechen (wie leer, .
, %
, etc.).
Kennt jemand eine Quelle für diese Informationen?
sql-server-2005
sql-server-2008-r2
full-text-search
user1302071
quelle
quelle
Antworten:
Dies ist keine offizielle Liste, sondern Sie verwenden eine Schleife, um eine Liste von Zeichen zu bearbeiten, und verwenden Sie
sys.dm_fts_parser
Folgendes:Ich kann eine Liste von Zeichen
sys.dm_fts_parser
erstellen, die die Wörter brechen. (sys.dm_fts_parser
Gibt eine Zeile für jedes im Import gefundene 'Wort' zurück. Wenn also mehr als eine Zeile zurückgegeben wird, hatten wir einen Wortunterbrecher.)Dies könnte auf erweiterte / nicht englische Zeichensätze erweitert werden, indem
nchar()
anstelle vonchar()
(und einem größeren Wert für @i) und Ändern von Parameter 2 (lcid) im Aufruf von verwendet wirdsys.dm_fts_parser
quelle
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).
gibt "the", "great" und ".net" zurück
gibt "the", "great", "asp.net", "asp" und "net" zurück
gibt "gis" und "gis" zurück
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
gibt "1-0", "1", "nn1", "0" und "nn0" zurück
gibt "c #", "j #", "f" und "a" zurück (f # fehlt in der Regel)
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
quelle