项目中使用了sql server2012的全文索引,在利用CONTAINS(“需要比较的内容”, “查找的内容”)时,如果查找的内容是中文,会出现部分中文存在,但就是无法查到的问题
// 例如: 数据库中添加全文索引的字段为 content,字段下的内容有以下数据
第一条: "12岁,你好,123456,15587656129";
第二条: "14岁,你,241244,15587656187";
第三条: "32岁,好,233456,15587651245";
第四条: "22岁,你好啊,233656,15587661245"
// sql 里面这样写应该是可以查出 内容里面带 '你好' 的数据,也就是第一条和第四条,但查询返回的结果却是空的
contains(content,'"你好*"')
// 但sql里面要是这样写,却是可以查询出第一条、第三条和第四条的数据,说明代码本身是没有问题的
contains(content,'"好*"')
解决办法
经测试发现可能是sqlserver创建全文索引的 断字符语言选的有问题,更改断字符语言后成功解决此问题。
1、首先选中创建全文索引的表,然后 右键—》全文索引–》属性–》列
2、断字符语言选中 Chinese (Macau SAR),默认为 Simplified Chinese
3、点击确定,然后再次查询就能查到结果了