是否可以通过查询数据库来获取 SQL Server 2005 中的全文搜索噪声/停用词列表?

我知道干扰词位于文本文件 ~/FTData/noiseEng.txt 中,但我们的应用程序无法访问该文件。

我查看了 sys.fulltext_* 表,但这些似乎没有这些词。

有帮助吗?

解决方案

看来这在 SQL 2005 中是不可能的,但在 SQL Server 2008 中是可行的。

使用 SQL Server 2008 全文搜索非索引字/非索引字表的高级查询

下一个查询获取了使用SQL Server 2008发货的所有停止字样的列表。这是一个不错的改进,您无法在SQL Server 2005中执行此操作。

停用词和非索引字表 - SQL Server 2008

SQL Server 2005噪声单词已被停车词替换。当数据库从上一个版本中升级到SQL Server 2008时,噪声字文件不再在SQL Server 2008中使用。但是,噪声字文件存储在ftdata ftnoisethesaurusbak文件夹中,您可以在更新或构建相应的SQL Server 2008 Soplists时以后使用它们。有关升级噪声字文件以进行停止列表的信息,请参见全文搜索升级。

其他提示

我刚词语从\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData文件噪声复制到我的应用程序,并利用它来剥离噪声字。

    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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top