|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-07-17
举个例子,我现在有海量的数据(以词为例),我想统计每个词各自出现的次数,不知道用什么方法或结构速度最快。
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-07-17
看海量到什么程度。
最块的方法就是丢到hashmap里。 key就是词,value为出现次数。 |
|
| 返回顶楼 | |
|
时间:2008-07-17
zbird 写道 看海量到什么程度。
最块的方法就是丢到hashmap里。 key就是词,value为出现次数。 现在就是这么做的,速度跟不上。现在测试300W左右数据,需用时6秒。 |
|
| 返回顶楼 | |
|
时间:2008-07-17
最主要改写hashmap里面的方法 去掉所有没必要的函数
特别是put的时候 |
|
| 返回顶楼 | |
|
时间:2008-07-17
chbest 写道 最主要改写hashmap里面的方法 去掉所有没必要的函数
特别是put的时候 没看到HashMap的put有什么没必要的函数啊。。感觉用map始终没法达到要求。 |
|
| 返回顶楼 | |
|
时间:2008-07-17
如果是非常海量的话,那只能考虑用搜索引擎做索引的这部分功能了,可以看一下lucene的倒排索引原理,如果是不多的文本文件,用java的正则表达式做匹配可以做到
|
|
| 返回顶楼 | |
|
时间:2008-07-17
ladofwind 写道 如果是非常海量的话,那只能考虑用搜索引擎做索引的这部分功能了,可以看一下lucene的倒排索引原理,如果是不多的文本文件,用java的正则表达式做匹配可以做到
现在做的就是从索引里检索出来的结果数据的再次统计。 从索引检索到结果后,需要对结果中的某些字段再次进行统计。。。。。。。 |
|
| 返回顶楼 | |
|
时间:2008-07-17
记得我刚毕业的时候,我师傅给我说过,hash是解决性能瓶颈的万金油
|
|
| 返回顶楼 | |
|
时间:2008-07-17
300W谈不上海量吧,可以分块搞成并发处理,或者试试map-reduce
|
|
| 返回顶楼 | |
|
时间:2008-07-17
dennis_zane 写道 300W谈不上海量吧,可以分块搞成并发处理,或者试试map-reduce
现在测试,一个节点的数据大概300W,查询的条件控制返回所有的结果。现在统计一个字段要4s,不敢想象多个节点的情况。 |
|
| 返回顶楼 | |







