简历搜索问题

dropping 2014-11-25 07:24:04
开发平台式ASP.NET,使用数据库是Sql Server,现有数据2000W条,还在增加中。
一个简历包含个人信息、求职意向、工作经验等信息。
查询条件包含性别、期望工作城市、专业、工作年限等。
现在通过数据库分页查询需要30秒左右,数据表的字段相关索引基本上都加了。
想用Lucene.net实现搜索,或者通过Memcached把简历数据都放到缓存中,不知道哪种方式可行?
...全文
792 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinjian555 2015-02-25
  • 打赏
  • 举报
回复
Lucene
howsun_zh 2014-11-30
  • 打赏
  • 举报
回复
2000W依靠数据库原子搜索,任何数据库都解决了本质问题,楼主提到的两个方向是正确的,哪个最好还是看环境条件,也不排除两者组合架构。 1、Lucene搜索实用性较强,但2KW数据要亲测才有说服力。Solr分布式方案可能更优。 2、缓存设计得好,性能是最佳的。Memcached就算了吧,它缺乏灵活性。可以考虑使用Redis试试,假如服务提供10种组合查询(这已经很强大了),10*10*2000万个ID集合存入Redis的10*10个key中,假如简历ID是int型,大约占用不到800M内存(但实际情况会小得多,因为每个组合查询不可能都命中2千万条),假如每种组合查询的分页结果是20条,Redis查询此20个ID集合,估计能控制在100毫秒之内,楼主可以试试。
MiceRice 2014-11-29
  • 打赏
  • 举报
回复
两类建议做法: 1、搜索引擎,搜索引擎也能支持多关键字检索; 2、内存够大的话,也可以考虑用CQEngine之类的内存数据库。
业余草 2014-11-26
  • 打赏
  • 举报
回复
Memcached 这种资料多,网上很多资料,上手快!!!推荐使用,但是具体看你们公司的安排了。祝你好运!!!
商科程序员 2014-11-26
  • 打赏
  • 举报
回复
这种查询条件的数据不适合放到nosql中。你可以把“个人信息、求职意向、工作经验”按用户ID放到nosql中,每次SQL只查出用户ID,然后到nosql 中取出详细信息。

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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