鉴于很多人提问关于:
- 搜索功能是否支持
- 以后是否会支持
- 支持的话会支持哪些存储类型
- 如果不支持具体原因是什么
- ......
在此 issue 中统一回复并说明,您有什么意见或建议都可在此 issue 中反馈,如无必要,请不要重复提问,谢谢。
搜索功能是否支持
ZFILE 历史支持过搜索,因为某种原因,关闭掉了此功能。目前 3.2 版本为止是不支持搜索功能的。
以后是否会支持
会支持,不过仅会支持 本地存储 和 其他官方支持搜索 api 的存储源
支持的话会支持哪些存储类型
仅有本地存储会支持(遍历搜索方式),可能也会支持 OneDrive,目前为止,经我查阅文档,仅 OneDrive 提供了搜索 API,但经过测试,结果不尽人意,对于输入的搜索关键字,搜索出的结果什么都有,包括但不限于:
- 文件名中含关键字
- 文件夹名中含关键字
- 文件/文件夹修改时间包含关键字
- 文件/文件夹创建时间包含关键字
- 文件内容包含关键字
- 文件/文件夹标签包含关键字
- 甚至还有在我看来毫无关系的结果,也会被检索出来。
如果不支持具体原因是什么
对于其他存储引擎,官网不支持搜索 API 的情况下,我不提供遍历方式搜索的原因为:
- 速度,平均调用一次 api 要 0.2-0.5 秒,按照最简单的 100 个文件夹,就需要 20-50 秒的时间才能出结果。这还是比较小的数据量,且不考虑某些需要分页的场景。
- 成本,阿里云 oss,腾讯云 cos 等对象存储类,都是会对 api 调用次数计费的。频繁调用可能会出较高的账单
- 有人说用缓存方案,缓存搜索结果,这个历史版本也实现过,结果就是,如果文件夹特别多,遇到过很多次,有用户缓存全部文件夹一个小时都没缓存完,但 onedrive 的下载链接有效期也仅有一个小时而已。基本导致不可用了。还有就是缓存未全部完成时,允许搜索的话,搜索到的可能不是全量内容,等全部遍历完再允许搜索的话,等待时间又太长。所以 ZFile 曾经开发过搜索功能,后又关闭了此功能,弊大于利。