首页新闻找找看学习计划

这样的系统如何设计

0
悬赏园豆:20 [已解决问题] 解决于 2013-10-21 17:15

我做了一个网站,搜索电影的,目前已经收入了电影资源100W,搜索用了Lucene.net,我把一些基本的数据做了索引,现在搜索列表要显示当前搜索结果的浏览次数,因为浏览次数每次都在变,但我索引已经建好了,不可能每次都去更新索引吧?100W的数据,更新一下索引要半天呢?不现实,有没有什么好的方法?

豆腐欣欣的主页 豆腐欣欣 | 初学一级 | 园豆:76
提问于:2013-10-17 17:45
< >
分享
最佳答案
1

浏览量这些变化那么频的东西不要放在索引库,不然太麻烦了,还不如直接把浏览量放进数据库。显示的时候根据从索引库出来的ID去数据库查找访问量

收获园豆:10
_cha1R | 菜鸟二级 |园豆:403 | 2013-10-18 01:44

我现在把搜索列表要显示的内容全部放到了索引库里,这么做,就是为了在搜索的时候,不再去查数据库了。因为上百万的数据就算根据id去查,速度也不会很快

豆腐欣欣 | 园豆:76 (初学一级) | 2013-10-18 09:04

@张和清: 那我给你个建议,不知道你们技术水平做不做得到。

就是把一个索引库(比如说100W资源大),划分成100个子索引库(或者更多)。那样每个子索引库的量就是1W,然后设计一个定时器,每天把这100个索引库做一个合并然后更新到数据库上同步,从而达到实时更新索引库。更新索引库速度慢本质上就是IO操作多导致的。

这个需要算法控制得到位,比较复杂。但是从根本上解决你的问题了。

_cha1R | 园豆:403 (菜鸟二级) | 2013-10-18 09:25
其他回答(2)
0

可以采用下动态更新,但是还是不建议这样做,这些浏览量放到其他地方 不要放在这里。

http://www.cnblogs.com/imfunny/p/3370115.html

如果要放在里面也行,但是实现要比较麻烦,大体上思路可以参考下上面代码的那个思路。

收获园豆:5
````` | 园豆:14268 (专家六级) | 2013-10-17 19:43

Lucene可以在原来的基础上追加,可以重建。但可不可以修改?就是有些数据发送了改变,只修改那几条的索引?

支持(0) 反对(0) 豆腐欣欣 | 园豆:76 (初学一级) | 2013-10-17 19:53

@张和清: 可以修改的。是搜索得到document  然后执行删除操作再修改document  然后保存即可。比较麻烦。lucene.net不是为了频繁修改而创建的。

支持(0) 反对(0) ````` | 园豆:14268 (专家六级) | 2013-10-17 20:21
0

及时性要求不高,是可以做成定时把数据更新到数据库

收获园豆:5
happydaily | 园豆:581 (小虾三级) | 2013-10-18 08:15

浏览次数的及时性和准确性,我都没要求。更新到数据库,我现在就是这么做的,几天更新一下。

但关键是怎么在搜索列表页显示

支持(0) 反对(0) 豆腐欣欣 | 园豆:76 (初学一级) | 2013-10-18 09:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册