上亿数据,如何完成快速检索 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
joker2026
V2EX    程序员

上亿数据,如何完成快速检索

  •  
  •   joker2026 2023-10-04 17:16:56 +08:00 3981 次点击
    这是一个创建于 740 天前的主题,其中的信息可能已经有所发展或是发生改变。

    针对上亿数据,根据其中一个字段或两字字段进行搜索模糊查询,一般使用什么中间件或者搜索方法? 不拘泥于言,不拘泥于框架,请大神各抒己见。当然 php 、java 这种常见的语言,参考意义比较大,谢谢

    17 条回复    2023-10-05 17:26:46 +08:00
    locoz
        1
    locoz  
       2023-10-04 17:19:24 +08:00 via Android   3
    elastic search
    netnr
        2
    netnr  
       2023-10-04 18:05:16 +08:00 via Android
    如果搜索结果是返回少量数据, ClickHouse 秒出
    insmoin
        3
    insmoin  
       2023-10-04 18:27:02 +08:00
    全文搜索引擎
    redtech
        4
    redtech  
       2023-10-04 18:37:53 +08:00 via iPhone
    也可以用 meilisearch
    dusu
        5
    dusu  
       2023-10-04 19:06:29 +08:00 via iPhone
    manticoresearch
    Rocketer
        6
    Rocketer  
       2023-10-04 20:45:13 +08:00 via iPhone
    @netnr 秒也太慢了

    超过 100 毫秒用户体验就算差了
    GeorgeWai
        7
    GeorgeWai  
       2023-10-04 21:00:02 +08:00 via iPhone
    es ,ch 都可以,关键还是在于硬件
    missuo
        8
    missuo  
       2023-10-04 21:04:30 +08:00 via iPhone
    clickhouse yyds
    zhuzhibin
        9
    zhuzhibin  
       2023-10-04 21:25:24 +08:00 via iPhone
    插个话 es 的全模糊 wildcard 有啥替代方案 性能太差了 上次有过一次把单节点 CPU 干满了 大量查询导致 search 线程池也阻塞满了
    matrix1010
        10
    matrix1010  
       2023-10-04 21:45:26 +08:00
    @zhuzhibin N-gram 空间换时间,一般来说 2gram 或 3gram 效果都很不错, 你也可以两个加一起。比如 google code search 就是 trigram: https://github.com/google/zoekt
    Sakura0Tears
        11
    Sakura0Tears  
       2023-10-04 21:48:03 +08:00
    只会 Excel 难蚌
    matrix1010
        12
    matrix1010  
       2023-10-04 21:50:27 +08:00
    owen800q
        13
    owen800q  
       2023-10-05 00:44:25 +08:00 via iPhone
    Serverless 版本的 mongodb, 别说一亿,100 亿都没问题
    bjzhush
        14
    bjzhush  
       2023-10-05 11:40:28 +08:00
    你缺了很多条件,比如配备的硬件,QPS ,响应时间要求
    我说个我做过的单机版的,10 年前了,拿 sphinx 搞的,大概 3-5 亿条记录,印象中响应是 500 毫秒内
    midsolo
        15
    midsolo  
       2023-10-05 11:46:36 +08:00
    我司国庆之前用 32G 内存的服务器,压测了单机版的 ClickHouse ,数据可以参考一下:

    扫描行数:530,000,000
    耗时(秒):0.942
    查询列数:2
    结果行数:46
    zhuzhibin
        16
    zhuzhibin  
       2023-10-05 15:11:15 +08:00 via iPhone
    matrix1010
        17
    matrix1010  
       2023-10-05 17:26:46 +08:00
    @zhuzhibin 看了一眼 es 的文档,wildcard 类型已经是通过 trigram 来优化了。如果用 wildcard 类型 cpu 还高可能就要考虑一下别的方法 https://www.elastic.co/cn/blog/find-strings-within-strings-faster-with-the-new-elasticsearch-wildcard-field
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5819 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 01:35 PVG 09:35 LAX 18:35 JFK 21:35
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86