
提升文档管理:推荐一键Docker部署的全文索引搜索引擎工具
一、简介
可以解析常用格式文档,并进行全文索引,支持所有text类型文本、doc、docx、xls、xlsx、ppt、pptx,pdf等等
提供在线访问页面,支持文档的在线上传、搜索、预览等操作,相关操作相应API接口,可以轻松接入第三方系统
相关技术应用包括:thinkphp 6.0框架,ant design pro V5,轻量级全文搜索引擎zincsearch,文档转换工具LibreOffice
二、安装
提前安装好Docker、docker-compose软件环境
克隆代码
git clone https://github.com/luler/hello_document.git
进入代码根目录,编辑 docker-compose.yml,内容参考下面:
services: php_nginx: image: registry.cn-shenzhen.aliyuncs.com/luler/linux_php_nginx:libreoffice restart: always privileged: true ports: - 3322:80 volumes: - ./config/nginx/conf:/usr/local/nginx/conf #nginx配置 - ./config/php/etc:/usr/local/php/etc #php配置 - ./config/init.sh:/init.sh #初始化脚本 - ./code/api:/home/wwwroot/api #api代码 - ./code/web/dist:/home/wwwroot/web/dist #web代码 - ./runtime/wwwlogs:/home/wwwlogs #日志、数据缓存 - ./config/supervisor/supervisord.conf:/etc/supervisord.conf #supervisor配置 - ./config/supervisor/supervisord.d:/etc/supervisord.d #supervisor配置 zincsearch: image: public.ecr.aws/h9e2j3o7/zinc:latest restart: always privileged: true user: root volumes: - ./runtime/zinc_data:/data environment: - DATA_PATH="/data" - ZINC_FIRST_ADMIN_USER=admin - ZINC_FIRST_ADMIN_PASSWORD=zincsearch ports: - 4080:4080
执行如下命令,一键启动
docker-compose up -d
三、使用
1. 访问在线页面进行使用
安装成功后,可以访问页面:http://ip:3322/,默认登录账号:admin,密码:admin
2. 使用相关API
相关接口与页面逻辑一致
授权登录接口
接口: POST:/api/getAccessToken 参数(json): { "appid": "admin", "appsecret": "admin" } 返回(json): { "message": "登录成功", "code": 200, "info": { "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJseiIsImF1ZCI6IiIsImV4cCI6MTc1NDA2MTM2NCwiZGF0YSI6eyJ1aWQiOiIxIn19.YDrUl8XaAZFDU-Gok2ZYGcSChXPCYiHZ2HsFloNcXLQ", "expires_in": 86400, "is_admin": "1" } }
上传文档接口
接口: POST:/api/uploadFile 请求头: Authorization: {access_token} 参数(form-data): files[]=@"/C:/Users/12070/Desktop/php面试题/PHP算法面试题.docx 返回(json): { "message": "上传成功", "code": 200, "info": [] }
搜索文档接口
接口: POST:/api/getFileList 请求头: Authorization: {access_token} 参数(form-data): { "search": "冒泡排序" } 返回(json): { "message": "获取成功", "code": 200, "info": { "list": [ { "id": "25", "name": "PHP算法面试题.docx", //文件名 "path": "/storage/doc/20250731/bcf8fc7e70275a3942769aa955c19e92.docx", //文件路径 "pdf": "/storage/pdf/20250731/bcf8fc7e70275a3942769aa955c19e92.pdf", //预览PDF路径 ..... "size": "120369", //大小 "md5": "0e6dda72bc4c8451128699fa6456b96c", //文件md5 ...... "highlight_text": "…1 潮涌来也\t \n1.使用PHPif (…" //搜索内容高亮 } ], "total": 1 } }
其他接口,可根据需要自行探索
四、总结
文档搜索小工具,提供在线页面,简单易用,可作为凌乱文档的一个存储库,需要时快速搜索使用
可根据提供API进行接入,集成到第三方系统,作为文档搜索引擎(数据库默认是sqlite,生产建议更换为mysql)
Docker一键部署,几乎零配置,小白轻松入手使用
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Jokerwoo
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果