项目/plocate-server
更新于 2026/07/23
plocate-server
面向超大文件树的低内存路径搜索服务,提供 Web UI、REST、OpenAPI 与 MCP 接口。
plocate-server 将 plocate 的磁盘三元组索引封装成可部署的路径搜索服务。它面向数百万乃至上千万条路径的文件树,只索引文件名和路径,不扫描文件内容。
为什么不是把索引放进内存
服务不把完整索引复制到进程内存。查询时启动短生命周期的 plocate 子进程,由操作系统通过 mmap 读取磁盘索引;索引更新则由 updatedb 独立完成。这让搜索服务能与文件服务运行在同一台机器上,而不持续占用大量内存。
项目基准在 88.8 万条路径上测得 p99 约 3.84 ms,稳定状态 RSS 约 20 MiB。实际延迟仍取决于索引规模、磁盘和页面缓存。
接口与部署
- Web UI:内置 React 搜索界面,支持模糊排序。
- REST:提供 substring、glob 与 fuzzy 三种路径检索方式。
- OpenAPI:自动生成 Swagger UI。
- MCP:让 AI agent 直接查询大型文件树。
- 部署:发布单文件 musl 静态二进制,并提供 RPM、pacman 与 deb 包。
- 资源控制:附带 systemd 与 cgroup v2 配置,降低后台索引对前台服务的影响。
边界
- 依赖宿主机安装
plocate。 - 搜索对象是文件名和路径,不是文件内容。
- 默认适合 Linux;cgroup 限制依赖 cgroup v2。
- 索引更新与在线查询分离,新文件不会在下一次 reindex 前出现。