搜索/索引
搜索/索引
如何使用
按照以下步骤开启搜索:
- 转到
索引
页,选择一个搜索索引,并单击保存
; - 保存索引后,单击
构建索引
来构建索引; - 现在你可以通过点击页面右上角的搜索块或使用快捷键
Ctrl + K
来搜索文件。
❗❗❗ 若不按照上述提示开启会提示:Search not available
不同搜索索引之间的差异
数据库
:按数据库搜索,它使用现有的 data.db。它将创建一个新表,记录父目录、名称和每个对象的大小,但搜索不拆分单词,这意味着匹配您输入的关键字是否出现在对象的名称中。一般来说,如果您没有特定的搜索要求,我们建议您选择它。数据库(非全文搜索)
:上面使用的是全文搜索模式,但是全文搜索在使用 MySQL数据库 时作为Alist数据库会有一些奇怪的问题,暂时还未解决,所以如果你的Alist数据库更改为了 MySQL ,并且你的Alist版本≥3.9.1
推荐你使用这个来构建索引,虽然比全文搜索慢一些差距不是很大,但是不会搜索出奇怪的文件,比较稳妥,等未来版本修复后再通知大家使用全新的全文搜索来构建索引,如果你使用的是 sqlite3 那两个你喜欢用那个都可以bleve
:一个开源全文搜索引擎。它将分割对象名称中的单词,并搜索您输入的关键字。但它的搜索结果可能很奇怪,你不能得到你想要的结果,而且它会占用更多的资源。sqlite3 容易触发
database is locked
锁库无法写入文件meilisearch
:暂时未深度体验也不太了解具体差异,给予专业人士使用或者自己去查询一翻,查看PR链接,唯一知道的是得自己搭建使用,支持很多种方法,但是并没有守护进程等懒人操作、不支持系统依赖低于GLIBC_2.27
以下的Linux系统、如果是本机搭建会自动识别,如果是其它设备可以修改配置文件的meilisearch字段内容- 守护进程:如果要使用可以自己按照手动启动AList的办法新建一个守护进程
- 下载地址:https://github.com/meilisearch/meilisearch/releases
下表可以快速帮助您理解这两个搜索索引之间的区别:
数据库(全文搜索) | 数据库(非全文搜索) | bleve | meilisearch | |
---|---|---|---|---|
搜索结果 | 中文基本上搜不到 | 比全文搜索准,可以搜索中文 | 模糊匹配 | ❓ |
搜索速度 | 快,优缺点看上面 | 比全文搜索慢,优缺点看上面 | 快 | ❓ |
指定文件夹搜索 | 支持 | 支持 | 不支持 | ❓ |
硬盘占用 | 低 | 低 | 高 | ❓ |
自动增量更新 | 支持 | 支持 | 不支持 | ❓ |
注意
若你使用的是MySQL作为数据库,建议使用 非全文搜索
(强烈推荐)
非全文搜索
虽然比不上全文搜索快,但是也慢不到哪里,若你非要使用全文搜索 可能得牺牲无法搜索中文为代价
若是使用 sqlite 作为数据库,没有全文两个数据库随便选~
全文搜索:不是在所有文件里面进行文件的文字里面进行搜索,别理解错了。
搜索提示
- 如果你想搜索一个特定的文件夹,你必须选择
数据库
作为搜索索引; - 如果你选择
数据库
作为搜索索引,你的数据库类型是sqlite3
,我们建议你在创建索引时不要在管理页面做任何更改,因为sqlite3
不支持并发写,可能导致数据库锁定
问题; - 如果你选择
bleve
作为搜索索引,如果你想搜索新文件或不想搜索已删除的文件,索引需要完全重建才能生效,因为bleve
不支持增量更新; - 但对于
数据库
,它支持增量更新,所以你可以搜索新的文件或删除的文件,只需访问修改的文件夹(并单击'刷新'图标,如果缓存),无需重建索引,这比bleve
方便得多。
忽略路径
构建索引期间跳过填写的路径,一行一个路径,可多行填写
- 例子:
- /aaa网盘
- /bbb网盘/ccc文件夹
更新索引
- (原:要更新索引的路径)
构建完所有索引后,或者某文件有大批量文件更新,但是又不方便点重新构建就可以使用这个来更新一下索引
例子:
/aaa网盘
/bbb网盘/ccc文件夹
自动更新索引
⚠️ 默认是关闭状态,不自动构建索引
例如你已经构建完毕索引,但是后面又添加一个 网盘挂载 或者 文件夹更新
但是你已经构建好了索引比较多按照以往的话两个办法
- 一个文件夹一个文件夹的进去然后才能构建
- 要么全部重构比较繁琐
但是这次只要把 自动构建索引
按钮打开然后进入一下 新挂载的网盘 或者 有更新的文件夹 就会自动将这个目录里面索引的文件和文件夹自动构建索引不用一个文件夹一个文件夹的进入让他自动构建了
- 优点:不用操心,有更新进有更新的文件夹根目录即可自动构建这个文件夹内所有的索引
- 缺点:随时待命准备构建
有人会发现上面不是有 要更新索引的路径 也可以更新吗? 可以更新但是两者不冲突
最大索引深度
默认为20。
外面显示的是手动构建的,更新索引选项在更新索引按钮里面选择深度。
说明:目录最多进几层,例如你有一个文件夹深度多达30层文件夹,设置为20,只构建前20层,剩下的10层不进行构建。
⚠️ 使用注意事项
Alist V2 和 v3 类型的挂载默认不能构建
如果你使用的是 MySQL 作为数据库,推荐你使用 数据库(非全文搜索), 点击查看详情看第二条
在未来版本(≥3.9.0版本)V3用户可以选择是否允许别人挂载你的网盘然后进行索引 ⛔
谨慎使用
⛔- 详情查看:https://alist.nn.ci/zh/config/site.html#允许索引
- 别问为什么V2不支持,因为V2版本已不再进行维护,故没有后续了
为什么不直接开放V2 V3索引构建: https://github.com/alist-org/alist/discussions/2529
构建索引后,没有权限的用户可以搜索到隐藏的文件/文件夹解决方案点击查看
数据库文件很大,清空索引后还是一样大怎么办?
正常用户都是没有修改数据库选项使用的是 sqlite
数据库来构建索引的,就会导致数据库文件特别大
- 数据库文件在AList同级目录下的
data
文件夹,data.db,data.db-shm,data.db-wal
开启构建索引后,你构建的数量越多文件越大,最后不小心把机器的硬盘占满了,然后就点击了清除索引按钮,文件还是一样大这怎么办?
这是因为
sqlite
的缓存导致的(不知道对不对),我们后面有两种解决方案- 我们使用命令或者工具连接上
sqlite
数据库,输入:VACUUM;
VACUUM;
- 在使用命令清理后我们更换为
MySQL
数据库后再来构建索引- Sqlite如何更换为MySQL数据库教程:BV1iV4y1T7kh
- 我们使用命令或者工具连接上
使用命令清理前和使用命令清理后对比:上图为清理前,下图为清理后,如果没效果可以多执行几次命令。
data.db,data.db-shm,data.db-wal
三个文件在备份时,data.db-shm,data.db-wal
这两个文件是否需要备份
- 建议在备份时,先将程序停止,再进行备份,到时候可以只单独备份
data.db
数据库文件,另外两个可以不进行备份 - 有可能在你停止程序后
data.db-shm,data.db-wal
这两个文件会自动消失,也不用担心