V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
macdino
V2EX  ›  程序员

多数据表,大数据量,更新频率较高,以搜索为主的业务,推荐什么搜索服务/系统架构

  •  
  •   macdino · 2013-01-17 13:37:48 +08:00 · 4179 次点击
    这是一个创建于 4307 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前一段发过一个类似的,可能描述不清楚。最近一直在想这个问题,并做了一个调研,希望各位能给一些好的建议。

    目前有三张表其中两张是表是业务表(数据量为三个月一归档,每个月大约1K万数据量),分别描述了一个业务,两张表的相关字段为50%,其余50%为个性字段。第三表为索引表(存储了两张表的50%相同字段),主要承担了,对于其它两张业务表的ID的统一分配,但是更多的是承载了前台对于两个业务的同时的列表和搜索功能。

    随着需求的不断增加,对于搜索的需求日益加强,变成了需要同时搜索两张业务表中的各自的个性字段的合集,并且有向所有表的全字段搜索的趋势。
    基于需求,目前总结出三种方案,三种方案各有优缺点:
    1、直接搜索三张表,然后对于数据进行合集。这样子是不动现有架构,可以直接使用,缺点是需要将搜出的结果再进行合集,因数据量大,所以会产生等待时间长。
    2、维护一张两张表的全字段表,即将两张表的所有字段全部融合成一张表,这样子的结果是数据表字段过多,不方便扩展业务。
    3、增加搜索引擎:目前考虑的有两个,Sphinx和Lucene,但是这两个对于大数据量的实时更新处理有问题,会吃大量的内存。

    目前来说,我只想到了以上的几种解决方案。各位有什么好的想法或已经使用的解决方案不?
    多谢!
    6 条回复    1970-01-01 08:00:00 +08:00
    xlogion
        1
    xlogion  
       2013-01-17 15:19:41 +08:00
    Sphinx 是不存的选择,内库的话,首次会很大,之后设定增量即可
    xlogion
        2
    xlogion  
       2013-01-17 15:20:45 +08:00
    换个键盘,各种错别字啊
    Sphinx 是不错的选择,内存的话,首次会很大,之后设定增量即可
    twm
        3
    twm  
       2013-01-17 15:24:49 +08:00
    搜索用lucene吧
    macdino
        4
    macdino  
    OP
       2013-01-17 15:26:25 +08:00
    @xlogion 增量好处理。对于数据会频繁更新,如果用实时索引的话这样子会巨吃内存的。
    BigZ
        5
    BigZ  
       2013-01-17 15:38:15 +08:00
    从易用性来说 当然是sphinx

    sphinx没有实时索引一说,索引都在磁盘上,不占内存,频繁更新索引磁盘IO的压力大

    另:耗内存也不是问题,我们现在部署数据服务的新机器,标配内存都是96G
    xcl3721
        6
    xcl3721  
       2013-01-17 15:41:11 +08:00
    @BigZ sphinx最近新推出了realtime index
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2572 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:27 · PVG 19:27 · LAX 04:27 · JFK 07:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.