鱼C论坛

 找回密码
 立即注册
查看: 787|回复: 5

请教大佬一个关于Django的问题

[复制链接]
发表于 2018-9-18 14:31:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
其实并不算是Django的问题,我标题党了.
最近在用Django练手做个项目,遇到一个模糊查找的问题.
需求是这样的:
输入关键字,在文章表里(字段article,字段类型text),进行搜索,如果包含关键字则返回.
其实就是个简单的like匹配.
但是问题在于,如果行非常多(十万+),搜索效率就会变得非常慢.我用15万数据进行检索,通常要好几分钟的时间.
因为文章字段太长,根本无法加索引(索引有长度限制)
而且Like匹配根本不会撞索引
但是我看很多博客类网站确实有这个功能,响应速度也非常快.他们是用什么方法来实现的呢?分库分表?分布式?还是别的什么方式?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-18 14:53:53 | 显示全部楼层
其实你的意思是在模板上有个搜索栏,用户想检索,例如"Django"  
然后返回包含Django的数据或者文章列表对吧??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 15:04:07 | 显示全部楼层
wongyusing 发表于 2018-9-18 14:53
其实你的意思是在模板上有个搜索栏,用户想检索,例如"Django"  
然后返回包含Django的数据或者文章列表对 ...

是的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 15:14:04 | 显示全部楼层

据我所知,例如Django之类的文档都是用Sphinx这个包来写的。  
里面有个检索功能,看一下他的源码,应该有方法的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 16:56:58 | 显示全部楼层
这个应该和数据库有关吧,如果是mysql数据库的话,like不应该是最左匹配索引吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 21:52:37 | 显示全部楼层
colinshi 发表于 2018-9-18 16:56
这个应该和数据库有关吧,如果是mysql数据库的话,like不应该是最左匹配索引吗?

是啊,所以我想要查匹配任意关键字要怎样实现,目前已经有点眉目了,这个问题似乎挺复杂,不过有一些成熟的解决方案。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-28 00:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表