• 请不要在回答技术问题时复制粘贴 AI 生成的内容
joker2026
V2EX  ›  程序员

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

  •  
  •   joker2026 · Oct 4, 2023 · 4455 views
    This topic created in 981 days ago, the information mentioned may be changed or developed.

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

    17 replies    2023-10-05 17:26:46 +08:00
    locoz
        1
    locoz  
       Oct 4, 2023 via Android   ❤️ 3
    elastic search
    netnr
        2
    netnr  
       Oct 4, 2023 via Android
    如果搜索结果是返回少量数据, ClickHouse 秒出
    insmoin
        3
    insmoin  
       Oct 4, 2023
    全文搜索引擎
    redtech
        4
    redtech  
       Oct 4, 2023 via iPhone
    也可以用 meilisearch
    dusu
        5
    dusu  
       Oct 4, 2023 via iPhone
    manticoresearch
    Rocketer
        6
    Rocketer  
       Oct 4, 2023 via iPhone
    @netnr 秒也太慢了🤣

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

    扫描行数:530,000,000
    耗时(秒):0.942
    查询列数:2
    结果行数:46
    zhuzhibin
        16
    zhuzhibin  
       Oct 5, 2023 via iPhone
    matrix1010
        17
    matrix1010  
       Oct 5, 2023
    @zhuzhibin 看了一眼 es 的文档,wildcard 类型已经是通过 trigram 来优化了。如果用 wildcard 类型 cpu 还高可能就要考虑一下别的方法 https://www.elastic.co/cn/blog/find-strings-within-strings-faster-with-the-new-elasticsearch-wildcard-field
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3288 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 11:21 · PVG 19:21 · LAX 04:21 · JFK 07:21
    ♥ Do have faith in what you're doing.