【问题标题】:Query SQl Server 2005 Full Text Search noise/stop words查询 SQl Server 2005 全文搜索噪音/停用词
【发布时间】:2010-11-18 22:10:54
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql-server-2005 full-text-search stop-words noise-words


    【解决方案1】:

    我只是将\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
    

    【讨论】:

    • 嗨 Herb,这可以工作,但我们的应用程序在通常被锁定的客户端服务器上运行,因此对文件的访问受到限制。不幸的是,让客户复制和粘贴干扰词不是一个可接受的解决方案
    【解决方案2】:

    这在 SQL 2005 中似乎是不可能的,但在 SQL Server 2008 中是不可能的。

    Advanced Queries for Using SQL Server 2008 Full Text Search StopWords / StopLists

    下一个查询获取所有 SQL 附带的停用词 Server 2008。这是一个不错的 改进,你不能这样做 SQL Server 2005。

    Stopwords and Stoplists - SQL Server 2008

    SQL Server 2005 的干扰词已经 被停用词代替。当一个数据库 从一个升级到 SQL Server 2008 以前的版本,noise-word 文件 SQL Server 2008 中不再使用。 然而,噪声词文件是 存储在 FTDATA\ FTNoiseThesaurusBak 文件夹,你 以后可以在更新时使用它们或 构建对应的 SQL Server 2008 年停止名单。有关信息 将噪声词文件升级到 停止列表,请参阅全文搜索 升级。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-16
      • 2010-10-11
      • 2011-04-02
      • 1970-01-01
      相关资源
      最近更新 更多