SQL Server 2005全文搜索 - 有效的同义词库字符

时间:2010-04-06 13:00:51

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

FORMSOF THESAURUS会抛出特定字符的错误。例如。 <{1}}会引发错误,而FORMSOF (THESAURUS, hel!lo)会有效。

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

你可以帮帮我吗?

1 个答案:

答案 0 :(得分:3)

Thesaurus期待一个词或术语:

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”,   这可能经常发生,但那   通常在搜索时没有帮助   特别的文字。停用词是   在停止列表中列出。每个全文   index与特定关联   停止列表,它决定了什么   查询中省略了停用词   或索引时的索引。对于   更多信息,请参阅停用词和   索引字表。

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

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

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