例如,我的查询类似于使用SQL Server 2005的以下查询:
SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#')
我定义了全文索引以使用列SearchField,该列在使用时返回结果:
SELECT * FROM Table WHERE SearchField LIKE '%c#%'
我相信#是一个特殊的字母,那么如何让FREETEXT对于以上查询正常工作?
#char被索引为标点符号,因此被忽略,因此看起来我们将从单词索引忽略列表中删除了字母C。
完成此操作并重建索引后,在本地对其进行了测试,我得到了结果!
考虑在索引列上使用其他分词系统语言,以便那些特殊字符不会被忽略。
编辑:我也发现此信息:
c#被索引为c(如果c不在您的干扰词列表中,请参阅稍后在干扰词列表中查看更多信息),但是C#被索引为C#(在Win2003上运行的SQL 2005和SQL 2000中,无论C或c是否在您的干扰中单词表)。存储为C#的不仅是C#,而且任何大写字母后跟#。相反,c (以及其他任何小写字母后跟)都被索引为c(无论c是否在您的干扰词列表中)。