SQL 搜索文章 的优化问题

背背山上的小和尚 2015-09-14 08:15:26
SQL 搜索文章 的优化问题

sql server 数据库

搜索文章列表
article表
字段:
id (int)
title(nvarchar)
content (text)
create (datetime)

content 的内容非常多,现在列表里面有1000片文章,content的内容是通过编辑器转义存储在数据库字段里面的
title 的内容稍微少,
现在搜索'测试' 这两个字 我自己写的一些查询测试
select * from Article where patindex('%测试%',Content)>0 or
patindex('%测试%',Title)>0 (速度较慢)

select * from Article where Content like '%测试%' or Title like '%测试%' (速度较慢)

select * from Article where charindex('测试',Content,0)>0 or charindex('测试',Title,0)>0 (速度很快,但是数据不准确)

听说还可以用正则表达式搜索的,但是我没有用过,也搜索不出来结果,所以就没贴出来.
求高手指教,1000多条数据,很慢啊!!!!





...全文
109 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
CONTAINS 这个效率也不错,但是准确性比较高。
LongRui888 2015-09-15
  • 打赏
  • 举报
回复
引用 2 楼 qq_29339727 的回复:
[quote=引用 1 楼 yupeigu 的回复:] 可以用sql server的全文检索试试: 运用SQL Server的全文检索来提高模糊匹配的效率 http://blog.csdn.net/sqlserverdiscovery/article/details/11091851
不得不说你的方法很好,但是,感觉搜索的结果有一些不对. [/quote] 里面的干扰词会影响到 搜索结果的准确性。这个你需要特别注意,在我的文章里也提到了。 另外,还有一个问题就是 sql server的分词算法,也会影响到 搜索的准确性。
  • 打赏
  • 举报
回复
引用 1 楼 yupeigu 的回复:
可以用sql server的全文检索试试: 运用SQL Server的全文检索来提高模糊匹配的效率 http://blog.csdn.net/sqlserverdiscovery/article/details/11091851
不得不说你的方法很好,但是,感觉搜索的结果有一些不对.
LongRui888 2015-09-14
  • 打赏
  • 举报
回复
可以用sql server的全文检索试试: 运用SQL Server的全文检索来提高模糊匹配的效率 http://blog.csdn.net/sqlserverdiscovery/article/details/11091851

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧