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

文件名搜索这么难弄?

  •  
  •   zhidian · 2017-01-30 18:25:15 +08:00 · 3383 次点击
    这是一个创建于 2849 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为什么微云 /百度云 /七牛的文件搜索一样烂?一个简单的 [文件名] 搜索,还不是全文检索,半天找不到?不科学啊。

    我只是搜文件名,这个很难做么?我网盘里面也没有一大堆小文件,目测 tree 一下,不到 2k 的字符串, 居然搜得这么慢,还出不来结果?

    七牛就更恶心,必须搜前缀,不然绝对搜不到。(然而谁特么记得那么清楚啊!)

    以上说的都是纯字符搜索,不是 regex 搜索。

    浏览器地址栏那搜索才叫真正的搜索啊!。。。

    17 条回复    2017-01-31 04:48:37 +08:00
    ichubei
        1
    ichubei  
       2017-01-30 18:38:18 +08:00 via Android
    不清楚,不过我觉得苹果的 app stote 搜索弱爆了。
    bombless
        2
    bombless  
       2017-01-30 18:59:15 +08:00 via Android
    感觉同一个用户的不同文件未必在一个节点上吧。也许是类似一个目录是一个对象,目录下是一些对象的索引。如果是这样的话那整颗树的元信息未必在一个地方统一维护,否则每改一个文件夹的内容还得更新元信息也挺蛋疼的,分布式事务一向蛋疼
    zhidian
        3
    zhidian  
    OP
       2017-01-30 19:04:18 +08:00
    @bombless 哪有那么复杂……文件可以从不同的服务器取,文件名目录树应该是在一个地方的。用浏览器一个一个文件夹看都不卡,一搜索起来这么捉急我也是无语。
    bombless
        4
    bombless  
       2017-01-30 19:07:52 +08:00 via Android
    @zhidian 我都说了整个树不一定在一个节点上。观点我已经说明白了,剩下的我就不多说了
    loading
        5
    loading  
       2017-01-30 19:24:36 +08:00 via Android
    服务器使用的不是目录结构的,应该是基于数据库的,表里面存的有 parentId,rootId 等等,所以你浏览目录起来速度很快。如果你要搜索,可能数据库就要跑 like 了,还是不给你们搞算了……
    isCyan
        6
    isCyan  
       2017-01-30 19:26:25 +08:00
    七牛你当网盘用我也是醉了……
    xfspace
        7
    xfspace  
       2017-01-30 20:01:44 +08:00 via Android
    搜索是要讲究算法的...你来写一个?
    学得少想得多的例子。
    zhidian
        8
    zhidian  
    OP
       2017-01-30 20:12:43 +08:00 via Android
    @isCyan 我没拿这当网盘,我只是搜一下自己的资源。
    zhidian
        9
    zhidian  
    OP
       2017-01-30 20:15:24 +08:00 via Android
    @xfspace 嚯嚯,真厉害。‘讲究算法的’。所以你觉得搜索自己网盘里文件这个需求不好实现?我学的少啥都不懂你来教我。
    NeinChn
        10
    NeinChn  
       2017-01-30 20:24:37 +08:00   ❤️ 1
    这个算法真是没什么难的,不同规模有不同实现方式,几十亿记录的规模下都很简单
    就只是不做而已...没有为什么.....
    gamexg
        11
    gamexg  
       2017-01-30 20:32:40 +08:00 via Android
    七牛的目标客户基本不需要搜索功能,客户会自己存 key 自己做搜索。
    所以七牛不存在这个功能正常。

    但是百度就比较奇怪了。
    Jackeriss
        12
    Jackeriss  
       2017-01-30 23:14:53 +08:00
    @isCyan 七牛当网盘分享文件时还真挺方便的。。。
    zwh8800
        13
    zwh8800  
       2017-01-30 23:50:48 +08:00
    @xfspace 做搜索现成的方案一大堆好吗?这种简单的 user_id + 文件名的搜索,就算几十亿规模,用 elasticsearch 也能做的很好。不做只是因为懒着做而不是不能做。
    neoblackcap
        14
    neoblackcap  
       2017-01-31 00:19:17 +08:00   ❤️ 1
    七牛我是明白的,他们主要是面对企业用户,企业用户才不关心搜索文件这个功能,因此就是这么烂。这个纯属没有放资源在这上面。像百度云以及微云大概也是这样
    fjzjk
        15
    fjzjk  
       2017-01-31 00:23:16 +08:00
    七牛只是不需要这个功能
    zhidian
        16
    zhidian  
    OP
       2017-01-31 00:27:04 +08:00
    @Jackeriss 小心被迅雷盯上……(流量爆表我把一个 bucket 临时设置成了私人……)
    popbones
        17
    popbones  
       2017-01-31 04:48:37 +08:00
    S3 连文件 count 都得不到,号称只会在账单上出现一个估计值。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3142 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:53 · PVG 21:53 · LAX 05:53 · JFK 08:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.