日期:2014-05-18  浏览次数:20394 次

用全文索引搜索出来的数据比用Like少很多,为什么?
全文索引
select * from tb where contains((title, [content]), '中国')
只有一条记录


用Like搜索
select * from tb where title like '%中国%' or [content] like '%中国%'
有25条记录

这是为什么?

------解决方案--------------------
这就是全文索引跟模糊查询的区别啊
------解决方案--------------------
全文索引 和 模糊查询 本来就不是一回事。
------解决方案--------------------
SQL code

 把中国改为:中国*试试,contains将中国默认为一个词,“词”!!!!!!!!!!!

------解决方案--------------------
全文索引 和 模糊查询 本来就不是一回事。
------解决方案--------------------
全文索引是以语法分析的方式来分词的,所以并不是所有的中国两个字连在一起都会被检索出来,而like只是单纯的查找没什么语义在里面。
话说,微软的SQL Server中文分词不太强大,不准确,建议在网上搜个中文的分词库,直接用SQL Server的话英文比较准的说。
------解决方案--------------------
全文索引不就是为了提高字符字段的查询速度吗?怎么会有这种差别,求解