sql2005全文索引(有些记录查不到)
我用contains(products,'电机')和products like '%电机%' 查出来的结果数不相同
前者342条,后者627条
而且几次查询结果都是一样的,这是怎么回事啊?
bt:我对表重建了索引
------解决方案--------------------看看,
------解决方案--------------------关注。
------解决方案--------------------up
------解决方案--------------------
我用contains(products,'电机')和products like '%电机%' 查出来的结果数不相同
答:
因为contains它把“电机”当作整词,而不是电一个词和机一个词
所以搜索“电”字没有在电机里面 所以会少条数
------解决方案--------------------这是全文检索中文分词问题!好像目前还没有什么好的解决方法!
比如你在baidu上搜索 '脑' 肯定查询出来的都没有'电脑'这个词
按道理说 我查询 脑 电脑业应该包含进去,可是就是没有!呵呵 !
------解决方案--------------------全文索引 和普通的like 索引是有很大区别的.
全文索引是根据词表进行查询.如果你输入的词不在词表中或没有意义 可能一条记录都查不出来.虽然记录中确实有这两个字也没有用.
普通的like 索引就没有这个问题 它不管你输入的是什么词都会去检索,只要有就会返回结果.但是有一
点要注意 like 查询的效率非常低 如果数据良的话几个小时以后返回结果都有可能.
数据库全文索引的准确性是比较低的 包括oracle 也一样. 可能数据库的主要路线不是这方面而更注重的是信息的管理.或者是先天不足吧.如果要作到高准确率是没有办法的.而且填充索引的速度非常慢.
如果要是真想作到高准确率并且高速 就要抛弃数据库而使用专门的全文检索工具.
------解决方案--------------------JF
------解决方案--------------------Up