为什么微云 /百度云 /七牛的文件搜索一样烂?一个简单的 [文件名] 搜索,还不是全文检索,半天找不到?不科学啊。
我只是搜文件名,这个很难做么?我网盘里面也没有一大堆小文件,目测 tree 一下,不到 2k 的字符串, 居然搜得这么慢,还出不来结果?
七牛就更恶心,必须搜前缀,不然绝对搜不到。(然而谁特么记得那么清楚啊!)
以上说的都是纯字符搜索,不是 regex 搜索。
浏览器地址栏那搜索才叫真正的搜索啊!。。。
1
ichubei 2017-01-30 18:38:18 +08:00 via Android
不清楚,不过我觉得苹果的 app stote 搜索弱爆了。
|
2
bombless 2017-01-30 18:59:15 +08:00 via Android
感觉同一个用户的不同文件未必在一个节点上吧。也许是类似一个目录是一个对象,目录下是一些对象的索引。如果是这样的话那整颗树的元信息未必在一个地方统一维护,否则每改一个文件夹的内容还得更新元信息也挺蛋疼的,分布式事务一向蛋疼
|
3
zhidian OP @bombless 哪有那么复杂……文件可以从不同的服务器取,文件名目录树应该是在一个地方的。用浏览器一个一个文件夹看都不卡,一搜索起来这么捉急我也是无语。
|
5
loading 2017-01-30 19:24:36 +08:00 via Android
服务器使用的不是目录结构的,应该是基于数据库的,表里面存的有 parentId,rootId 等等,所以你浏览目录起来速度很快。如果你要搜索,可能数据库就要跑 like 了,还是不给你们搞算了……
|
6
isCyan 2017-01-30 19:26:25 +08:00
七牛你当网盘用我也是醉了……
|
7
xfspace 2017-01-30 20:01:44 +08:00 via Android
搜索是要讲究算法的...你来写一个?
学得少想得多的例子。 |
9
zhidian OP @xfspace 嚯嚯,真厉害。‘讲究算法的’。所以你觉得搜索自己网盘里文件这个需求不好实现?我学的少啥都不懂你来教我。
|
10
NeinChn 2017-01-30 20:24:37 +08:00 1
这个算法真是没什么难的,不同规模有不同实现方式,几十亿记录的规模下都很简单
就只是不做而已...没有为什么..... |
11
gamexg 2017-01-30 20:32:40 +08:00 via Android
七牛的目标客户基本不需要搜索功能,客户会自己存 key 自己做搜索。
所以七牛不存在这个功能正常。 但是百度就比较奇怪了。 |
13
zwh8800 2017-01-30 23:50:48 +08:00
@xfspace 做搜索现成的方案一大堆好吗?这种简单的 user_id + 文件名的搜索,就算几十亿规模,用 elasticsearch 也能做的很好。不做只是因为懒着做而不是不能做。
|
14
neoblackcap 2017-01-31 00:19:17 +08:00 1
七牛我是明白的,他们主要是面对企业用户,企业用户才不关心搜索文件这个功能,因此就是这么烂。这个纯属没有放资源在这上面。像百度云以及微云大概也是这样
|
15
fjzjk 2017-01-31 00:23:16 +08:00
七牛只是不需要这个功能
|
17
popbones 2017-01-31 04:48:37 +08:00
S3 连文件 count 都得不到,号称只会在账单上出现一个估计值。
|