[求助]MSSQL全文检索性能问题,PATINDEX,CHARINDEX等

SoldierShen_ 2014-10-17 06:15:25
准确性,发现PATINDEX明显好很多,CHARINDEX和CONTAINS,特别是搜字母的时候,只能能搜到一点点数据,不像PATINDEX那么多,
但是PATINDEX抽起来性能太差
从全文搜索的使用角度看,有没有好的解决方案?
SELECT RESULT_ID FROM QA_KEY_RETRIEVAL_CONTENT
WHERE PATINDEX('%金%',CONTENT)>0
...全文
519 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoldierShen_ 2014-10-27
  • 打赏
  • 举报
回复
引用 8 楼 wmxcn2000 的回复:
全文检索的确应该使用 CONTAINS 。 如果要精确的话, like 才好用,但是也如同楼上几位所说,效率欠佳。
嗯,折中后,还是选了contains,后期估计会用框架了
还在加载中灬 2014-10-20
  • 打赏
  • 举报
回复
LIKE 好像只有 右LIKE 如 字段 LIKE ‘1231%’才会用索引 PATINDEX 如果你不需要类似正则的匹配效果,不建议使用
SoldierShen_ 2014-10-20
  • 打赏
  • 举报
回复
引用 5 楼 u010192842 的回复:
换成like您就可以加索引了.....不加索引应该是没啥效果滴~~~
已经加了,实测木有多少改善
Yole 2014-10-20
  • 打赏
  • 举报
回复
换成like您就可以加索引了.....不加索引应该是没啥效果滴~~~
SoldierShen_ 2014-10-20
  • 打赏
  • 举报
回复
引用 3 楼 u010192842 的回复:
SELECT  RESULT_ID FROM QA_KEY_RETRIEVAL_CONTENT
WHERE PATINDEX('%金%',CONTENT)>0
这个语句的话完全可以用 like 。 用like比您这个效率高多了
实测了一下,效果差不多,没有更好的抽取方式了吗? 发现contains 在综合权衡上好一点,但是对于分词,特别是搜索单个字母的时候,count比patindex少很多
Yole 2014-10-20
  • 打赏
  • 举报
回复
SELECT  RESULT_ID FROM QA_KEY_RETRIEVAL_CONTENT
WHERE PATINDEX('%金%',CONTENT)>0
这个语句的话完全可以用 like 。 用like比您这个效率高多了
SoldierShen_ 2014-10-20
  • 打赏
  • 举报
回复
引用 1 楼 alimake 的回复:
你这个charindex 可以代替PATINDEX啊
可是抽取的准确性不好,远比patindex少
卖水果的net 2014-10-20
  • 打赏
  • 举报
回复
全文检索的确应该使用 CONTAINS 。 如果要精确的话, like 才好用,但是也如同楼上几位所说,效率欠佳。
xiaodongni 2014-10-17
  • 打赏
  • 举报
回复
你这个charindex 可以代替PATINDEX啊

22,209

社区成员

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

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