【问题标题】:SQL Server 2005 Full text search - Valid Thesaurus charactersSQL Server 2005 全文搜索 - 有效词库字符
【发布时间】:2010-04-06 13:00:50
【问题描述】:

FORMSOF THESAURUS 针对特定字符抛出错误。例如。 FORMSOF (THESAURUS, hel!lo) 抛出错误,而 FORMSOF (THESAURUS, hel?lo) 有效。

但是,我没有找到任何关于允许使用哪些字符的文档。

你能帮帮我吗?

【问题讨论】:

    标签: sql sql-server sql-server-2005 full-text-search


    【解决方案1】:

    词库需要一个词或术语:

    http://msdn.microsoft.com/en-us/library/cc879300(v=sql.110).aspx

    我在 .NET 代码中所做的是使用正则表达式删除所有这些特殊字符(基本上留下 A-Z 和 0-9。

    http://msdn.microsoft.com/en-us/library/aa258227(v=sql.80).aspx

    说:

    单词

    是一串没有的字符 空格或标点符号。

    短语

    是一个或多个带空格的单词 每个单词之间。

    确保您已设置停用词(我确实已更改为在我的代码中没有停用词)

    停用词

    定义全文查询时, 全文引擎丢弃停用词 (也称为噪音词)来自 搜索条件。停用词是词 例如“a”、“and”、“is”或“the” 这可能经常发生,但 搜索时通常没有帮助 对于特定的文本。停用词是 列在停止列表中。每一篇全文 索引与特定的关联 停止列表,它确定什么 查询中省略了停用词 或索引时的索引。为了 更多信息,请参阅停用词和 停止列表。

    这里还有一个很棒的 .net 库:(我用它来转换全文查询中的短语) http://www.sqlservercentral.com/articles/Full-Text+Search+(2008)/64248/

    编辑: 这可能会有所帮助: 请注意,我确实将 's 替换为空,否则 That's 变成 Thats 并且不匹配。

    search = search.Replace("’s", "");
    search = Regex.Replace(search, @"[#$%&()*“”+,./:;<=>!?@[\\\]^_`’{|}~]", "");
    

    【讨论】:

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