积极答复者
Full-text搜索把“一二三”当成“123”

问题
-
(我的中文不是太好,请各位见谅)
我有一个table,其中一个column建立了full-text index。但当我搜索的时候,SQL Server 会把中文字的数字当成是罗马数字。比如说下面的两个queries出来的结果是一样的:
SELECT COUNT(*) FROM survey WHERE CONTAINS (description, '一二')> 5121
SELECT COUNT(*) FROM survey WHERE CONTAINS (description, '12')> 5121
请问有没有办法把“一二三”和“123”分开? 谢谢!
答案
-
@Jiwen Wang:谢谢回复,请问可否提供具体例子如何解决我的问题?我看了你说的两个链接但似乎没有找到怎样解决的方法。谢谢!
我想你需要维护下同义词词典,或者限定language_term
同义词词典路径:http://technet.microsoft.com/zh-cn/library/ms142491.aspx#location
同义词词典:SQL_Server_install_path/Microsoft SQL Server/MSSQL.1/MSSQL/FTDATA/ tschs.xml
干扰词词典:SQL_Server_install_path/Microsoft SQL Server/MSSQL.1/MSSQL/FTDATA/ noiseChs.txt
Chs为简体中文
- 已编辑 Jiwen Wang 2014年5月9日 6:26
- 已标记为答案 Michelle GeModerator 2014年5月16日 9:12
全部回复
-
(我的中文不是太好,请各位见谅)
我有一个table,其中一个column建立了full-text index。但当我搜索的时候,SQL Server 会把中文字的数字当成是罗马数字。比如说下面的两个queries出来的结果是一样的:
SELECT COUNT(*) FROM survey WHERE CONTAINS (description, '一二')> 5121
SELECT COUNT(*) FROM survey WHERE CONTAINS (description, '12')> 5121
请问有没有办法把“一二三”和“123”分开? 谢谢!
你好,这个现象属于同义词范畴,参考 http://msdn.microsoft.com/zh-cn/library/ms142491.aspx
解决方法参考 http://msdn.microsoft.com/zh-cn/library/ms187787.aspx
-
@Jiwen Wang:谢谢回复,请问可否提供具体例子如何解决我的问题?我看了你说的两个链接但似乎没有找到怎样解决的方法。谢谢!
我想你需要维护下同义词词典,或者限定language_term
同义词词典路径:http://technet.microsoft.com/zh-cn/library/ms142491.aspx#location
同义词词典:SQL_Server_install_path/Microsoft SQL Server/MSSQL.1/MSSQL/FTDATA/ tschs.xml
干扰词词典:SQL_Server_install_path/Microsoft SQL Server/MSSQL.1/MSSQL/FTDATA/ noiseChs.txt
Chs为简体中文
- 已编辑 Jiwen Wang 2014年5月9日 6:26
- 已标记为答案 Michelle GeModerator 2014年5月16日 9:12