SQL 搜索文章 的优化问题

背背山上的小和尚 .net  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多条数据,很慢啊!!!!





...全文
80 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CONTAINS 这个效率也不错,但是准确性比较高。
回复
引用 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
不得不说你的方法很好,但是,感觉搜索的结果有一些不对.
回复
可以用sql server的全文检索试试: 运用SQL Server的全文检索来提高模糊匹配的效率 http://blog.csdn.net/sqlserverdiscovery/article/details/11091851
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-09-14 08:15
社区公告
暂无公告