【发布时间】: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
FORMSOF THESAURUS 针对特定字符抛出错误。例如。 FORMSOF (THESAURUS, hel!lo) 抛出错误,而 FORMSOF (THESAURUS, hel?lo) 有效。
但是,我没有找到任何关于允许使用哪些字符的文档。
你能帮帮我吗?
【问题讨论】:
标签: sql sql-server sql-server-2005 full-text-search
词库需要一个词或术语:
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, @"[#$%&()*“”+,./:;<=>!?@[\\\]^_`’{|}~]", "");
【讨论】: