专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能WEB开发

简历搜索有关问题

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
简历搜索问题
开发平台式ASP.NET,使用数据库是Sql Server,现有数据2000W条,还在增加中。
一个简历包含个人信息、求职意向、工作经验等信息。
查询条件包含性别、期望工作城市、专业、工作年限等。
现在通过数据库分页查询需要30秒左右,数据表的字段相关索引基本上都加了。
想用Lucene.net实现搜索,或者通过Memcached把简历数据都放到缓存中,不知道哪种方式可行?
------解决思路----------------------
这种查询条件的数据不适合放到nosql中。你可以把“个人信息、求职意向、工作经验”按用户ID放到nosql中,每次SQL只查出用户ID,然后到nosql 中取出详细信息。
------解决思路----------------------
两类建议做法:
1、搜索引擎,搜索引擎也能支持多关键字检索;
2、内存够大的话,也可以考虑用CQEngine之类的内存数据库。
------解决思路----------------------
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毫秒之内,楼主可以试试。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: