✨宝藏 App 畅文全索 打造你的专属个人知识库✨
新一代智能文档检索系统 | 让知识管理更高效、更智能。
💡 项目介绍
畅文全索是一个智能化全文检索系统。基于Spring Boot和Lucene设计,支持多种文件格式的全文内容检索,通过集成Spring AI功能,支持智能搜索和内容分析,为用户提供更精准的搜索体验。
本系统专为个人知识管理和数字图书馆而设计,可以轻松处理从几千到数十万的文档集合。无论是管理个人电子书库,还是构建企业级文档检索平台,畅文全索都能满足您的需求。
🌟 使用场景案例
自媒体博主:整理爆文素材库,快速检索案例。
学生党:管理论文/笔记,一键定位参考文献。
藏书爱好者:管理你的书库,提供 OPDS 服务。
📄 多格式文档支持
全面支持办公文档:PDF、Word、Excel、PowerPoint
专业的电子书处理:支持 EPUB 格式的内容解析和索引
智能图像识别:基于 PaddleOCR 的图片文字提取
多媒体支持:视频元数据索引和预览功能
网页和文本:支持 HTML 和纯文本文件的解析
🔎 高性能搜索引擎
基于 Lucene 的分布式索引架构
专业的中文分词算法
实时索引更新机制
精确的文件属性过滤
智能化搜索结果高亮
🤖 AI 增强功能
集成 Spring AI 框架
基于大语言模型的内容理解
自然语言对话式检索
支持本地部署 Ollama 模型
智能文档摘要生成
📚 电子书管理
完整支持 OPDS 电子书协议
在线 EPUB 阅读器
全面兼容主流阅读设备
智能封面和目录索引
个性化阅读体验
💻 现代化界面设计
简洁优雅的 Web 交互界面
便捷的文档上传功能
智能文件自动采集
响应式移动端适配
丰富的文档预览功能

🚀 快速开始
# 创建容器网络
docker network create -d bridge xyz-bridge-net
# 拉取官方镜像
docker pull noogel/xyz-search:latest
# 启动服务容器
docker run -d --name xyzSearch --network xyz-bridge-net -p 8081:8081 -v /path/to/searchData:/usr/share/xyz-search/data -v /path/to/share:/data/share noogel/xyz-search:latest
系统默认配置:
管理员账号:xyz
初始密码:search
注:密码可在系统配置页面修改,账号暂不支持修改。登录安全性有待验证,建议内网使用。
🔧 配置说明
系统启动后,可在 Web 界面配置以下参数:
{ "indexDirectories": [ { // 文档索引主目录,支持配置多个 "directory": "/homes/xxx/XyzSearchTestData", "excludesDirectories": [ // 需要排除的子目录,必须位于主目录下 "/homes/xxx/XyzSearchTestData/exclude" ], // 排除特定类型文件的处理器 "excludeFileProcessClass": [] } ], // 文件自动采集配置 "collectDirectories": [ { "fromList": [ // 监控的源目录,支持多个 "/Users/xyz/Downloads/collect" ], // 文件存储目标目录 "to": "/homes/xxx/XyzSearchTestData/collect", // 文件类型过滤正则表达式 "filterRegex": ".(pdf|PDF|epub|EPUB|docx|DOCX)", // 采集后是否自动删除源文件 "autoDelete": true } ], // OPDS 服务根目录,推荐使用 Calibre 库目录 "opdsDirectory": "/homes/xxx/XyzSearchTestData", // 手动上传文件的存储目录 "uploadFileDirectory": "/homes/xxx/XyzSearchTestData/upload", // 标记删除文件的临时存储目录 "markDeleteDirectory": "/homes/xxx/XyzSearchTestData/exclude/deleted", // 系统访问通知邮件配置 "notifyEmail": { "senderEmail": null, "emailHost": null, "emailPort": null, "emailPass": null, "receivers": [] }, // OCR 服务配置 "paddleOcr": { "url": null, "timeout": 10000 }, // 文档详情页的外部搜索链接 "linkItems": [ { "desc": "豆瓣", "searchUrl": "https://m.douban.com/search/?query={query}" }, { "desc": "京东", "searchUrl": "https://so.m.jd.com/ware/search.action?keyword={query}" }, { "desc": "谷歌", "searchUrl": "https://www.google.com/search?q={query}" } ], // AI 对话检索配置 "chat": { "enable": false, "ollama": { "baseUrl": "http://192.168.124.101:11434", "chatModel": "deepseek-r1:1.5b", "chatOptionNumCtx": "4096", "chatOptionTemperature": "1.0", "chatOptionNumPredict": "10000", "embeddingAdditionalModels": [], "pullModelStrategy": "when_missing" } } }
🐳 Docker本地部署
构建本地镜像
环境要求:JDK 17 或更高版本
# 构建镜像 mvn clean package && cd docker && docker build -t xyz-search:latest . && docker tag xyz-search:latest 用户名/xyz-search:latest && cd ../../ # 推送到镜像仓库 docker push 用户名/xyz-search:latest # 创建容器网络 docker network create -d bridge xyz-bridge-net # 部署服务 docker run -d --restart=always --name xyzSearch --network xyz-bridge-net -p 8081:8081 -v /实际路径/searchData:/usr/share/xyz-search/data -v /实际路径/share:/data/share 用户名/xyz-search:latest
使用 Docker Compose 部署
创建 docker-compose.yml 配置文件:
version: '3' services: xyz-search: image: noogel/xyz-search:latest container_name: xyzSearch restart: always ports: - "8081:8081" volumes: - ./searchData:/usr/share/xyz-search/data - ./share:/data/share networks: - xyz-net networks: xyz-net: driver: bridge
执行部署命令:
docker-compose up -d
