• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
鱼要的是海洋,鸟要的是天空,我要的是自由!
平凡的人不平凡的人生
博客园    首页    新随笔    联系   管理    订阅  订阅

SQL Tips:兼顾检索速度和精确性

即使是SQL Server 2000,全文检索的功能已经能够满足基本需要,有迹象表明在设置相关字段为全文索引的时候,即使是使用这个字段进行like操作,速度也会较没有全文索引快很多。不过既然建立全文索引了,大部分人肯定还是使用CONTAINS来进行操作了,这种速度肯定比like操作更快。一般格式是:

select [想要的字段名] from [表] where CONTAINS(查询字段名, '[查询词]')

最近碰到一个问题,需要精确查询某个关键词所在的位置,比如开头处、结尾处出现固定的串。而在使用CONTAINS的时候,SQL其实已经进行了分词,查询的结果没法限定为固定的位置,更不知道如何限定SQL不进行分词(即精确查询而非模糊查询)。怎么办呢?

想了一个笨方法,速度还是很快,比如搜索以查询词结尾为条件的语句可以为:

select [想要的字段名] from [表]
where CONTAINS(查询字段名, '[查询词]') and [查询字段名] like '%[查询词]'

这多出的一个条件用于确定搜索的精确性。我相信这不是最好的解决方案,抛砖引玉,欢迎大家讨论。

 

Other Tips:

大数据量下的数据库日期操作问题

posted @ 2007-06-29 22:21  伊凡  阅读(298)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3