Abfrage von SQL Server 2005 Volltextsuche Lärm / Stopp-Worte
-
13-09-2019 - |
Frage
Ist es möglich, die Liste der Volltextsuche Lärms / Stopp-Worte von SQL Server 2005 durch Abfrage der Datenbank zu bekommen?
Ich bin mir bewusst, dass die Füllwörter in einer Textdatei sind ~ / FTData / noiseEng.txt aber diese Datei ist für unsere Anwendung nicht zugänglich.
Ich habe Blick auf die sys.fulltext_ * Tabellen, aber diese scheinen nicht die Worte zu haben.
Lösung
Es scheint, dass diese in SQL 2005 nicht möglich ist, aber in SQL Server 2008.
Erweiterte Abfragen für die Verwendung von SQL Server 2008 Volltextsuche Stoppwörter / Dispositionen
Diese nächste Abfrage erhält eine Liste aller die Stoppwörter, die mit SQL versenden Server 2008. Dies ist ein nette Verbesserung, können Sie dies nicht tun, in SQL Server 2005.
Stoppwörter und Stopplisten - SQL Server 2008
SQL Server 2005 Füllwörter gewesen durch Stoppwörter ersetzt. Wenn eine Datenbank auf SQL Server 2008 von einem aktualisiert wird vorherige Version, die Füllwort-Dateien werden nicht mehr in SQL Server 2008 verwendet. Allerdings sind die Füllwort-Dateien sind im FTDATA \ gespeicherten FTNoiseThesaurusBak Ordner, und Sie können sie später verwenden, wenn die Aktualisierung oder Aufbau der entsprechenden SQL Server 2008 Dispositionen. Weitere Informationen zu Upgrade Füllwort-Dateien Dispositionen finden Sie die Volltextsuche Aktualisieren.
Andere Tipps
Ich kopiere einfach die Füllwörter aus \Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData
in meine app-Datei, und verwenden Sie es Füllwörter abzustreifen.
Public Function StripNoiseWords(ByVal s As String) As String
Dim NoiseWords As String = ReadFile("/Standard/Core/Config/noiseENU.txt").Trim
Dim NoiseWordsRegex As String = Regex.Replace(NoiseWords, "\s+", "|") ' about|after|all|also etc.
NoiseWordsRegex = String.Format("\s?\b(?:{0})\b\s?", NoiseWordsRegex)
Dim Result As String = Regex.Replace(s, NoiseWordsRegex, " ", RegexOptions.IgnoreCase) ' replace each noise word with a space
Result = Regex.Replace(Result, "\s+", " ") ' eliminate any multiple spaces
Return Result
End Function