# DocumentClickSortingProject **Repository Path**: a2412164792/document-click-sorting-project ## Basic Information - **Project Name**: DocumentClickSortingProject - **Description**: No description available - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-16 - **Last Updated**: 2025-08-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文档点击排序系统 一个基于点击数据的文档排行榜系统,支持实时统计和展示文档的受欢迎程度。 ## 功能特性 - **实时点击统计**: 自动记录和更新文档点击次数 - **智能排行榜**: 根据点击数动态排序,展示前100名热门文档 - **内容预览**: 点击文档名称可查看完整内容 - **数据可视化**: 直观的排行榜展示界面 - **高性能**: 支持万级文档数据的快速响应 ## 项目结构 ``` document-click-sorting-project/ ├── cmd/ │ └── main.go # 服务器入口 ├── internal/ │ ├── controller/ │ │ └── document_controller.go # API控制器 │ ├── model/ │ │ ├── document.go # 数据模型 │ │ └── store_impl.go # 数据存储实现 │ └── service/ │ └── document_service.go # 业务逻辑 ├── web/ │ └── static/ │ └── index.html # 前端页面 ├── tools/ │ ├── generate_test_data.go # 测试数据生成器 │ ├── import_test_data.go # 数据导入工具 │ └── benchmark.go # 性能测试工具 └── data/ ├── documents.json # 文档元数据 └── *.txt # 文档内容文件 ``` ## 快速开始 ### 1. 环境准备 - Go 1.19+ - Windows/Linux/macOS ### 2. 启动服务 ```bash # 启动服务器 go run cmd/main.go # 服务将运行在 http://localhost:8080 ``` ### 3. 生成测试数据 ```bash # 生成1万条测试数据 go run tools/generate_test_data.go go run tools/import_test_data.go # 生成20万条测试数据 go run tools/generate_200k_data.go go run tools/import_200k_data.go ``` ## 📊 API 接口 ### 获取排行榜 ``` GET /api/ranking ``` 返回前100名热门文档,按点击数降序排列。 ### 获取文档内容 ``` GET /api/content?id={document_id} ``` 返回指定文档的完整内容。 ### 更新点击数 ``` POST /api/click?id={document_id} ``` 增加指定文档的点击数。 ## 数据特征 ### 点击数分布 - **低点击** (0-10次): 50% 文档 - **中点击** (10-100次): 30% 文档 - **高点击** (100-1000次): 15% 文档 - **超高点击** (1000-10000次): 5% 文档 ## 性能表现 | 数据量 | 启动时间 | 内存占用 | 响应时间 | |--------|----------|----------|----------| | 1万条 | ~1秒 | ~50MB | <100ms | | 10万条 | ~8秒 | ~200MB | <200ms | ## 前端界面 访问 `http://localhost:8080` 即可使用: 1. **排行榜页面**: 自动展示前100名热门文档 2. **内容查看**: 点击文档名称弹出内容详情 3. **实时更新**: 点击文档自动增加计数并刷新排名 ## 开发工具 ### 数据生成工具 - `generate_test_data.go`: 生成指定数量的测试数据 - `import_test_data.go`: 将测试数据导入系统 ### 使用示例 ```bash # 生成不同规模的数据 go run tools/generate_test_data.go -count=50000 # 生成5万条 go run tools/import_test_data.go # 导入数据 # 生成20万条数据 go run tools/generate_200k_data.go # 生成20万条 go run tools/import_200k_data.go # 导入数据 # 性能测试 go run tools/benchmark.go -requests=1000 # 1000次请求测试 ```