项目/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 前出现。

查看最新 Release

相关阅读

MemoArchLinux 编译 python-kornia-rsMemo命令行工具与实用技巧Memo修复 xfs.h 的 void 指针算术错误