我正在尝试使用 CONTAINS
搜索 FTI 以查找 Twitter 样式的用户名,例如@username,但分词系统会忽略 @ 符号。有没有办法禁用分词器?从研究中,有一种方法可以创建自定义分词器 DLL 并安装它并分配它,但这一切似乎有点密集,坦率地说,我无法理解。我禁用了停用词,这样破折号就不会被忽略,但我需要那个 @ 符号。有什么想法吗?
最佳答案
您不会喜欢这个答案。但是全文索引在索引时只考虑字符_和`。所有其他字符都被忽略,单词在这些字符出现的地方被拆分。这主要是因为全文索引是为了索引大型文档而设计的,只考虑适当的词以使其成为更精细的搜索。
我们遇到了类似的问题。为了解决这个问题,我们实际上有一个翻译表,其中像 @,-,/ 这样的字符被替换为像 '`at`','`dash 这样的特殊序列`'、'`斜杠`' 等。在全文搜索时,您必须再次用这些特殊序列替换搜索字符串中的字符并进行搜索。这应该处理特殊字符。
关于SQL2008 无分词器的全文索引搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12395465/