SQL 2008全文索引搜索没有断字符

时间:2012-09-12 20:03:26

标签: sql sql-server full-text-search sql-server-2008-r2 wordbreaker

我正在尝试使用CONTAINS搜索FTI搜索Twitter风格的用户名,例如: @username,但断字符将忽略@符号。有没有办法禁用断字器?从研究中,有一种方法可以创建一个自定义分词器DLL并安装它并分配它,但所有看起来都有点密集,坦率地说,在我的头上。我禁用了停用词,因此不会忽略破折号,但我需要@符号。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你不会喜欢这个答案。但是全文索引在索引时只考虑字符 _ `。忽略所有其他字符,并在出现这些字符的地方分割单词。这主要是因为全文索引被设计用于索引大型文档,并且只考虑适当的单词使其成为更精确的搜索。

我们遇到了类似的问题。为了解决这个问题,我们实际上有一个转换表,其中 @, - ,/ 等字符被替换为特殊序列,如'`at` ','`dash `','`斜杠`'等。在全文搜索时,您必须再次使用这些特殊序列替换搜索字符串中的字符并进行搜索。这应该照顾特殊字符。