SQL2008 无分词器的全文索引搜索

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

我正在尝试使用 CONTAINS 搜索 FTI 以查找 Twitter 样式的用户名,例如@username,但分词系统会忽略 @ 符号。有没有办法禁用分词器?从研究中,有一种方法可以创建自定义分词器 DLL 并安装它并分配它,但这一切似乎有点密集,坦率地说,我无法理解。我禁用了停用词,这样破折号就不会被忽略,但我需要那个 @ 符号。有什么想法吗?

最佳答案

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

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

关于SQL2008 无分词器的全文索引搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12395465/

相关文章:

sql-server - SQL存储过程-表作为参数

mysql - Sphinx 搜索或 MySQL 庞大的数据库搜索引擎

php - 使用另一个表中的数据计算列

mysql - 查找与同一列中的多个值匹配的不同元素

ios - 用于实时查询/推送通知的数据库

sql - 在 SQL 中将负载从 VARBINARY 转换为 VARCHAR

sql - SQL Server 2008如何计算记录之间的时间

sql-server - 从 Azure Blob 存储恢复 SQL 备份

ruby-on-rails - 如何在 Heroku 上使用 Elasticsearch

当有 100 多行时,Mysql 全文搜索返回空结果