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.

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top