Requête SQL Server 2005 Texte complet Recherche / bruit Mots vides
-
13-09-2019 - |
Question
Est-il possible d'obtenir la liste du bruit recherche en texte intégral / arrêt mots de SQL Server 2005 en interrogeant la base de données?
Je suis conscient que les mots de bruit sont dans un fichier texte ~ / FTData / noiseEng.txt mais ce fichier est accessible à notre application.
Je l'ai regard sur le sys.fulltext_ * tables mais ceux-ci ne semblent pas avoir les mots.
La solution
Il semble que cela est impossible dans SQL 2005, mais est dans SQL Server 2008.
Cette requête suivante obtient une liste de tous les mots vides qui sont livrés avec SQL Server 2008. Ceci est une belle amélioration, vous ne pouvez pas le faire en SQL Server 2005.
et Stoplists mots vides - SQL Server 2008
SQL Server 2005 mots de bruit ont été remplacé par les mots vides. Lorsqu'une base de données est mis à niveau vers SQL Server 2008 à partir d'un version précédente, les fichiers mot de bruit ne sont plus utilisés dans SQL Server 2008. Cependant, les fichiers mot de bruit sont stocké dans le FTDATA \ dossier FTNoiseThesaurusBak, et vous peut les utiliser plus tard lors de la mise à jour ou la construction de SQL Server correspondant 2008 stoplists. Pour plus d'informations sur les la mise à niveau des fichiers mot de bruit stoplists, voir texte intégral Recherche Mettre à niveau.
Autres conseils
Je copie le fichier de mots de bruit \Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData
dans mon application, et l'utiliser pour dépouiller les mots de bruit.
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