首页 新闻 会员 周边

分布式海量数据索引与检索方案探索

0
悬赏园豆:200 [待解决问题]

一,尚待解决的难题

 

难题1, 目前索引与检索是两个独立的过程,索引建立完成后不能立即被检索到,如何才能做到所建即所得,也就是实现实时检索。

难题2,由于使用的是单字索引,post数据中存在着大量的不同的字符串,这些字符串会使得词典随着数据量的增长而迅速的膨胀,而词典是用来查询一个字的入口,必须放在内存中才能保证查询速度,这样就导致了内存不够使用。

难题3,按照每天一个索引去建立索引会导致词典的冗余,每一天的索引中必有一部分重复的字或字符串,汉字文本内容中大部分都是汉字,所以大部分都是一样的词典,冗余最厉害,而POST内容中大部分都是字符串,所以只有很小的一部分冗余,但是如果时间一长,冗余导致的浪费内存也是很可观的。解决的办法就是合并索引,但是合并索引的耗时会随着索引的膨胀迅速增长,并且合并索引给系统带来了更多的复杂度,更多的技术难题,究竟需不需要合并索引还有待仔细斟酌。

难题4,当前缓存查询出来的文档id号的方式不够优雅,查询出来的文档id号放到缓存中,索引一旦更新,上一次的缓存应该废除,废除的过程该如何和检索协调。

难题 5,究竟该以什么样的策略把索引分布到不同的服务器上,既要保证查询的高效,又要保证容易维护,容错能力可以不用要求很高。

问题补充:

开源搜索引擎名单:

Zoie

firtex

lucene

sphinx

apache solr

Elasticsearch

Katta

SolrCloud

Solandra

HappyCodeIML的主页 HappyCodeIML | 初学一级 | 园豆:2
提问于:2013-01-30 11:20
< >
分享
所有回答(2)
0

用lucene呗

哇~怪兽 | 园豆:622 (小虾三级) | 2013-01-30 11:36

目前基于国内开源项目firtex做了一部分了,但是困难重重,以上罗列出来的都是在开发中遇到的困难。 再换成Lucene等于是要重做了。

支持(0) 反对(0) HappyCodeIML | 园豆:2 (初学一级) | 2013-01-30 14:01

@HappyCodeIML: 任重而道远

支持(0) 反对(0) 哇~怪兽 | 园豆:622 (小虾三级) | 2013-01-30 14:02
0

将数据分为最新、最近、历史数据分别建立索引,然后采用多索引搜索,lucene.net提供了相关功能。提一个想法,此方法未经本人验证。

喵喵喵猫 | 园豆:1742 (小虾三级) | 2013-01-31 09:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册