用的SQL Server 2008, 某张表里某个字段, 类型nvarchar(或者ntext,xml), 对其建立全文索引. 然后查询一般的常用词是没问题的, 例如查询"中国", "北京", "晚安"等. 但是差一些比较偏僻的词, 例如外国人名:"保罗", "玛利亚", 就查不到了. 也大概揣摩的到是分词不准确的问题. 就想问问大伙, 碰到这种情况是怎么解决的? 有没有啥详细的攻略没. 在线等!!!

解决方案 »

  1.   

    谢谢回复! 你可以找一篇中文文章, 存到sql server里面, 用他自带的全文索引把文章索引一下, 然后尝试着用一些生僻的词来进行查询. 就能看到问题所在了. 我了解了一圈下来, 好像做过sql server 全文索引的人都碰到过类似的问题, 最后的解决办法就是换成其他第三方的全文索引引擎, 例如lucene等. 不过这个动静太大, 所以就想了解下有没有什么省力气的解决办法. 哪怕不是那么的完美也行啊, 呵呵.anyway, 感谢答复!
      

  2.   

    一般很少做这种操作的.
    大多数情况都是利用 charindex 函数来进行查找,这样更准确些.似乎很少人使用全文索引.
      

  3.   

    在使用全文索引时,这个确实是很常见的问题。目前SQL SERVER确实没有很好的办法,这和一般查询不一样,普通查询是逐个字节比较,而全文检索是逐个词比较(速度会快得多),如果分词不准确,查起来也肯定不准确。其实不只是中文,英文也是如此,如查询英文中的姓名/公司名称等时,也经常匹配不准确。这种情况,如果确实需要在SQL解决的话,一般也只有再建一列,将这些词单独放进去,并建普通索引来查。PS: 楼主,记得结贴哦PS之PS:似乎楼主举的例子不太恰当,保罗和玛利亚一般是查的到的
      

  4.   

    To coleling: 肯定会结贴的, 放心. 呵呵. 我在想是否能找到一个第三方工具来做呢, 据说有个产品叫"庖丁解牛"还不错, 有同学用过吗, 或者有其他好的产品推荐呢. 谢谢!